ollama+deepseek可参考上篇:使用ollama快速搭建自己本地的deepseek服务-CSDN博客

下载AnythingLLM,官网:Download AnythingLLM for Desktop,根据自己的系统和架构下载安装:

下载好后安装:

等待安装:(如果不用ollama的那些库或者下载不动可以关掉跳过下载ollama的库)

安装完运行起来,打开左下角设置可以进行相关设置:

先设置为中文:

可以设置ollama:

向量数据库用默认的就好:

Embedder用默认的,或者也可以用ollama的:

或者

其他的设置默认就行;

回到主页添加工作区:

输入名字,保存:

可以直接发送消息测试下:

点击小齿轮可以进行一些设置:

聊天设置里,聊天模式可以设置查询,会只根据上下文知识库查询(必须要添加知识库才能查询到):

设置好要更新一下:

向量数据库,上下文也可以按需求设置下并更新:

点击上传文档:

点击蓝色框上传文件,或者直接拖文件上去也可以:

随便模拟了几篇日记:

将这些文档上传上去:

可以新建个文件夹,把它们放到一起:(可选操作)

这样就把这些文档移动到新建的文件夹里了:

然后把这些文档添加到当前工作区的知识库里:

然后向量化:

等一会,下面弹窗Successful就说明向量完成了:

可以对知识库进行操作,删除文档,将文档pin标记可以优先使用该文档:

然后就可以问关于知识库的东西了:

另外AnythingLLM也提供了api,但是AnythingLLM默认不提供外部访问,需要先在设置里打开开放权限:(也支持网页插件)

首先在"工具->API密钥"里生成密钥:

注意,生成完这个页面没刷新,需要重新刷一下(先切到别的页面再切回来),点击页面上的Copy API Key可以复制密钥:

点击阅读api文档,打开api文档,可以直接在里面调试:

设置密钥:

每个api都有详细介绍,也可以直接测试:

这些接口都是http的,直接http客户端就可以调用api了;

要调用聊天api,首先需要密钥(前面已经拿到了),还需要一个工作区的slug,可以通过/v1/workspaces查询出来:(如果使用workspace+thread聊天,还需要记录下thread的slug)

在聊天接口里把slug填上,下面的请求地址就自动生成了:

修改body:

改好后,点击执行:

这个是非流式的接口,所以要等全部结果生成好了才一次性返回,要LOADING一会结果:

也可以使用python代码调用api:

非流式:(注意设定自己的Authorization请求头和workspace的slug)

import requests
import json

json_data = {
    "message": "日记中哪天下雪了?",
    "mode": "chat",
    "userId": 2,
    "attachments": []
}
my_headers = {
    'accept': 'application/json',
    'Authorization': 'Bearer NE1H6D0-JT84EG4-P7FJN6Z-RJW9J4F',
    'Content-Type': 'application/json',
}
res = requests.post(
    'http://192.168.1.32:3001/api/v1/workspace/0bd51938-58cc-4d8a-aeb3-e16f70745ae3/chat',
    headers=my_headers,
    json=json_data)
json_obj = json.loads(res.text)
print(json_obj)
print(json_obj.get('textResponse'))

结果:(等一会一次性返回)

流式:(除了需要设置Authorization和slug,还要设置accept为text/event-stream,并且接口也改为了stream-chat)

import requests
import json

json_data = {
    "message": "日记中哪天可能下雨了?",
    "mode": "chat",
    "userId": 2,
    "attachments": []
}
my_headers = {
    'accept': 'text/event-stream',
    'Authorization': 'Bearer NE1H6D0-JT84EG4-P7FJN6Z-RJW9J4F',
    'Content-Type': 'application/json',
}
with requests.post('http://192.168.1.32:3001/api/v1/workspace/0bd51938-58cc-4d8a-aeb3-e16f70745ae3/stream-chat'
                   , json=json_data, headers=my_headers, stream=True) as r:
    for chunk in r.iter_content(chunk_size=10240):
        if chunk:
            obj = json.loads(chunk.decode('utf-8').replace('data:', ''))
            if obj.get('close') is not True:
                print(obj.get('textResponse'), end='')

代码执行中结果打印:(几个字几个字的返回,跟市面上那些AI聊天效果基本一样)

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐