大模型开发框架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:控制生成结果的随机性(值越高,输出越多样)。

相关推荐
眠りたいです6 分钟前
现代C++:C++11并发支持库
开发语言·c++·多线程·c++11·c++并发支持库
极度畅想8 分钟前
脑电模型实战系列(三):基于 KNN 的 DEAP 脑电情绪识别 KNN 算法与 Canberra 距离深度剖析(三)
机器学习·knn·脑机接口·情绪识别·bci·canberra距离
2501_9419820512 分钟前
结合 AI 视觉:使用 OCR 识别企业微信聊天记录中的图片信息
人工智能·ocr·企业微信
小灰灰搞电子13 分钟前
Rust可以取代C++么?
开发语言·c++·rust
cat三三17 分钟前
java之异常
java·开发语言
T___T18 分钟前
一个定时器,理清 JavaScript 里的 this
前端·javascript·面试
奇树谦19 分钟前
【Qt实战】实现图片缩放、平移与像素级查看功能
开发语言·qt
我命由我1234526 分钟前
Python Flask 开发问题:ImportError: cannot import name ‘Markup‘ from ‘flask‘
开发语言·后端·python·学习·flask·学习方法·python3.11
事变天下28 分钟前
肾尚科技完成新一轮融资,加速慢性肾脏病(CKD)精准化管理闭环渗透
大数据·人工智能
wjs202429 分钟前
Go 语言指针
开发语言