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

相关推荐
B博士13 分钟前
科研进展 | JAG: 大光斑高光谱激光雷达遥感辐射传输模型从垂直视角解锁森林叶绿素分布密码
人工智能·jag·高光谱激光雷达·森林分层叶绿素诊断
Yao.Li1 小时前
PVN3D ORT CUDA Custom Ops 实现与联调记录
人工智能·3d·具身智能
诺伦1 小时前
LocalClaw 在智能制造的新机会:6部门AI+电商政策下的工厂AI升级方案
人工智能·制造
551只玄猫1 小时前
【数学建模 matlab 实验报告12】聚类分析和判别分析
开发语言·数学建模·matlab·课程设计·聚类·实验报告
小陈工3 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
H Journey3 小时前
C++之 CMake、CMakeLists.txt、Makefile
开发语言·c++·makefile·cmake
墨染天姬7 小时前
【AI】端侧AIBOX可以部署哪些智能体
人工智能
AI成长日志7 小时前
【Agentic RL】1.1 什么是Agentic RL:从传统RL到智能体学习
人工智能·学习·算法
午安~婉7 小时前
Electron桌面应用聊天(续)
前端·javascript·electron
lly2024068 小时前
C 标准库 - `<stdio.h>`
开发语言