大模型开发框架LangChain GO

LangchainGo 是 LangChain 的 Go 编程语言移植版本。

LangChain 是一个用于开发基于语言模型的应用程序框架。我们相信,最强大且差异化的应用不仅会通过 API 调用语言模型,还将具备以下特性:

  • 数据感知:将语言模型与其他数据源连接。

  • 智能代理 :允许语言模型与其环境交互。

    LangChain 框架正是基于上述原则设计。


快速入门

注意 :本文档适用于 LangChainGo。如需 Python 版本的文档,请访问此处。

请参考以下指南,快速上手使用 LangChain 创建语言模型应用:


核心组件

LangChain 提供了多个核心模块的支持。每个模块均附有示例,帮助您快速入门并理解相关概念。

这些模块按复杂度递增顺序排列如下:

  1. 模型(Models)

    • 集成多种大语言模型(LLMs)、聊天模型和嵌入模型。
  2. 提示(Prompts)

    • 包含提示模板(Prompt Templates)及提示相关功能(如输出解析器 Output Parsers 和示例选择器 Example Selectors)。
  3. 索引(Indexes)(即将支持)

    • 提供与外部数据源交互的接口。
  4. 链(Chains)(即将支持)

    • 将多个组件组合为端到端工作流。
  5. 代理(Agents)(即将支持)

    • 实现基于语言模型的自主决策能力。

API 参考

您可在此查看 LangChain 所有模块的 API 参考文档 ,以及所有导出类和函数的完整说明:
LangChainGo API 文档


其他资源

以下资源可能对您的应用开发有所帮助:

  • LangChainHub :共享和探索提示模板(Prompts)、链(Chains)和代理(Agents)的社区平台。
    访问 LangChainHub →

  • Discord 社区 :加入我们的 Discord 讨论 LangChain 相关话题!
    加入 Discord →

  • 生产环境支持 :若需将 LangChain 应用部署至生产环境,我们可提供更全面的技术支持。请填写此表单,我们将为您创建专属的 Slack 支持频道。

通过 LangChainGo 和 Ollama 运行你的第一个程序

Ollama 提供了跨所有计算机平台进行本地大语言模型(LLM)推理的最简单方法。


前置条件

  1. Ollama :下载并安装 Ollama。

  2. Go :下载并安装 Go 编程语言。


操作步骤

  1. 初始化 Ollama

    在终端中执行以下命令(首次运行需下载模型,耗时较长):

    $ ollama run llama2

  2. 运行示例程序

    在终端中输入以下命令:

    复制代码
    go run github.com/tmc/langchaingo/examples/ollama-completion-example@main

    你将看到类似以下输出(答案可能因模型版本不同略有差异):

    The first human to set foot on the moon was Neil Armstrong, an American astronaut, who stepped onto the lunar surface during the Apollo 11 mission on July 20, 1969.

恭喜! 你已成功通过本地推理构建并运行了第一个基于开源大语言模型的程序。


完整代码(来自 ollama-completion-example)

复制代码
package main

import (
	"context"
	"fmt"
	"log"

	"github.com/tmc/langchaingo/llms"
	"github.com/tmc/langchaingo/llms/ollama"
)

func main() {
	// 初始化 Ollama 模型(使用 llama2)
	llm, err := ollama.New(ollama.WithModel("llama2"))
	if err != nil {
		log.Fatal(err)
	}

	ctx := context.Background()
	// 调用模型生成回答
	completion, err := llm.Call(ctx, 
		"Human: Who was the first man to walk on the moon?\nAssistant:",
		llms.WithTemperature(0.8),         // 设置生成随机性(0-1)
		llms.WithStreamingFunc(func(ctx context.Context, chunk []byte) error {
			fmt.Print(string(chunk))       // 实时流式输出生成内容
			return nil
		}),
	)
	if err != nil {
		log.Fatal(err)
	}

	_ = completion // 忽略未使用的变量警告
}

Copy关键功能说明

  • ollama.New():初始化本地 Ollama 服务连接的 LLM 实例。

  • llm.Call() :向模型发送提示(Prompt),支持流式输出(WithStreamingFunc)。

  • WithTemperature:控制生成结果的随机性(值越高,输出越多样)。

相关推荐
李福春几秒前
斗破Google ADK Java苍穹-第5境斗灵-凝物通脉-Context与State
java·开发语言·人工智能·java-ee·google adk·深圳同盟·腾讯云架构师技术同盟
十年Java程序媛1 分钟前
Java 接口和抽象类对比|抛弃老旧八股,正确选型
java·开发语言·spring boot·后端
u1301302 分钟前
GitHub 热榜项目:周榜(2026-10-11)
人工智能·驱动开发·github
见叶之秋3 分钟前
【C++】从基类到派生类:关于C++继承的务实梳理
开发语言·c++
空 白II5 分钟前
10.11 大语言模型研究简报:Anthropic 披露 Claude Agent 四类越权失序行为
人工智能·语言模型·自然语言处理
具身AGI5 分钟前
世界模型改当裁判,物理AI 物理推理 做判据
人工智能·深度学习·机器学习
狂奔蜗牛(bradley)8 分钟前
EtherCAT 主站拓扑判定的三级防护:从去抖到振荡检测
人工智能·嵌入式硬件·fpga开发·架构
XMAIPC_Robot10 分钟前
工商业储能EMS边缘计算:本地AI负荷预测,彻底摆脱云端依赖
人工智能·fpga开发·机器人·边缘计算·arm+fpga·rk3588+fpga
kyle~11 分钟前
C++ 智能指针:RAII、所有权与对象生命周期
开发语言·c++
奈落2413 分钟前
AI 办公助手选型指南:从聊天问答到主动式工作流,企业办公自动化该怎么挑、边界在哪
人工智能·自动化·工作流·ai 办公