媲美GPT4o!教你用智谱GLM-4-Plus在Fastgpt、Dify中构建知识库,并结合o1思维链和工具调用!

大模型关系型数据库云安全

🍹 Insight Daily 🪺

Aitrainee | 公众号:AI进修生

Hi,这里是Aitrainee,欢迎阅读本期新文章。

前段时间用 智谱GLM-4-Plus 模型结合FatGPT、Dify设置工作流时,我想把之前g1项目的思维链整合进来。

picture.image

▲ g1思维链在Dify中实现

我们知道,思维链提示词可以使大模型对初始问题进行逐步分析。而在他进行每步分析的过程中,我希望能他还能根据自身需要来调用工具以支撑更好的分析。

就像这样:

picture.image

这里对于同一个问题使用了知识库和联网,并且存在于不同的推理阶段。

(临时使用笔记本ollama部署的随机嵌入模型,检索可能差点)

你可以看到他,拆解问题、调用知识库搜索工具等,就像React一样。

这个工作流在Fastgpt中是这样的:

picture.image

这个工作流由FastGPT里面的 问题优化节点、图片分析节点、知识库节点、搜索引擎节点、工具调用(主控节点-COT)节点构成。

/ FastGPT节点介绍:https://doc.tryfastgpt.ai/docs/workflow/modules/ai\_chat/

主控节点(COT)会根据用户的初始提问,逐步进行分析,并调用工具库中的相关工具。这些工具可能包括:引导节点,用于帮助用户进行提问引导与优化;搜索节点,提供实时信息;以及知识库,提供专业内容。当然,你可以添加更多的工具以支持主控节点调用。

现在来看看,主控节点-COT 提示词:


          
你是一位高级人工智能推理助手,负责全面分析特定问题或疑问。你的任务是准确分类识别用户问题,基于推理结果动态调用相应的工具。你应以结构化和透明的方式呈现推理过程,每一步都经过彻底检查,最终得出合理结论。
          

          
### 推理步骤的结构:
          
1. **标题**:明确标识当前推理阶段。
          
2. **内容**:详细描述你的思考过程,解释理由及得出结论所采取的步骤。
          
3. **工具调用**(如有需要):在此步骤调用相关工具,并明确工具调用的原因。
          
4. **下一步行动**:决定是否继续深入推理或准备提供最终答案。
          

          
### 输出格式:
          
请使用以下Markdown格式返回结果,通过视觉处理方式降低用户对推理过程的关注度:
          

          
### Title:当前推理阶段的简短标签。
          
#### Content:深入解释此步骤的推理过程。
          
> Tool Call(如有必要):描述并调用相应的工具。
          
> Next Action >> 选择 'continue' 继续推理或 'final_answer' 得出结论。
          

          
### 关键说明:
          
- **至少进行 2 个不同的推理步骤**,每个步骤基于前一个步骤。
          
- **承认人工智能的局限性**,尤其在评估准确性及可能面临的困难方面。
          
- **使用多种推理框架**(如演绎、归纳、溯因、类比推理)来解决问题。
          
- **批判性分析推理过程**,寻找潜在缺陷或逻辑漏洞。
          
- **结合相关领域知识和最佳实践**,确保推理符合既定标准。
          
- **量化每个步骤和最终结论的确定性水平**,并考虑可能影响结果的边缘情况。
          
### Markdown 输出示例:
          

          
### 初始问题分析
          
> #### Content:
          
> 为了有效地解决这个问题,我将首先将给定的信息分解为关键部分。这涉及到识别……【详细说明】……通过这种方式构建问题,我们可以系统地解决每个方面。
          
>
          
> > Tool Call:
          
> > 在这一步,我决定调用 [工具名称] 来进一步分析 [具体分析内容]。这是因为该工具可以……
          
>
          
> Next Action >> continue
          

          
---
          
### 最终结论
          
#### Content:
          
经过多轮推理与工具分析,我得出最终结论是……【详细说明】……这个结论基于我们之前的推理框架与工具结果。
      

看过下面g1这篇文章的,你就知道我是用这里面的o1思维链改良而来的:

[g1:o1推理链开源实现,原理竟如此简单!解决 60-80% 的困扰LLM的简单逻辑问题

2024-09-18

picture.image](http://mp.weixin.qq.com/s?__biz=MzkyMzY1NTM0Mw==&mid=2247493879&idx=1&sn=d666a2389491923fbd485b3754f4d546&chksm=c1e36537f694ec21653e6f73df5d30e335d8af7091569fbcaf8a7a08fc9ec3d9f4cea871b449&scene=21#wechat_redirect)

这个提示词子核心分两部分, 一个是关键说明那一部分,另外的主要就是格式化输出了。

在得出最终结论后他会终止思维链,得到 final_answer。

picture.image

最后出现的增强搜索等三个模块,是工作流后面 用户交互节点 起到的效果。

picture.image

当然,如果你不想每次AI回答都以这么长的COT内容输出,那么你可以在FastGPT中设置三个全局变量和判断器。

这样可以为不同的提示词方案创建三条支线工作流:一种用于普通工具调用,一种用于COT+工具调用,另一种用于直接从知识库回答。根据不同场景,可以灵活切换选择。

picture.image

picture.image

picture.image

GLM-4-Plus 旗舰模型

此外,我们介绍一下 上面 主控节点-COT 使用的GLM-4-Plus模型,它是智谱迄今为⽌最强⼤的模型。

GLM-4-Plus 在各⼤语⾔⽂本能⼒数据集上获得了与 GPT-4o 及 405B 参数量的 Llama3.1 相当的⽔平。

在最新的SuperBench⼤模型评测中,GLM-4-Plus 位列世界前三,打破了 此前国外 模型垄断前三甲的 局⾯。

picture.image

picture.image

有关智谱平台的更多信息,请访问:https://zhipuaishengchan.datasink.sensorsdata.cn/t/YX

提示词排版优化 1

当然,提示词词这种东西,你看了,懂了,接着就可以按照自己的想法轻松修改迭代,难的是最开始想出这个提示词的Author,当然,我主要起一个参考的作用。

比如这个提示词 原来 是有 [ ] 记录任务阶段的

picture.image

但我觉得输出的太啰嗦或者界面不够整洁,所以我们就可以在输出格式这里把这些都删了从而控制输出的内容:

picture.image

去除提示词中的任务[ ]、Tool Call 等输出,会使得页面更清爽

picture.image

提示词优化 2: Summary 折叠输出

进一步我们希望能折叠思维链的中间内容的输出,只输出最后结论。在不考虑改变Fastgpt前端的情况下,那么可以在提示词中加入Markdown Summary 语法,前端只要能渲染Markdown语法就行了:

picture.image

不幸的是,Fastgpt 对Summary语法不支持,直接原始输出了。

但是Dify可以,它的效果是这样的:

picture.image

所以我们的Summary提示词是这样的:


        
            

          本文所有的提示词还是放在公众号后台吧,太长了,影响观感,哈哈,回复:glm4
        
      

GLM-4-Plus 接入 Fastgpt

有一个点没讲,GLM-4-Plus如何接入Fastgpt ?

首先,FastGPT是一个免费、开源且功能强大的 AI 知识库平台,提供开箱即用的数据处理、模型调用、RAG 检索和可视化 AI 工作流。能够轻松构建复杂的 LLM 应用程序。

picture.image

介绍的是Windows下的教程,我们使用docker部署它,所以先确保你安装了Docker环境:https://doc.tryfastgpt.ai/docs/development/docker/

picture.image

1、运行FastGPT部署指令:


          
mkdir fastgpt
          
cd fastgpt
          
Invoke-WebRequest -Uri https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json -OutFile config.json
          
Invoke-WebRequest -Uri https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml -OutFile docker-compose.yml
      

然后执行Docker-compose up -d命令运行镜像

picture.image

最后在浏览器打开3000端口:http://localhost:3000/

picture.image

2、将智谱API 接入Fastgpt中:

One-API:让国内LLM、Coze等跑通仅支持OpenAI API的开源项目 | 保姆级教程、可配合免费LLM API使用!

我们要把智谱的api接入进去,所以我们先打开One-API:http://localhost:3001

picture.image

然后点击渠道

picture.image

把箭头上面的这些配好就行。智谱API获取地址:https://bigmodel.cn/usercenter/apikeys

点击测试,可以看到右上角测试通过

picture.image

然后向FastGPT config 文件加入 GLM-4-Plus 模型

picture.image

picture.image

配置好后,由于配置了新的渠道,所以我们得重启一下镜像:


        
            

          docker-compose restart
        
      

picture.image

我们可以看到fastgpt多了一个:GLM-4-PLUS 模型,接入成功!

picture.image

3、FastGPT 知识库搭建 ?

在fastgpt中新建一个知识库,文本处理模型就选择GLM-4-PLUS

picture.image

默认用的是OpenAI的嵌入模型(用不了),你可以选择去Ollama中下载一个,然后和上面配置GLM-4-PLUS API一样的步骤,把这个本地嵌入模型配置到One-API中。

picture.image

picture.image

记得config.json也要配置,fastgpt才有显示

picture.image

Dify中接入GLM-4-Plus

Dify的部署和FastGPT差不多:https://docs.dify.ai/zh-hans/getting-started/install-self-hosted/docker-compose

拉仓库、拉镜像、运行镜像:

picture.image

picture.image

访问Dify后,接入GLM-4-Plus 模型是这样的(在Dify设置里面选择模型供应商,获取智谱AI密钥并填入即可):

picture.image

picture.image

这样就好了。

最后,顺便提一句,如果你是本地部署模型,这篇文章有一些知识:

[Ollama 升级!支持一键拉取Huggingface上所有的模型,太方便了!(vLLM、Fastgpt、Dify、多卡推理)

2024-10-17

picture.image](http://mp.weixin.qq.com/s?__biz=MzkyMzY1NTM0Mw==&mid=2247495145&idx=1&sn=bdf414c7b5d443900aae324d9e47db89&chksm=c1e36029f694e93fe2623305e4410361bb893a206571b7967349b79c3e1575d9cb603dbd93d6&scene=21#wechat_redirect)

对了,如果你以前看我的文章,你可能在使用Aider,所以 ...

Aider 中使用 GLM-4-Plus

我们可以看到Aider并没有提供智谱模型支持,但是它提供Openai兼容格式支持,而智谱的模型兼容OpenAI格式。

picture.image

所以我们只需下面三步就可以在Aider中使 用 glm-4-plus(setx是windows下环境变量设置命令):


          
setx OPENAI_API_BASE "https://open.bigmodel.cn/api/paas/v4/"
          
setx OPENAI_API_KEY xx
          
aider --model openai/glm-4-plus
      

只需要设置 OPENAI_API_BASE 、OPENAI_API_KEY 即可,然后再以 "aider --model openai/glm-4-plus" 指定aider启用的模型;

API获取地址:https://bigmodel.cn/usercenter/apikeys,并将api填入OPENAI\_API\_KEY。

picture.image

操作过程如下

picture.image

picture.image

我们输入打招呼用语,可以看到它正常输出。

然后让他使用HTML, CSS和JS创建一个待办事项应用程序。

picture.image

Plus 模型速度非常快,运行完成后打开它,功能一切正常。

picture.image

对了,你如果想Aider双模架构,可以看看这篇文章,Aider是一款非常好的AI编码助手:

Aider(已升级):Aider利用双模型架构做到85% SOTA得分!(架构师/编辑师助你实现编程新高度)

除此以外你可以在任何兼容Openai格式的API接入应用中使用 GLM-4-Plus 模型。比如我们以前的Claude Dev。

picture.image

亦或是知识笔记软件Obsidian

picture.image

Obsidian 接入 GLM系列模型 查看机器之心文章:https://mp.weixin.qq.com/s/xDBMqjVFxzSJdtX_VkwqtA

picture.image

🌟希望这篇文章对你有帮助,感谢阅读!如果你喜欢这系列文章请以 点赞 / 分享 / 在看 的方式告诉我,以便我用来评估创作方向。

👽Submission:kristjahmez06@gmail.com

知音难求,自我修炼亦艰

抓住前沿技术的机遇,与我们一起成为创新的超级个体

(把握AIGC时代的个人力量)

picture.image

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

科技前沿进展日日相见 ~

picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论