> 技术文档 > Windows部署deepseek R1训练数据后通过AnythingLLM当服务器创建问答页面_anythingllm服务器如何搭建服务器

Windows部署deepseek R1训练数据后通过AnythingLLM当服务器创建问答页面_anythingllm服务器如何搭建服务器

如果要了解Windows部署Ollama 、deepseek R1请看我上一篇内容。

这是接上一篇的。

AnythingLLM是一个开源的全栈AI客户端,支持本地部署和API集成。它可以将任何文档或内容转化为上下文,供各种语言模型(LLM)在对话中使用。以下是关于Windows环境下使用AnythingLLM API的一些重要信息:

一、安装与配置AnythingLLM API

安装与配置AnythingLLM
  • 系统要求:支持Windows操作系统,建议至少8GB内存,推荐16GB或更高。
  • 下载和安装:访问AnythingLLM官方网站,下载对应的Windows安装包,按照提示完成安装。
  • 确保已安装 Python 3.9 及以上版本,并配置好环境变量。
  • 安装必要的依赖库,如 requests,可以通过 pip 命令安装:pip install requests
API调用
  • 生成密钥:首先需要点击左下角第四个小扳手图标进入设置生成密钥,用于API的身份验证。
  • 获取Workspace的slug:列出所有的workspace并找到对应的slug,用于指定API操作的工作空间。
  • 调用API:使用Python等编程语言,通过HTTP请求调用AnythingLLM的API。例如,使用requests.post()方法发送POST请求到指定的API端点,如http://your_ip:3001/api/v1/workspace/{slug}/chat,其中{slug}应替换为实际的工作空间。
  • 请求头和参数:在请求头中设置Authorization为生成的密钥,Content-Typeapplication/json。请求体中包含message(要询问的问题)和其他可选参数,如mode(chat或query)。
普通示例代码

以下是一个使用Python调用AnythingLLM API的示例代码:

import requestsdef ask_anythingllm(question, slug, api_key): url = f\"http://your_ip:3001/api/v1/workspace/{slug}/chat\" headers = { \"Authorization\": f\"Bearer {api_key}\", \"Content-Type\": \"application/json\", \"accept\": \"application/json\" } data = { \"message\": question, \"mode\": \"chat\" # 可选chat / query模式 } response = requests.post(url, headers=headers, json=data) if response.status_code == 200: result = response.json() answer = result[\'textResponse\'].split(\'\').strip() sources = result.get(\'sources\', []) return answer, sources else: return f\"Error: {response.text}\", []# 示例调用api_key = \"your_api_key\" # 替换成你自己的apikeyslug = \"your_workspace_slug\" # 替换成你自己的workspace slugquestion = \"你的问题\"answer, sources = ask_anythingllm(question, slug, api_key)print(\"回答:\", answer)print(\"来源:\", [src[\'title\'] for src in sources])
流式处理代码示例
  • 指定 AnythingLLM API 的 URL,例如:url = \"http://your_ip:3001/api/v1/workspace//stream-chat\",其中 your_ip 替换为部署 AnythingLLM 的服务器 IP,workspace_name 替换为实际的工作空间名称。
  • 设置请求头,包含授权信息和内容类型:headers = {\"Authorization\": f\"Bearer {api_key}\", \"Content-Type\": \"application/json\", \"accept\": \"text/event-stream\"}
  • 构建请求体,包含问题和其他参数:data = {\"message\": question, \"mode\": \"query\", \"max_tokens\": 1024, \"stream\": True}
  • 使用 requests.post() 方法发送 POST 请求,设置 stream=True 以启用流式响应:response = requests.post(url, headers=headers, json=data, stream=True)
  • 逐行读取响应内容,进行处理:for chunk in response.iter_lines(): if chunk: print(chunk.decode(\"utf-8\"))
import requestsdef ask_anythingllm(question, workspace_name, api_key): url = f\"http://your_ip:3001/api/v1/workspace/{workspace_name}/stream-chat\" headers = { \"Authorization\": f\"Bearer {api_key}\", \"Content-Type\": \"application/json\", \"accept\": \"text/event-stream\" } data = { \"message\": question, \"mode\": \"query\", \"max_tokens\": 1024, \"stream\": True } with requests.post(url, headers=headers, json=data, stream=True) as response: if response.status_code == 200: for chunk in response.iter_lines(): if chunk:  print(chunk.decode(\"utf-8\")) else: print(f\"Error: {response.status_code}: {response.text}\")# 示例调用api_key = \"YOUR_API_KEY\" # 替换成你自己的 API 密钥workspace_name = \"YOUR_WORKSPACE_NAME\" # 替换成你的工作空间名称question = \"你的问题\"ask_anythingllm(question, workspace_name, api_key)
注意事项
  • 确保 Windows 防火墙已开放 AnythingLLM 服务所使用的端口(默认为 3001),以便外部访问。
  • 在实际应用中,建议添加错误处理和异常捕获机制,以应对网络问题或其他潜在错误。
  • 流式输出适用于实时交互和长文本生成场景,可以提高用户体验和响应速度。

通过以上步骤,可以在Windows环境下成功调用AnythingLLM的API,实现与本地知识库的交互。

二、写一个问答网页

步骤概述
  1. 安装必要的库:使用 Flask 来构建 Web 应用,同时使用 requests 库来调用 Windows AnythingLLM API。
  2. 创建 Flask 应用:搭建一个简单的客服网页,接收用户输入,调用 API 获取回复,并将回复展示给用户。
from flask import Flask, render_template_string, requestimport requestsapp = Flask(__name__)# 配置 Windows AnythingLLM API 的地址和参数API_URL = \"http://your-anythingllm-api-url\" # 请替换为实际的 API 地址HEADERS = { \"Content-Type\": \"application/json\"}@app.route(\'/\', methods=[\'GET\', \'POST\'])def index(): if request.method == \'POST\': user_input = request.form.get(\'user_input\') # 构建请求体 data = { \"input\": user_input } try: # 调用 API response = requests.post(API_URL, headers=HEADERS, json=data) response.raise_for_status() api_response = response.json().get(\'response\', \'无有效回复\') except requests.RequestException as e: api_response = f\"请求出错: {e}\" else: api_response = \"\" return render_template_string(\'\'\'     客服网页   

客服网页



{% if api_response %}

回复:

{{ api_response }}

{% endif %} \'\'\', api_response=api_response)if __name__ == \'__main__\': app.run(host=\'127.0.0.1\', port=5000)

三、配置Cpolar内网穿透让其他人访问

配置Cpolar内网穿透
  1. 下载并安装Cpolar:从Cpolar官网下载适用于Windows的Cpolar客户端,并进行安装。
  2. 登录Cpolar Web UI:在浏览器中访问http://localhost:9200,使用注册的Cpolar账号登录。
  3. 创建隧道:在Cpolar Web UI中创建一个新的隧道,配置如下:
    • 隧道名称:自定义,如anythingllm-api
    • 协议:选择HTTP
    • 本地地址:填写3001(AnythingLLM的API端口)。
    • 域名类型:选择随机域名(免费使用)或升级为固定二级子域名。
  4. 获取公网地址:隧道创建成功后,在“在线隧道列表”中复制生成的公网URL,用于访问客服网页。
测试与访问
  1. 本地测试:确保问答网页在本地可以通过http://localhost:3001或其他本地地址正常访问。
  2. 公网访问:使用Cpolar生成的公网地址,在任何设备的浏览器中访问问答网页,验证是否能正常与AnythingLLM的API交互。
注意事项
  • 安全性:确保API密钥的安全,避免泄露。可以考虑使用HTTPS协议和添加身份验证机制来增强安全性。
  • 稳定性:长时间运行服务时,确保系统的稳定性,避免服务中断。
  • 带宽与性能:根据实际需求,考虑是否需要升级Cpolar套餐以提高带宽和性能。

通过以上步骤,即可在Windows上将AnythingLLM的API结合Cpolar内网穿透,创建一个可供其他人访问的问答网页。

最后一步点赞  关注一下(非常重要)

生命起源探索