OptiLLM:与 OpenAI API 兼容的推理优化代理
OptiLLM 是一个与 OpenAI API 兼容的推理优化代理。
核验日期
核心信息
以下信息由程序从官方接口读取,不经模型改写。
- 许可证
- Apache-2.0
- 语言
- Python
- 维护方
- algorithmicsuperintelligence
- 核验日期
它是什么
OptiLLM 是一个与 OpenAI API 兼容的推理优化代理。optillm 是一个透明代理。代理运行后,可以通过设置 base_url,将其用作 OpenAI 客户端的直接替代。
主要能力
readurls 插件会获取提示词中的 URL,默认阻止对非公开目标的请求,并对每一跳重定向重新校验、拒绝无法解析的主机。
如果部署确实需要读取内部文档页,可以显式关闭这项检查;文档提醒,仅在可信网络且确需访问内部 URL 时才这样做。
文档注明了一项已知局限(DNS 重绑定):底层 HTTP 客户端建立连接时会再解析一次,受攻击者控制的域名可能在两次解析之间重绑定到内部地址,因此高安全部署不能只依赖该检查,还应另行限制 optillm 进程的出站网络(防火墙或服务网格策略)。
Privacy 插件对请求中的 PII 数据做匿名化,并在响应中还原为原始值。
Web Search 插件使用 Chrome 自动化(Selenium)执行 Google 搜索,以收集搜索结果和 URL。
Proxy 插件在多个 LLM 提供商之间提供负载均衡和故障转移,并带有健康监控和轮询路由。
对于 Memory 插件,设置 OPTILLM_MEMORY_FILE 可选择启用基于文件的持久化,使记忆在多次请求之间保留。
怎么上手
optillm 支持多种命令行参数用于配置。
使用 Docker 时,这些参数也可以设置为以 OPTILLM_ 为前缀的环境变量。
python optillm.py
2024-09-06 07:57:14,191 - INFO - Starting server with approach: auto
2024-09-06 07:57:14,191 - INFO - Server configuration: {'approach': 'auto', 'mcts_simulations': 2, 'mcts_exploration': 0.2, 'mcts_depth': 1, 'best_of_n': 3, 'model': 'gpt-4o-mini', 'rstar_max_depth': 3, 'rstar_num_rollouts': 5, 'rstar_c': 1.4, 'base_url': '', 'host': '127.0.0.1'}
* Serving Flask app 'optillm'
* Debug mode: off
2024-09-06 07:57:14,212 - INFO - WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:8000
2024-09-06 07:57:14,212 - INFO - Press CTRL+C to quitimport os
from openai import OpenAI
OPENAI_KEY = os.environ.get("OPENAI_API_KEY")
OPENAI_BASE_URL = "http://localhost:8000/v1"
client = OpenAI(api_key=OPENAI_KEY, base_url=OPENAI_BASE_URL)
response = client.chat.completions.create(
model="moa-gpt-4o",
messages=[
{
"role": "user",
"content": "Write a Python program to build an RL model to recite text from any position that the user provides, using only numpy."
}
],
temperature=0.2
)
print(response)2024-09-06 08:35:32,597 - INFO - Using approach moa, with gpt-4o-mini
2024-09-06 08:35:35,358 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-09-06 08:35:39,553 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-09-06 08:35:44,795 - INFO - HTTP Request: POST https://api.openai.com/v1/chat/completions "HTTP/1.1 200 OK"
2024-09-06 08:35:44,797 - INFO - 127.0.0.1 - - [06/Sep/2024 08:35:44] "POST /v1/chat/completions HTTP/1.1" 200 -response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{ "role": "user","content": "" }],
temperature=0.2,
extra_body={"optillm_approach": "bon|moa|mcts"}
)response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{ "role": "user","content": "<optillm_approach>re2</optillm_approach> How many r's are there in strawberry?" }],
temperature=0.2
)OPTILLM_API_KEY=your_secret_api_key适合谁
默认情况下,optillm 绑定到 127.0.0.1(仅限本机),出于安全考虑。内置推理服务器还提供旧版文本补全端点,旧版 OpenAI 客户端可与之配合使用。流式传输在旧版文本补全端点上尚不支持。
Anthropic API、llama.cpp-server 和 ollama 目前不支持从模型采样多个响应。对于 HuggingFace 上的模型,可以使用内置的本地推理服务器,因为它支持多个响应。OptILLM 支持 SSL 证书验证配置,用于自签名证书或企业代理。
Offline 镜像变体是自包含镜像,带有预下载模型(spaCy),可完全离线运行。所有测试会通过 GitHub Actions 在拉取请求上自动运行。该工作流测试多个 Python 版本:3.10、3.11、3.12。
MCP 插件使 OptiLLM 能够连接 MCP 服务器。OptiLLM 通过多种传输方式支持本地和远程 MCP 服务器。websocket 传输已在 MCP Python SDK 2.x 中移除,不再受支持。
Majority Voting 插件生成 k 个候选解,并通过多数投票选出出现最频繁的答案(默认 k=6)。Z3 Solver 方法使用 Z3 定理证明器进行逻辑推理。PlanSearch 实现了一种针对自然语言解题的候选计划搜索算法。
Monte Carlo Tree Search 方法在聊天响应中使用 MCTS 进行决策。Router 插件使用 optillm-modernbert-large 模型,根据用户提示词把请求路由到不同方法。
来源
本页内容整理自以下官方来源,点击可核对原文。
- GitHub READMEhttps://github.com/algorithmicsuperintelligence/optillm抓取于
核验日期 ·
本页由 AI 依据上述官方来源整理,并经自动核对,未经本站实测。 发现错误?告诉我们。