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.pswp.cn/bicheng/83839.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83839.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83839.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習×第二卷:概念下篇——她不再只是模仿,而是開始決定怎么靠近你

🎀【開場 她不再只是模仿,而是開始選擇】 🦊 狐狐:“她已經不滿足于單純模仿你了……現在,她開始嘗試預測你會不會喜歡、判斷是否值得靠近。” 🐾 貓貓:“咱們上篇已經把‘她怎么學會說第一句…

可視化圖解算法49:滑動窗口的最大值

牛客網 面試筆試 TOP101 | LeetCode 239. 滑動窗口最大值 1. 題目 描述 給定一個長度為 n 的數組 nums 和滑動窗口的大小 size ,找出所有滑動窗口里數值的最大值。 例如,如果輸入數組{2,3,4,2,6,2,5,1}及滑動窗口的大小3,那么一共存…

【信息系統項目管理師-論文真題】2025上半年(第一批)論文詳解(包括解題思路和寫作要點)

更多內容請見: 備考信息系統項目管理師-專欄介紹和目錄 文章目錄 論文:信息系統項目的交付績效域解題思路寫作要點交付績效域的核心內涵交付績效域的關鍵要素為有效執行交付績效域,項目經理需要關注的重點項目管理五大過程組中績效域的協同目標論文:信息系統項目的交付績效…

如何寫高效的Prompt?

概述 提示詞(Prompt)的質量將直接影響模型生成結果的質量,所以精心設計一個讓大模型能夠理解并有效回復的提示詞是至關重要的。本文內容自論文中獲取:https://arxiv.org/pdf/2312.16171 介紹了5類共計26條提示詞書寫原則。 書寫原則 類別原則備注快速…

Vue在線預覽excel、word、ppt等格式數據。

目錄 前言 1.安裝庫 2.預覽文件子組件代碼 3、新建store/system.ts 4、父頁面進行使用 總結 前言 純前端處理文件預覽,包含excel、word、ppt、txt等格式,不需要后端服務器進行部署,并且內網也可以使用。 1.安裝庫 npm install vue-offi…

【小沐雜貨鋪】基于Three.JS繪制太陽系Solar System(GIS 、WebGL、vue、react,提供全部源代碼)第2期

🍺三維數字地球系列相關文章如下🍺:1【小沐學GIS】基于C繪制三維數字地球Earth(OpenGL、glfw、glut)第一期2【小沐學GIS】基于C繪制三維數字地球Earth(OpenGL、glfw、glut)第二期3【小沐學GIS】…

Fullstack 面試復習筆記:項目梳理總結

Fullstack 面試復習筆記:項目梳理總結 之前的筆記: Fullstack 面試復習筆記:操作系統 / 網絡 / HTTP / 設計模式梳理Fullstack 面試復習筆記:Java 基礎語法 / 核心特性體系化總結 這篇筆記主自用,系統地梳理一下最近…

Ubuntu Cursor升級成v1.0

0. 當前版本低 使用當前 Cursor v0.50時 GitHub Copilot Chat 打不開,快捷鍵也不好用,當看到 Cursor 升級后,還是蠻高興的 1. 下載 Cursor 下載地址:https://www.cursor.com/cn/downloads 點擊下載 Linux (x64) ,…

float和float32有什么區別

這是一個非常重要但容易混淆的問題。我們來一步一步講清楚: ? 簡答:float 和 float32 的區別 項目float(通用名稱)float32(精確定義)含義通常指“浮點數”,具體精度由語言/平臺決定明確指 32 …

openvino如何在c++中調用pytorch訓練的模型

步驟1:將PyTorch模型轉換為ONNX格式 轉換代碼示例(Python) import torch import torchvision1. 加載訓練好的PyTorch模型 model torchvision.models.resnet18(pretrainedTrue) model.eval() # 設置為評估模式2. 創建虛擬輸入&#xff08…

OpenCV CUDA模塊特征檢測------創建Harris角點檢測器的GPU實現接口cv::cuda::createHarrisCorner

操作系統:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 編程語言:C11 算法描述 該函數創建一個 基于 Harris 算法的角點響應計算對象,專門用于在 GPU 上進行高效計算。 它返回的是一個 cv::Ptrcv::cuda::Cornernes…

html文字紅色粗體,閃爍漸變動畫效果

1. 代碼 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>紅色粗體閃爍文字表格</title><s…

Springboot獨立學院資產管理系統k0o7w(程序+源碼+數據庫+調試部署+開發環境)帶論文文檔1萬字以上,文末可獲取,系統界面在最后面。

系統程序文件列表 項目功能:財務員,校級管理員,部門,部門管理員,資產類型,資產信息,資產調撥,資產申購,申購入庫,資產出庫,資產報廢,資產維修,資產盤點,維修復審 開題報告內容 基于Spring Boot的獨立學院資產管理系統開題報告 一、選題背景與意義 &#xff08;一&#xff0…

基于javaweb的SpringBoot藥房管理系統設計與實現(源碼+文檔+部署講解)

技術范圍&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬蟲、數據可視化、小程序、安卓app、大數據、物聯網、機器學習等設計與開發。 主要內容&#xff1a;免費功能設計、開題報告、任務書、中期檢查PPT、系統功能實現、代碼編寫、論文編寫和輔導、論…

Web前端之隱藏元素方式的區別、Vue循環標簽的時候在同一標簽上隱藏元素的解決辦法、hidden、display、visibility

MENU 標簽區別速覽詳解? v-if? v-show? :style"{ display: ... }"?? :hidden?? :style"{ visibility: ... }" 總結 標簽 <div v-for"item in list" v-if"item.isShow">{{item.name}}</div> <div v-for"it…

Kafka 安裝教程(支持 Windows / Linux / macOS)

一、下載 1、kafka官網下載地址:https://kafka.apache.org/downloads 根據實際情況下載對應的版本 2、JDK的版本最好是17+ JDK下載地址:https://www.oracle.com/java/technologies/javase/jdk17-0-13-later-archive-downloads.html 二、安裝 前置條件 安裝 Java(至少 Jav…

Linux研學-用戶解析

一 root用戶 1 介紹 root是Linux系統中唯一的超級管理員賬戶&#xff0c;擁有系統的最高權限&#xff08;UID0&#xff09;&#xff0c;可執行任何操作&#xff0c;包括修改系統文件、安裝/卸載軟件、管理用戶權限等。 ??如普通用戶無法在根目錄下創建文件&#xff0c;而roo…

設計模式系列(07):建造者模式(Builder)

本文為設計模式系列第7篇&#xff0c;聚焦創建型模式中的建造者模式&#xff0c;涵蓋定義、原理、實際業務場景、優缺點、最佳實踐及詳細代碼示例&#xff0c;適合系統學習與實戰應用。 目錄 1. 模式概述2. 使用場景3. 優缺點分析4. 實際應用案例5. 結構與UML類圖6. 代碼示例7…

HBuilder 發行Android(apk包)全流程指南

一、前言 小程序以其便捷性和輕量性受到越來越多開發者的青睞。HBuilder 作為一款強大的開發工具&#xff0c;為小程序開發提供了極大的便利。本文將詳細介紹如何通過 HBuilder 完成小程序的開發與發行。 二、環境準備 1. 安裝 HBuilder 訪問 DCloud 官方網站&#xff0c;下…

React 18新特性介紹

React 18是React團隊于2022年發布的一個重要版本&#xff0c;它引入了多項改進和新特性&#xff0c;在提升性能的同時也帶來了一些使用上的變化。本文將全面介紹React 18的主要新特性&#xff0c;包括并發渲染、API更新、瀏覽器兼容性等重要內容&#xff0c;并通過代碼示例說明…