GPTs之OpenGPTs:OpenGPTs(一款可以按需求自定义配置和构建的GPTs)的简介(模仿OpenAI的GPTs)、安装、使用方法之详细攻略
目录
1、GPTs: a simple hosted version
OpenGPTs的简介
2023年11月6日,LangChain官方发布了OpenGPTs项目,这是一个令人兴奋的全新开源项目,允许您创建定制的聊天机器人,比OpenAI等封闭解决方案更具灵活性。基于LangChain、LangServe和LangSmith构建,OpenGPTs使您能够控制用于驱动对话人工智能的语言模型、工具和API。通过OpenGPTs,您可以配置和构建根据您的需求定制的聊天机器人。
与直接使用OpenAI相比,OpenGPTs的吸引力在于它更具可定制性。具体而言,您可以选择使用哪些语言模型,以及更轻松地添加自定义工具。您还可以直接使用底层API并选择构建自己的自定义UI。
OpenGPTs为创建根据您的需求定制的聊天机器人提供了一个开放的框架。透明的代码库和LangChain集成为您提供了无与伦比的控制和可定制性。这是一个创建与OpenAI的GPT和Assistants API类似体验的开源工作。它基于LangChain、LangServe和LangSmith。OpenGPTs给予您更多控制权,使您能够配置:
>> 您使用的LLM(在LangChain提供的60多种中选择)
>> 您使用的提示(使用LangSmith调试它们)
>> 您为其提供的工具(从LangChain的100多种工具中选择,或轻松编写自己的工具)
>> 您使用的向量数据库(从LangChain的60多个向量数据库集成中选择)
>> 您使用的检索算法
>> 您使用的聊天历史数据库
查看Github上的项目,开始使用吧!
官网:OpenGPTs - The opensource alternative to OpenAI's chatgpt GPTs store
GitHub地址:GitHub - langchain-ai/opengpts
1、主要特点
OpenGPTs旨在提供与OpenAI相当的功能,同时支持定制:
- >> Sandbox沙盒:导入、测试和修改以代码定义的现有聊天机器人
- >> Custom Actions自定义操作:通过OpenAPI规范扩展聊天机器人的功能
- >> Tools 工具:整合自定义工具,用于网页浏览、图像生成等
- >> Analytics 分析:通过LangSmith集成监控使用数据
- >> Drafts & Sharing草稿和分享:保存、分享和部署已完成的聊天机器人
- >> Marketplace市场:分发并从社区中找到聊天机器人(即将推出)
最新版本更新内容:
尽可能地,我们正在追求与OpenAI的功能相匹配。
- >> Sandbox:提供一个环境,用于导入、测试和修改现有的聊天机器人。使用的聊天机器人都是代码形式的,因此很容易编辑。
- >> Custom Actions:使用OpenAPI规范定义聊天机器人的附加功能。通过添加工具支持。
- >> Knowledge Files:附加额外的文件,供聊天机器人引用。可以从UI或API上传文件,被Retrieval工具使用。
- >> Tools:为网页浏览、图像创建等提供基本工具。默认启用基本的DuckDuckGo和PythonREPL工具。即将推出图像创建。
- >> Analytics:查看和分析聊天机器人使用数据。使用LangSmith实现此功能。
- >> Drafts:保存和分享您正在创建的聊天机器人的草稿。支持保存配置。
- >> Publishing:公开分发您的完成聊天机器人。可以通过通过LangServe部署来实现。
- >> Sharing:设置和管理聊天机器人的共享。可以通过通过LangServe部署来实现。
- >> Marketplace:搜索和部署其他用户创建的聊天机器人。即将推出。
2、选择您的语言模型
一个主要优势是能够选择不同的语言模型(LLMs)来驱动您的助手,这要归功于LangChain的集成。开箱即用,OpenGPTs提供以下选项:
- >> GPT 3.5 Turbo
- >> GPT 4
- >> Azure OpenAI
- >> Claude 2
添加新的LLMs很容易 - 查看backend/packages/gizmo-agent以查看配置。如果您想要添加自己的LLM或代理配置,或者想要编辑现有的配置,您可以在backend/packages/gizmo-agent/gizmo_agent/agent_types中找到它们。
Claude 2 | 如果使用Claude 2,您将需要设置以下环境变量: export ANTHROPIC_API_KEY=sk-... |
Azure OpenAI | 如果使用Azure OpenAI,您将需要设置以下环境变量: export AZURE_OPENAI_API_BASE=... export AZURE_OPENAI_API_VERSION=... export AZURE_OPENAI_API_KEY=... export AZURE_OPENAI_DEPLOYMENT_NAME=... |
Amazon Bedrock | 如果使用Amazon Bedrock,您要么在~/.aws/credentials中有有效的凭据,要么设置以下环境变量: export AWS_ACCESS_KEY_ID=... export AWS_SECRET_ACCESS_KEY=... |
…… |
3、添加自定义工具
使用OpenGPTs,您只需编写Python代码即可添加新的工具,供您的聊天机器人访问。默认工具包括:
- >> DuckDuckGo搜索
- >> Python REPL(在您的环境中执行Python)
请参阅LangChain文档以获取有关添加工具的指南。
地址:https://python.langchain.com/docs/modules/agents/tools/custom_tools
将其开源的一个重要好处是您可以更轻松地添加工具(直接使用Python)。
实际上,我们看到的大多数团队都会定义自己的工具。在LangChain内部很容易实现这一点。有关如何最好地执行此操作的详细信息,请参见此指南。
如果您想要使用一些预配置的工具,这些工具包括:
DuckDuckGo搜索 | 使用DuckDuckGo搜索网络。不需要任何API密钥。 |
Tavily搜索 | 使用Tavily搜索引擎。需要设置一个环境变量: export TAVILY_API_KEY=tvly-... 在此处注册API密钥。 |
Tavily搜索(仅回答) | 使用Tavily搜索引擎。这只返回答案,没有支持证据。当您需要短回答(小上下文窗口)时很好。需要设置一个环境变量: export TAVILY_API_KEY=tvly-... 在此处注册API密钥。 |
You.com搜索 | 使用You.com搜索,为LLMs优化响应。需要设置一个环境变量: export YDC_API_KEY=... 在此处注册API密钥 |
SEC Filings | SEC Filings(Kay.ai) 使用Kay.ai搜索SEC提交。需要设置一个环境变量: export KAY_API_KEY=... 在此处注册API密钥 |
Press Releases | Press Releases(Kay.ai) 使用Kay.ai搜索新闻稿。需要设置一个环境变量: export KAY_API_KEY=... 在此处注册API密钥 |
Arxiv | 搜索Arxiv。不需要任何API密钥。 |
PubMed | 搜索PubMed。不需要任何API密钥。 |
Wikipedia | 搜索Wikipedia。不需要任何API密钥。 |
4、部署您的聊天机器人
一旦构建了自定义聊天机器人,通过LangServe,OpenGPTs使得部署变得简单。请按照以下步骤操作:
- >> 构建前端
- >> 部署到像Google Cloud Run这样的平台
现在任何人都可以访问您专业的对话助手了!
OpenGPTs的安装
T1、常规安装
第一步、安装依赖并启动后端
下载依赖 | cd backend pip install -r requirements.txt |
设置持久层 | 默认情况下,后端使用Redis保存代理配置和聊天消息历史记录。为了使用此功能,您需要设置REDIS_URL变量。 export REDIS_URL=... |
设置向量数据库 | 默认情况下,后端还使用Redis作为向量数据库,尽管您可以轻松切换到LangChain中的50多个向量数据库之一。如果您正在使用Redis作为矢量存储,上述环境变量应该可以工作(假设您已启用redissearch)。 |
设置语言模型 | 默认情况下,这使用OpenAI,但也有Azure OpenAI和Anthropic的选项。如果您使用这些选项,您可能需要设置不同的环境变量。 export OPENAI_API_KEY="sk-..." 其他语言模型也可以使用,为了使用它们,您需要设置更多的环境变量。有关配置Azure OpenAI、Anthropic和Amazon Bedrock的详细信息,请参见下面关于LLMs的部分。 |
设置工具 | 默认情况下使用了许多工具。其中一些需要额外的环境变量。您不需要使用这些工具,也不需要在启动应用程序时使用这些环境变量(只有在调用该工具时才需要)。 要启用的所有环境变量的完整列表,请参见下面的工具部分。 |
设置监控 | 设置LangSmith。这是可选的,但它将有助于调试、日志记录和监控。在上面的链接上注册,然后设置相关的环境变量 export LANGCHAIN_TRACING_V2="true" export LANGCHAIN_API_KEY=... |
启动后端服务器 | 启动后端服务器 langchain serve --port=8100 |
第二步、启动前端
启动前端 | cd frontend yarn yarn dev 导航到 http://localhost:5173/ 并享受! |
T2、采用Docker安装和运行
简介 | 该项目支持基于Docker的设置,简化安装和执行。它会自动从各自的Docker文件构建前端和后端的镜像,并使用docker-compose设置Redis。 |
快速开始 | 克隆存储库: 通过克隆存储库获取项目文件。 git clone https://github.com/langchain-ai/opengpts.git cd opengpts |
使用Docker Compose运行: 在项目的根目录中,执行: docker compose up 此命令从各自的Docker文件构建前端和后端的Docker镜像,并启动包括Redis在内的所有必要服务。 | |
访问应用程序: 在服务运行时,通过访问 http://localhost:5173 访问前端,将5173替换为指定的端口号。 | |
在更改后重建: 如果更改前端或后端,请重建Docker镜像以反映这些更改。运行: docker-compose up --build 此命令使用最新的更改重新构建镜像并重新启动服务。 | |
注意 | 确保在您的系统上安装了Docker和docker-compose。 根据特定的环境配置需要调整.env文件。 |
T3、到Google Cloud Run
构建前端 | cd frontend yarn yarn build |
部署到Google Cloud Run | 您可以使用以下命令部署到GCP Cloud Run: 首先创建一个.env.gcp.yaml文件,其中包含.env.gcp.yaml.example中的内容,并填写值。然后运行: gcloud run deploy opengpts --source . --port 8001 --env-vars-file .env.gcp.yaml --allow-unauthenticated --region us-central1 --min-instances 1 |
OpenGPTs的使用方法
1、GPTs: a simple hosted version
地址:OpenGPTs
依次选择Bot Type→选择Agent Type→填写System Mess→选择Tools→Create a public link,最后起选择一个名字即可!