欢迎光临散文网 会员登陆 & 注册

给文心一言加上知识库和搜索引擎(一)

2023-09-01 18:52 作者:FDX01  | 我要投稿
文心一言开放了,手机端的几个模板还不错
但是还是要拉出来溜溜

文心一言发布了,官方示例太无聊,写个知识库项目看看文心一言的水平究竟有多少。

待在家里躺床太无聊,所以小小地练练手和脑子

前期准备

申请文心一言apikey

前往并登录 百度智能云-登录 (baidu.com)

创建应用并打开文心一言turbo的付费

然后充值10元钱


创建Milvus数据库(可选)

教程 Install Milvus Standalone with Docker Compose (CPU) Milvus documentation


测试文心一言

首先给langchain安装升级一下

去langchain库里翻代码找找文心一言的例子

注意client_id应该是你的apikey,不得不说百度的文档就是答辩依托

成功得到答案

🤖Hello, ErnieBot. I'm a language model. What can I do for you?


正式开始

让我们开始我们的敏捷开发

AI应用最快的应用开发方式当然是gradio

我们首先尝试使用gradio调用文心一言

这里要用到gradio的chatbot模块

我们可以直接观赏一下官方用例

chatbot

可以看到以下特性

  • 聊天框

  • 流式传输

  • 文件上传

基本满足了一个chatbot的基本需求,我们直接在此基础上进行开发


安装gradio

观察函数,我们需要修改的地方其实只有response部分


response部分使用文心一言的回答进行替换即可


这里使用了langchain的ConversationChain,并删除了chatbot文件上传功能

效果不错涅~就是界面有点简陋


接下来我们使用gradio的block功能为我们的界面进行大升级

首先把我们的apikey放到yaml文件中

添加的代码如下

yaml文件,new_cof.yaml

添加个初始化模型和chain的函数

通过gradio的block函数优化我们的设计

启动后项目界面如下

来感觉了,有没有

来试试

可以看到我们目前实现的功能设计:

  • 流式回答

  • 上下文记忆

  • 刷新与发送

  • 更改模型配置

至此一个完整简单的chatbot设计就完成了


Embedding

我们在使用embedding功能时主要用到了milvus向量数据库,也有平替的向量数据库,请自行寻找...

设计gradio切换embedding和llm的按钮,来决定是否使用知识库

并设计按钮使用知识库

    


为知识库添加支持函数,并使用embedding相关的chain

重写block部分和部分函数,添加知识库支持,这是目前的完整函数

使用,从文本中测试

新建文本文件test.txt

选择载入知识库,并上传test.txt

询问问题,可以看到我们的知识库完美实现了功能


目前为止,我们实现的功能有

  • 上传文件作为知识库

  • 从链接中载入知识库

  • 是否使用知识库的切换


search

这里我们使用了duckduckgo_search作为我们的搜索引擎,如果你愿意,使用百度微软谷歌也是同理

搜索实现

让我们把搜索加入我们的应用

可以从我们的终端中看出我们的搜索引擎在完美运作

.................

后续如果继续就是设计向量数据库对embedding数据的生命周期进行设计了

给文心一言加上知识库和搜索引擎(一)的评论 (共 条)

分享到微博请遵守国家法律