模板网站库,企业网站制作官网,雄安网站建设公司,2023最近的新闻大事基本介绍
上篇文章我们讲解了使用FastAPIMemFire CloudLangChain进行GPT知识库开发的基本原理和关键路径的代码实现。目前完整的实现代码已经上传到了github#xff0c;感兴趣的可以自己玩一下#xff1a;
https://github.com/MemFire-Cloud/memfirecloud-qa
目前代码主要…基本介绍
上篇文章我们讲解了使用FastAPIMemFire CloudLangChain进行GPT知识库开发的基本原理和关键路径的代码实现。目前完整的实现代码已经上传到了github感兴趣的可以自己玩一下
https://github.com/MemFire-Cloud/memfirecloud-qa
目前代码主要完成了如下一些基本功能
使用FastAPI作为Web服务端框架完成了基本的Web服务端开发使用MemFire Cloud作为向量数据和个人文档数据存储使用LangChain进行AI应用开发加载本地磁盘目录上的文档计算embedding、存储到向量数据库使用OpenAI的GPT模型完成问答功能的实现使用Next.js开发了一个简单的UI界面用于问答演示
本篇文章我们将介绍一下如何部署示例代码。
准备工作
在MemFire Cloud上创建应用后面需要用到应用的API URL和Service Role Key。可以在应用的应用设置-API页面找到相应的配置 创建应用后在应用的SQL执行器页面执行如下脚本
-- Enable the pgvector extension to work with embedding vectors
create extension vector;-- Create a table to store your documents
create table documents (id uuid primary key,content text, -- corresponds to Document.pageContentmetadata jsonb, -- corresponds to Document.metadataembedding vector(1536) -- 1536 works for OpenAI embeddings, change if needed
);CREATE FUNCTION match_documents(query_embedding vector(1536), match_count int)RETURNS TABLE(id uuid,content text,metadata jsonb,-- we return matched vectors to enable maximal marginal relevance searchesembedding vector(1536),similarity float)LANGUAGE plpgsqlAS $$# variable_conflict use_column
BEGINRETURN querySELECTid,content,metadata,embedding,1 -(documents.embedding query_embedding) AS similarityFROMdocumentsORDER BYdocuments.embedding query_embeddingLIMIT match_count;
END;
$$;准备好用来测试的文档目录 默认需要将文档放到app/docs下可以通过环境变量指定其他目录 准备好openai的账号 请参考网上教程申请一个openai账号后面代码运行需要用到openai的API KEY
如何运行
linux 下运行
1.安装依赖
pip install -r app/requirements.txt2.设置参数 SUPABASE_URL/SUPABASE_KEY分别对应应用URL和service_role密钥。注意service_role秘钥具有比较高的数据库操作权限只能用于服务端配置不要泄漏。
export DOCS_PATH./docs
export SUPABASE_URLyour-api-url
export SUPABASE_KEYyour-service-role-key
export OPENAI_API_KEYyour-openai-api-key3.运行
uvicorn main:app --reload --host 0.0.0.0docker运行
docker build -t memfirecloud-qa:v1 .
docker run -p 8000:80 \-e SUPABASE_URLyour-api-url \-e SUPABASE_KEYyour-service-role-key \-e OPENAI_API_KEYyour-openai-api-key \-v ./docs:/docs \memfirecloud-qa:v1windows下运行没测试
与linux类似设置相关环境变量然后运行:
uvicorn main:app --reload --host 0.0.0.0如何访问
用浏览器访问: http://your-ip:8000/可以显示一个简单的问答页面
支持的参数配置
# 本地文档路径
export DOCS_PATH./docs# memfire cloud 应用的API URL和Service role key
export SUPABASE_URLyour-api-url
export SUPABASE_KEYyour-service-role-key# 使用openai / baidu 的大模型
export QA_BACKENDopenai # 默认值# openai 相关配置QA_BACKENDopenai是需要
export OPENAI_ORGANIZATIONyour-openai-organization
export OPENAI_API_KEYyour-openai-api-key
export OPENAI_MODELgpt-3.5-turbo # 默认值# 百度相关配置QA_BACKENDbaidu时需要
export BAIDU_API_KEYyour-baidu-api-key
export BAIDU_API_SECRETyour-baidu-api-secret
export BAIDU_MODELERNIE-Bot-turbo # 默认值接下来可以做的事情 过滤掉重复文档避免应用重启或者添加重复文档时重新计算embedding 程序运行中支持增量添加新文档实时更新知识库 支持对话chat目前只是问答QA不能连续对话 支持百度文心一言的接口已完成api的封装
感兴趣的可以提交pr一起完善功能。