[langchaingo] 智谱GLM-4在线模型体验

简介: 本文介绍如何使用Go语言版的Langchain框架——langchaingo,结合清华大学KEG实验室开发的GLM-4模型,在本地运行AI项目。GLM-4是一个先进的自然语言处理模型,支持多种任务。通过智谱AI开放平台注册可获1000w token用于测试。文章展示了langchaingo的基本配置、构建聊天内容及生成回复的过程,并简要总结了项目的现状和未来更新计划。

今天我们初次体验大名鼎鼎的人工智能开源框架 langchain 的Go语言版 langchaingo。本文将初步介绍基于智谱的AI开放平台,通过 GLM-4 模型运行本地 langchaingo 项目。

GLM-4模型介绍

GLM-4(General Language Modeling-4)模型是一个先进的自然语言处理模型,它属于GLM系列模型,这个系列模型是由清华大学知识工程实验室(KEG)提出的。GLM模型结合了BERT和GPT的优势,旨在处理多种语言任务,包括但不限于文本分类、序列标注、自然语言推理、机器翻译、文本生成等。

此外,GLM-4模型在注册账号后,会赠送 500w token用于测试使用。实名认证成功后,

image.png

会再赠送500w token用于测试。

langchaingo 介绍

根据官方介绍,LangchainGo 是 LangChain 的 Go 语言的版本。目前社区非常活跃,这篇文章将会介绍在本地通过 Go 语言环境进行 langchaingo 项目的使用介绍。

go get github.com/tmc/langchaingo

导入 langchaingo package到本地后,还需要通过注册智谱AI开放平台,获取API-KEY。

该步骤较为简单,只需要访问复制即可。
image.png


package main

import (
  "context"
  "fmt"
  "github.com/tmc/langchaingo/llms"
  "github.com/tmc/langchaingo/llms/openai"
  "log"
)

func main() {
   
  // 配置 glm-4 模型基础必要信息
  llm, err := openai.New(
    openai.WithModel("glm-4"),
    openai.WithBaseURL("https://open.bigmodel.cn/api/paas/v4/"),
    openai.WithToken("*****************************************"),
  )
  if err != nil {
   
    panic(err)
  }
  ctx := context.Background()
  // 构建聊天消息内容
  // 该部分代码用于创建并填充一个包含系统消息和人类消息的content切片。
  // content切片将包含关于项羽和刘邦的介绍请求
  var content []llms.MessageContent
  // 增加 system 消息
  content = append(content, llms.TextParts(llms.ChatMessageTypeSystem, "You are a chatbot."))
  // 增加 human 消息
  content = append(content, llms.TextParts(llms.ChatMessageTypeHuman, "帮我介绍一下项羽和刘邦."))
  // 调用模型生成回复
  if _, err = llm.GenerateContent(ctx, content,
    // 设置最大生成长度
    llms.WithMaxTokens(2048),
    // 设置 temperature
    llms.WithTemperature(0.9),
    // 设置流式输出
    llms.WithStreamingFunc(func(ctx context.Context, chunk []byte) error {
   
      fmt.Print(string(chunk))
      return nil
    })); err != nil {
   
    log.Fatal(err)
  }
}

上面的代码部分,主要分为3个部分:

配置 LLM。即配置模型的基本必要信息,如模型名称、模型的base-url以及模型的密钥部分。这块的基础信息都可以从智谱AI开放平台以及“接口文档-langchain sdk使用” 中直接获取。

构建基本聊天内容。其中 llms.ChatMessageTypeSystem 可以理解为 langchain 框架中的 system 角色,即用于传递系统级别的指示或设置对话的背景。这种消息通常由系统或开发者设定,用来影响对话的整体方向或提供背景信息。例如,你可以使用 system 消息来设定AI助手的角色、提供对话的背景信息或指定特定的行为规范;llms.ChatMessageTypeHuman 则对应代表 human 角色,即代表由用户或对话中的人类参与者发送的消息。这些消息是对话的主要输入,AI助手基于这些输入生成响应。

发送请求并构建返回内容。通过调用 llm 的 GenerateContent 方法,同时通过 llm 的 WithStreamingFunc 方法流式输出(即 stream=True);当然同样也可以通过 GenerateContent 方法直接返回 *llms.ContentResponse,并进行取值输出,如下所示:


response, err := llm.GenerateContent(ctx, content,
    // 设置最大生成长度
    llms.WithMaxTokens(2048),
    // 设置 temperature
    llms.WithTemperature(0.9),
  )
  if err != nil {
   
    log.Fatal(err)
  }
  fmt.Println(response.Choices[0].Content)

初步总结

langchaingo 项目目前距离 langchain 项目覆盖的功能还有段距离,但是社区的活跃度一直都比较稳定,此外最近测试,像 ollama 部署的 qwen1.5 模型,通过 langchaingo 测试整体效果也不错,可以持续关注。

后续除了继续深入 langchaingo 之外,也会不定期更新 ollama 的使用指南和 go 语言的其他场景~

参考内容

langchaingo: https://github.com/tmc/langchaingo

智谱AI开放平台: https://maas.aminer.cn/

相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
8月前
【RAPHAEL】商汤发力prompt,免费开源的图文模型!我写下了湖心亭看雪与桃花源记
【RAPHAEL】商汤发力prompt,免费开源的图文模型!我写下了湖心亭看雪与桃花源记
57 0
|
人工智能 自然语言处理 算法
昆仑天工AIGC——基于Stable Diffusion的多语言AI作画大模型测评
昆仑天工AIGC——基于Stable Diffusion的多语言AI作画大模型测评
|
8月前
|
自然语言处理 物联网 Swift
零一万物开源Yi-VL多模态大模型,魔搭社区推理&微调最佳实践来啦!
近期,零一万物Yi系列模型家族发布了其多模态大模型系列,Yi Vision Language(Yi-VL)多模态语言大模型正式面向全球开源。
|
15天前
|
机器学习/深度学习 人工智能 安全
通义视觉推理大模型QVQ-72B-preview重磅上线
Qwen团队推出了新成员QVQ-72B-preview,这是一个专注于提升视觉推理能力的实验性研究模型。提升了视觉表示的效率和准确性。它在多模态评测集如MMMU、MathVista和MathVision上表现出色,尤其在数学推理任务中取得了显著进步。尽管如此,该模型仍存在一些局限性,仍在学习和完善中。
|
27天前
|
编解码 机器人 测试技术
技术实践 | 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型快速搭建专业领域知识问答机器人
Qwen2-VL是一款具备高级图像和视频理解能力的多模态模型,支持多种语言,适用于多模态应用开发。通过PAI和LLaMA Factory框架,用户可以轻松微调Qwen2-VL模型,快速构建文旅领域的知识问答机器人。本教程详细介绍了从模型部署、微调到对话测试的全过程,帮助开发者高效实现定制化多模态应用。
|
2月前
|
数据采集 人工智能 物联网
【Qwen模型百变玩家】——从微调到部署的全能攻略!
本文通过“Qwen模型”实例,详细讲解了AI模型从微调到部署的全过程。涵盖模型简介、调参技巧、高效部署及实际案例,帮助读者从新手成长为调参高手,确保模型在生产环境中稳定高效运行。
296 12
|
人工智能 测试技术 API
ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
ChatGLM3-6B:新一代开源双语对话语言模型,流畅对话与低部署门槛再升级
|
2月前
|
物联网 Swift Python
基于qwen模型实现大模型应用探索-党务知识小助手
本项目基于qwen2-7b-instruct模型,采用LoRA技术,在党务知识数据集与通用数据集上进行微调,专为党务领域问答设计,涵盖党员教育等场景。通过数据准备、模型微调、推理测试及部署应用。
144 0
|
3月前
|
前端开发 算法 测试技术
前端大模型应用笔记(五):大模型基础能力大比拼-计数篇-通义千文 vs 文心一言 vs 智谱 vs 讯飞vsGPT
本文对比测试了通义千文、文心一言、智谱和讯飞等多个国产大模型在处理基础计数问题上的表现,特别是通过链式推理(COT)提示的效果。结果显示,GPTo1-mini、文心一言3.5和讯飞4.0Ultra在首轮测试中表现优秀,而其他模型在COT提示后也能显著提升正确率,唯有讯飞4.0-Lite表现不佳。测试强调了COT在提升模型逻辑推理能力中的重要性,并指出免费版本中智谱GLM较为可靠。
前端大模型应用笔记(五):大模型基础能力大比拼-计数篇-通义千文 vs 文心一言 vs 智谱 vs 讯飞vsGPT
|
6月前
|
人工智能 JSON 自然语言处理
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
【7月更文挑战第7天】国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]
286 10
国内大模型LLM选择以及主流大模型快速使用教程[GLM4/Qwen/Baichuan/Coze/Kimi]

热门文章

最新文章

下一篇
开通oss服务