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

LangChainGo入门指南:Go语言实现与OpenAI/Qwen模型集成实战

目录

      • 1、什么是langchainGo
      • 2、langchainGo的官方地址
      • 3、LangChainGo with OpenAI
        • 3-1、前置准备
        • 3-2、安装依赖库
        • 3-3、新建模型客户端
        • 3-4、使用模型进行对话
      • 4、总结

1、什么是langchainGo

langchaingo是langchain的go语言实现版本

2、langchainGo的官方地址

官网:[https://tmc.github.io/langchaingo/docs/getting-started/guide-openai][https://tmc.github.io/langchaingo/docs/getting-started/guide-openai]

github:[https://github.com/tmc/langchaingo/tree/main][https://github.com/tmc/langchaingo/tree/main]

3、LangChainGo with OpenAI

3-1、前置准备
  • 下载并安装好Go [https://go.dev/doc/install][https://go.dev/doc/install]

  • 获取到openAi的key(这里可以使用其他大模型提供的能力,如阿里的百炼平台[百炼的apiKey获取方式][https://bailian.console.aliyun.com/?utm_content=se_1021226628&tab=api#/api/?type=model&url=https%3A%2F%2Fhelp.aliyun.com%2Fdocument_detail%2F2712195.html&renderType=iframe])

  • 创建.env文件

    这里以百炼的地址和apiKey为例

    OPENAI_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
    OPENAI_API_KEY=sk-xxxx  //you api key
    
3-2、安装依赖库
go get github.com/tmc/langchaingo
go get github.com/joho/godotenv
3-3、新建模型客户端
package modelimport ("github.com/joho/godotenv""github.com/tmc/langchaingo/llms/openai""log""os"
)func GetLlm(model string, embeddingModel string) *openai.LLM {if embeddingModel == "" {embeddingModel = "text-embedding-v3"}if model == "" {model = "qwen-max"}// 加载 .env 文件err := godotenv.Load()if err != nil {log.Println("Error loading .env file:", err)}// 读取环境变量baseUrl := os.Getenv("OPENAI_BASE_URL")apiKey := os.Getenv("OPENAI_API_KEY")llm, err := openai.New(openai.WithBaseURL(baseUrl),openai.WithToken(apiKey), openai.WithModel(model),openai.WithEmbeddingModel(embeddingModel))if err != nil {log.Fatal(err)}return llm
}

配置参数和环境变量,创建一个连接到 OpenAI 或阿里云 Qwen 的语言模型实例。

3-4、使用模型进行对话
package mainimport ("context""fmt""github.com/tmc/langchaingo/llms""langchain-go-demo/model""log"
)// 演示使用langchain-go的llms包,调用qwen-max模型,生成文本
func main() {llm := model.GetLlm("qwen-max", "")ctx := context.Background()completion, err := llms.GenerateFromSinglePrompt(ctx, llm, "Hi qwen, write a poem about golang powered AI systems",llms.WithTemperature(0.8),// 流式输出llms.WithStreamingFunc(func(ctx context.Context, chunk []byte) error {fmt.Print(string(chunk))return nil}),)if err != nil {log.Fatal(err)}_ = completion
}

上面的代码通过LangChain-Go 库调用 Qwen-Max 模型 生成诗歌。这里使用了流式输出的,

chunk:每次模型生成的新文本片段。

4、总结

LangChainGo是LangChain的Go语言实现,本文演示如果通过LangChain-Go 与大模型进行交互。

http://www.lqws.cn/news/172207.html

相关文章:

  • Matlab实现任意伪彩色图像可视化显示
  • 6.6 day38
  • Web 架构之 CDN 加速原理与落地实践
  • LabVIEW实时系统数据监控与本地存储
  • 保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!
  • 从“人找政策”到“政策找人”:智能退税ERP数字化重构外贸生态
  • 自建 dnslog 回显平台:渗透测试场景下的隐蔽回显利器
  • 双碳时代,能源调度的难题正从“发电侧”转向“企业侧”
  • DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
  • DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
  • 全面理解 Linux 内核性能问题:分类、实战与调优策略
  • D3ctf-web-d3invitation单题wp
  • 数学建模期末速成 聚类分析与判别分析
  • 第16节 Node.js 文件系统
  • 传输层:udp与tcp协议
  • 前端基础之《Vue(19)—状态管理》
  • Node-RED 基于流程的可视化编程工具
  • $attrs 与 $listeners 透传
  • 【Python-Day 23】Python 模块化编程实战:创建、导入及 sys.path 深度解析
  • 嵌入式学习笔记 - FreeRTOS 信号量以及释放函数
  • vue中加载Cesium地图(天地图、高德地图)
  • Amazon Bedrock 助力 SolveX.AI 构建智能解题 Agent,打造头部教育科技应用
  • 火语言RPA--应用列表
  • CMake控制VS2022项目文件分组
  • Spring AI 入门:Java 开发者的生成式 AI 实践之路
  • 8.1_排序的基本概念
  • 有声书画本
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • 光耦合器:隐形守护者,拓展无限应用
  • Linux容器篇、第二章_01Ubuntu22 环境下 KubeSphere 容器平台高可用搭建全流程