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

相关推荐
小鸡吃米…13 分钟前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
一 乐43 分钟前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
好奇龙猫1 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
Boilermaker19921 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
沈浩(种子思维作者)1 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan1 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维1 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS1 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd1 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
꧁Q༒ོγ꧂2 小时前
LaTeX 语法入门指南
开发语言·latex