当前位置: 首页 > news >正文

大模型开发框架LangChain GO

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

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

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

  • 智能代理:允许语言模型与其环境交互。
    LangChain 框架正是基于上述原则设计。


快速入门

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

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

  • 快速入门(使用 Ollama)

  • 快速入门(使用 OpenAI)


核心组件

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
  1. 运行示例程序
    在终端中输入以下命令:

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

相关文章:

  • 基于Kubernetes部署Prometheus监控平台
  • 探索PyMOL新插件NRGSuite-Qt:全面提升分子对接、结合位点预测与动力学模拟的研究效率
  • spring batch 中JpaNamedQueryProvider、JpaNativeQueryProvider两种查询方式对比
  • Graphpad Prism for Mac医学绘图
  • Svelte 深度理解
  • 31天Python入门——第15天:日志记录
  • 深度学习入门1 基于Python的理论与实现
  • Photoshop 2025安装包下载及Photoshop 2025详细图文安装教程
  • 【LeetCode 题解】算法:8.字符串转换整数(atoi)
  • 自动化测试selenium(Java版)
  • CentOS 8 安装 Redis 全流程指南:从基础部署到远程安全配置
  • 音视频 三 看书的笔记 MediaPlayer的C/S架构
  • 数据库设计-笔记4
  • DeepSeek深度解析:AI在体育比分网中的应用场景与技术实践
  • Kali Linux 下安装 Sublime Text 详细教程
  • 各类神经网络学习:(五)LSTM 长短期记忆(上集),结构详解
  • 01 设计模式和设计原则
  • AI 在测试中的应用:从自动化到智能化的未来
  • Ubuntu下UEFI安全启动安装Nvdia驱动
  • JavaScript Fetch API
  • 北京银行一季度净赚超76亿降逾2%,不良贷款率微降
  • “75后”袁达已任国家发改委秘书长
  • 广东雷州农商行董事长、原行长同日被查
  • 夜读丨怀念那个写信的年代
  • 金融创新破局记:中小微企业转型背后的金融力量
  • 中方会否公布铁线礁的领海基线?外交部:中方执法活动旨在反制菲方侵权挑衅