安装与配置
章节大纲
-
安装
安装 RDAgent:针对不同场景
安装 Docker:
RDAgent 旨在进行研究和开发,其作用类似于人类研究员和开发者。它可以在各种环境中编写和运行代码,主要使用 Docker 进行代码执行。这种设计使依赖关系保持简单。在尝试大多数场景之前,用户必须确保已安装 Docker。请参阅 官方 🐳 Docker 页面 获取安装说明。请确保当前用户无需使用
sudo
即可运行 Docker 命令。您可以通过执行docker run hello-world
来验证。
LiteLLM 后端配置(默认)
注意
🔥 注意: 我们现在提供对 DeepSeek 模型的实验性支持!您可以使用 DeepSeek 的官方 API 来实现经济高效且性能卓越的推理。请参阅下面的配置示例来设置 DeepSeek。
选项 1:统一 API 基础地址(Base URL),同时用于两种模型
# 设置为 LiteLLM 支持的任何模型。 CHAT_MODEL=gpt-4o EMBEDDING_MODEL=text-embedding-3-small # 配置统一的 API 基础地址 # 后端 api_key 完全遵循 litellm 的约定。 OPENAI_API_BASE=<your_unified_api_base> OPENAI_API_KEY=<replace_with_your_openai_api_key>
选项 2:为聊天模型和嵌入模型分别设置 API 基础地址
# 设置为 LiteLLM 支持的任何模型。 # 聊天模型: CHAT_MODEL=gpt-4o OPENAI_API_BASE=<your_chat_api_base> OPENAI_API_KEY=<replace_with_your_openai_api_key> # 嵌入模型: # 以 siliconflow 为例,您可以使用其他提供商。 # 注意:嵌入模型需要 litellm_proxy 前缀 EMBEDDING_MODEL=litellm_proxy/BAAI/bge-large-en-v1.5 LITELLM_PROXY_API_KEY=<replace_with_your_siliconflow_api_key> LITELLM_PROXY_API_BASE=https://api.siliconflow.cn/v1
配置示例:DeepSeek 设置
许多用户在设置 DeepSeek 时遇到配置错误。以下是一个完整的可工作示例:
# 聊天模型:使用 DeepSeek 官方 API CHAT_MODEL=deepseek/deepseek-chat DEEPSEEK_API_KEY=<replace_with_your_deepseek_api_key> # 嵌入模型:由于 DeepSeek 没有嵌入模型,因此使用 SiliconFlow。 # 注意:嵌入模型需要 litellm_proxy 前缀 EMBEDDING_MODEL=litellm_proxy/BAAI/bge-m3 LITELLM_PROXY_API_KEY=<replace_with_your_siliconflow_api_key> LITELLM_PROXY_API_BASE=https://api.siliconflow.cn/v1
必要的参数包括:
-
CHAT_MODEL
:聊天模型的模型名称。 -
EMBEDDING_MODEL
:嵌入模型的模型名称。 -
OPENAI_API_BASE
:API 的基础 URL。如果EMBEDDING_MODEL
不是以litellm_proxy/
开头,则此参数同时用于聊天和嵌入模型;否则,仅用于CHAT_MODEL
。
可选参数(如果您的嵌入模型由与 CHAT_MODEL 不同的提供商提供,则需要):
-
LITELLM_PROXY_API_KEY
:嵌入模型的 API 密钥,如果EMBEDDING_MODEL
以litellm_proxy/
开头,则需要。 -
LITELLM_PROXY_API_BASE
:嵌入模型的 API 基础 URL,如果EMBEDDING_MODEL
以litellm_proxy/
开头,则需要。
注意: 如果您使用的嵌入模型与聊天模型来自不同的提供商,请记住在
EMBEDDING_MODEL
名称前添加litellm_proxy/
前缀。CHAT_MODEL
和EMBEDDING_MODEL
参数将被传递到 LiteLLM 的完成函数中。因此,当使用由不同提供商提供的模型时,首先检查 LiteLLM 的接口配置。模型名称必须与 LiteLLM 允许的名称匹配。
此外,您需要为您各自的模型提供商设置附加参数,并且参数名称必须与 LiteLLM 所要求的对齐。
例如,如果您使用 DeepSeek 模型,需要进行如下设置:
# 对于某些模型,LiteLLM 要求在模型名称前添加前缀。 CHAT_MODEL=deepseek/deepseek-chat DEEPSEEK_API_KEY=<replace_with_your_deepseek_api_key>
此外,当您使用推理模型时,响应可能包含思维过程。在这种情况下,您需要设置以下环境变量:
REASONING_THINK_RM=True
有关 LiteLLM 要求的更多详细信息,请参阅 官方 LiteLLM 文档。
配置示例 2:Azure OpenAI 设置
以下是基于 官方 LiteLLM 文档 专门针对 Azure OpenAI 的示例配置:
如果您正在使用 Azure OpenAI,以下是基于 LiteLLM Azure OpenAI 文档的使用 Python SDK 的工作示例:
Pythonfrom litellm import completion import os # 设置 Azure OpenAI 环境变量 os.environ["AZURE_API_KEY"] = "<your_azure_api_key>" os.environ["AZURE_API_BASE"] = "<your_azure_api_base>" os.environ["AZURE_API_VERSION"] = "<version>" # 向您的 Azure 部署发起请求 response = completion( "azure/<your_deployment_name>", messages = [{ "content": "Hello, how are you?", "role": "user" }] )
为了与上面的 Python SDK 示例对齐,您可以根据
response
模型设置配置CHAT_MODEL
,并通过将其写入本地.env
文件来使用相应的os.environ
变量,如下所示:cat << EOF > .env # 聊天模型:通过 LiteLLM 使用 Azure OpenAI CHAT_MODEL=azure/<your_deployment_name> AZURE_API_BASE=https://<your_azure_base>.openai.azure.com/ AZURE_API_KEY=<your_azure_api_key> AZURE_API_VERSION=<version> # 嵌入模型:通过 litellm_proxy 使用 SiliconFlow EMBEDDING_MODEL=litellm_proxy/BAAI/bge-large-en-v1.5 LITELLM_PROXY_API_KEY=<your_siliconflow_api_key> LITELLM_PROXY_API_BASE=https://api.siliconflow.cn/v1 EOF
此配置使您可以通过 LiteLLM 调用 Azure OpenAI,同时使用外部提供商(例如 SiliconFlow)进行嵌入。
如果您的 Azure OpenAI API 密钥支持嵌入模型,您可以参考以下配置示例。
cat << EOF > .env EMBEDDING_MODEL=azure/<Model deployment supporting embedding> CHAT_MODEL=azure/<your deployment name> AZURE_API_KEY=<replace_with_your_openai_api_key> AZURE_API_BASE=<your_unified_api_base> AZURE_API_VERSION=<azure api version>
配置(已弃用)
要运行应用程序,请在项目的根目录中创建一个
.env
文件,并根据您的要求添加环境变量。如果您正在使用此已弃用版本,则应将
BACKEND
设置为rdagent.oai.backend.DeprecBackend
。BACKEND=rdagent.oai.backend.DeprecBackend
以下是您可以使用的其他配置选项:
OpenAI API
这是用户使用 OpenAI API 的标准配置。
OPENAI_API_KEY=<your_api_key> EMBEDDING_MODEL=text-embedding-3-small CHAT_MODEL=gpt-4-turbo
Azure OpenAI
以下是用户使用 OpenAI API 的标准配置选项。
USE_AZURE=True EMBEDDING_OPENAI_API_KEY=<replace_with_your_azure_openai_api_key> EMBEDDING_AZURE_API_BASE= # Azure OpenAI API 的端点。 EMBEDDING_AZURE_API_VERSION= # Azure OpenAI API 的版本。 EMBEDDING_MODEL=text-embedding-3-small CHAT_OPENAI_API_KEY=<replace_with_your_azure_openai_api_key> CHAT_AZURE_API_BASE= # Azure OpenAI API 的端点。 CHAT_AZURE_API_VERSION= # Azure OpenAI API 的版本。 CHAT_MODEL= # Azure OpenAI API 的模型名称。
使用 Azure 令牌提供商(Token Provider)
如果您正在使用 Azure 令牌提供商,则需要将
CHAT_USE_AZURE_TOKEN_PROVIDER
和EMBEDDING_USE_AZURE_TOKEN_PROVIDER
环境变量设置为True
。然后使用 Azure 配置 部分中提供的环境变量。☁️ Azure 配置 - 安装 Azure CLI:
sh curl -L https://aka.ms/InstallAzureCli | bash
登录 Azure:
sh az login --use-device-code
退出并重新登录到您的环境(此步骤可能不是必需的)。
配置列表
OpenAI API 设置
配置选项 含义 默认值 OPENAI_API_KEY
聊天和嵌入模型的 API 密钥 None EMBEDDING_OPENAI_API_KEY
为嵌入模型使用不同的 API 密钥 None CHAT_OPENAI_API_KEY
为聊天模型设置不同的 API 密钥 None EMBEDDING_MODEL
嵌入模型的名称 text-embedding-3-small CHAT_MODEL
聊天模型的名称 gpt-4-turbo EMBEDDING_AZURE_API_BASE
Azure OpenAI API 的基础 URL None EMBEDDING_AZURE_API_VERSION
Azure OpenAI API 的版本 None CHAT_AZURE_API_BASE
Azure OpenAI API 的基础 URL None CHAT_AZURE_API_VERSION
Azure OpenAI API 的版本 None USE_AZURE
如果您使用 Azure OpenAI,则为 True False CHAT_USE_AZURE_TOKEN_PROVIDER
如果您在聊天模型中使用 Azure 令牌提供商,则为 True False EMBEDDING_USE_AZURE_TOKEN_PROVIDER
如果您在嵌入模型中使用 Azure 令牌提供商,则为 True False 全局设置
配置选项 含义 默认值 max_retry
最大重试次数 10 retry_wait_seconds
每次重试前等待的秒数 1 log_trace_path
日志跟踪文件的路径 None log_llm_chat_content
标志,指示是否记录聊天内容 True 缓存设置
配置选项 含义 默认值 dump_chat_cache
标志,指示是否转储聊天缓存 False dump_embedding_cache
标志,指示是否转储嵌入缓存 False use_chat_cache
标志,指示是否使用聊天缓存 False use_embedding_cache
标志,指示是否使用嵌入缓存 False prompt_cache_path
提示缓存的路径 ./prompt_cache.db max_past_message_include
要包含的过去消息的最大数量 10
加载配置
为了方便用户,我们提供了一个名为
rdagent
的 CLI 接口,它会自动运行load_dotenv()
从.env
文件中加载环境变量。但是,此功能默认情况下对其他脚本未启用。我们建议用户通过以下步骤加载环境:⚙️ 环境配置
-
将
.env
文件放在与.env.example
文件相同的目录中。 -
.env.example
文件包含使用 OpenAI API 的用户所需的环境变量(请注意,.env.example
是一个示例文件,.env
才是最终使用的文件)。 -
导出
.env
文件中的每个变量:
export $(grep -v '^#' .env | xargs)
如果您想更改默认环境变量,可以参考上面的配置并编辑
.env
文件。 -