CUDA 12.1
torch 2.1.2+cu121
transformers 4.38.2
Langchain 0.1.14
Llama-index 0.10.28
vllm 0.4.0.post1
jdk 11
neo4j 4.4.32
cypher-shell 4.4.0
py2neo 2021.2.4
llama-index-embeddings-huggingface 0.2.1
## 3. 使用说明 hugging face下载脚本 和 modelscope下载脚本 用于从这两个在线模型库下载所需模型。 本实验需要用到两种模型。一是具备chat能力的大模型,例如示例使用的qwen1.5-1.8B-chat;二是具备文本嵌入能力的大模型,例如示例使用的PEG。这两种模型可以根据实际使用需求自行更换。 使用前应该先根据个人需要调整配置文件config.json 在front/test.html中将url_base替换为自己服务器的IP地址 在run_api.sh中修改模型文件夹目录 使用run_api.sh一键启动服务到本地后端,默认端口5000. 停止服务请使用stop_api.sh 第一次导入数据文件会经历embedding编码过程,会消耗一定时间。此后使用相同文件将使用预编译数据,会缩短这一过程。 用户可以使用Web页面执行以下操作: 选择对话模式:用户可以通过下拉菜单选择“嵌入模式”或“图谱模式”来决定他们想要与后端服务进行的交互类型。 输入问题:用户可以在文本输入框中输入他们的问题或请求。 发送请求:用户点击“发送”按钮后,输入的问题将通过HTTP POST请求发送到服务器。 查看历史记录:用户提交的问题和系统的回答将被记录并显示在页面下方的“历史”区域,方便用户回顾之前的对话。 输入限制(图谱模式):如果用户选择了“图谱模式”,则会显示一个额外的输入框,允许用户输入一个名为limit的数字参数。这个参数将与用户的问题一起发送到服务器。 默认限制值:如果用户在“图谱模式”下没有输入limit值,系统将默认使用100作为限制值。 错误处理:如果发送请求过程中遇到错误,比如网络问题或服务器错误,系统将在历史记录中显示一条错误消息,通知用户无法处理他们的请求。 用户可以输入提问,通过嵌入查询找到最匹配用户提问的问答对,将它返回给用户并提示此回答由专业数据库提供。用户也可以由chat大模型回答。若由chat大模型回答,此前的对话作为输入提供给LLM,将根据用户输入从知识图谱获取辅助信息,并基于这些信息继续与用户对话,并提示此回答由大模型生成,请谨慎识别。 /get_id (GET 方法): 功能:生成一个新的用户 ID。 输出:返回一个 JSON 对象,包含新生成的用户 ID。 用途:当有新用户请求服务时,为他们提供一个唯一的标识符。 /embedding (POST 方法): 功能:提供一个 embedding 服务,用于处理输入数据并返回一个结果。 输入:通过 JSON 接收输入数据。 输出:返回一个 JSON 对象,包含处理后的结果。 用途:用于需要文本嵌入或相似性分析的场景。 /chat (POST 方法): 功能:提供一个聊天服务,允许用户发送文本输入,并接收一个回答。 输入:通过 JSON 接收用户的输入文本和回答的返回数量限制。 输出:返回一个 JSON 对象,包含聊天机器人的回答。 用途:模拟与用户的对话交互,可以用于客户服务或信息查询。 embedding_function (辅助函数): 功能:实际执行 embedding 逻辑的函数。 输入:用户的输入数据和用户数据。 输出:返回处理后的答案和更新后的用户数据。 用途:在 /embedding API 端点中被调用,用于处理用户请求。 chat_function (辅助函数): 功能:实际执行聊天逻辑的函数。 输入:用户的输入数据、回答的返回数量限制和用户数据。 输出:返回聊天机器人的回答和更新后的用户数据。 用途:在 /chat API 端点中被调用,用于生成聊天回答。 此外,服务还具有以下特性: 使用 Flask-CORS 扩展来允许跨域请求,这意味着不同域的客户端可以调用这些 API。 有一个全局的 users_data 字典,用于存储用户的状态信息,如消息历史。 在处理 /embedding 和 /chat 请求时,服务会检查请求头中的 X-Local-ID 用户 ID,确保请求与特定的用户相关联。 用户数据在处理请求后会更新回 users_data 字典中,以便跟踪用户的状态和交互历史。 ## 4. 环境配置 下载驱动: https://www.nvidia.cn/geforce/drivers/ debug: https://blog.csdn.net/kuku123465/article/details/130250940 下载CUDA: https://developer.nvidia.com/cuda-12-1-0-download-archive 若要卸载之前的驱动或CUDA,优先考虑/usr/bin/nvidia-uninstall /usr/local/cuda-11.3/bin/cuda-uninstaller 安装Torch: https://pytorch.org/get-started/previous-versions/ 下载JDK: https://www.oracle.com/java/technologies/downloads/#java11 下载neo4j: https://go.neo4j.com/download-thanks.html?edition=community&release=4.4.34&flavour=deb 下载cyhper-shell: https://neo4j.com/deployment-center/?cypher-shell#tools-tab 第一次启动neo4j(service start neo4j或者neo4j start)时用户名密码均为neo4j,会要求修改,请记住 安装py2neo: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple py2neo==2021.2.4 其他未提到的依赖包直接通过pip install下载即可