back to home

tmc / langchaingo

LangChain for Go, the easiest way to write LLM-based programs in Go

8,681 stars
1,040 forks
392 issues
GoShellMakefile

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing tmc/langchaingo in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind-ai.vercel.app/repo/tmc/langchaingo)
Preview:Analyzed by RepoMind

Repository Summary (README)

Preview

🎉 Join our new official Discord community! Connect with other LangChain Go developers, get help and contribute: Join Discord

🦜️🔗 LangChain Go

go.dev reference scorecard Open in Dev Containers <img src="https://github.com/codespaces/badge.svg" title="Open in Github Codespace" width="150" height="20">

⚡ Building applications with LLMs through composability, with Go! ⚡

🤔 What is this?

This is the Go language implementation of LangChain.

📖 Documentation

🎉 Examples

See ./examples for example usage.

package main

import (
  "context"
  "fmt"
  "log"

  "github.com/tmc/langchaingo/llms"
  "github.com/tmc/langchaingo/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

Resources

Join the Discord server for support and discussions: Join Discord

Here are some links to blog posts and articles on using Langchain Go:

Contributors

There is a momentum for moving the development of langchaingo to a more community effort, if you are interested in being a maintainer or you are a contributor please join our Discord and let us know.

<a href="https://github.com/tmc/langchaingo/graphs/contributors"> <img src="https://contrib.rocks/image?repo=tmc/langchaingo" /> </a>