🎉 Join our Discord community! Connect with other Go developers, get help and contribute: Join Discord
⚡ Building applications with LLMs through composability, with Go! ⚡
This is the Go language implementation of LangChain.
This repo started as a fork of tmc/langchaingo, but has begun to diverge now that the repo there is seeing less activitity and maintenance.
The name instructured-llm
is derived from one of the new features added post-fork, allowing for programmatic, automatic creation of structured-json output inside of regular structs using reflection.
See ./examples for example usage.
package main
import (
"context"
"fmt"
"log"
"github.com/taigrr/instructured-llm/llms"
"github.com/taigrr/instructured-llm/llms/openai"
)
func main() {
ctx := context.Background()
llm, err := openai.New()
if err != nil {
log.Fatal(err)
}
prompt := "What would be a good company name for a company that makes colorful socks?"
completion, err := llms.GenerateFromSinglePrompt(ctx, llm, prompt)
if err != nil {
log.Fatal(err)
}
fmt.Println(completion)
}
$ go run .
Socktastic
Join the Discord server for support and discussions: Join Discord
Here are some links to blog posts and articles on using Langchain Go, which are still applicable to this repo (for now!):
- Using Gemini models in Go with LangChainGo - Jan 2024
- Using Ollama with LangChainGo - Nov 2023
- Creating a simple ChatGPT clone with Go - Aug 2023
- Creating a ChatGPT Clone that Runs on Your Laptop with Go - Aug 2023