项目介绍:llm-gateway
🤔 什么是 llm-gateway?
llm-gateway
是一个为第三方大型语言模型(LLM)供应商如 OpenAI、Cohere 等提供的网关。它通过 PostgreSQL 数据库来追踪发送到这些供应商和从中接收的数据,并在发送前运行个人识别信息(PII)的清除策略。
根据 OpenAI 的非 API 消费者产品数据使用政策,他们可能会利用用户的输入内容、响应、上传图片和生成图片来提升服务质量,包括如 ChatGPT 和 DALL-E 等产品。使用 llm-gateway
与 OpenAI 互动是一个安全的选择。该网关还通过使用 OpenAI 的 /ChatCompletion
接口重现了 ChatGPT 前端,因此所有通信都在 API 内进行。
📦 支持的模型
以下是 llm-gateway
支持的模型列表:
供应商 | 模型 |
---|---|
OpenAI | GPT 3.5 Turbo |
OpenAI | GPT 3.5 Turbo 16k |
OpenAI | GPT 4 |
AI21 Labs | Jurassic-2 Ultra |
AI21 Labs | Jurassic-2 Mid |
亚马逊 | Titan Text Lite |
亚马逊 | Titan Text Express |
亚马逊 | Titan Text Embeddings |
Anthropic | Claude 2.1 |
Anthropic | Claude 2.0 |
Anthropic | Claude 1.3 |
Anthropic | Claude Instant |
Cohere | Command |
Cohere | Command Light |
Cohere | Embed - English |
Cohere | Embed - Multilingual |
Meta | Llama-2-13b-chat |
Meta | Llama-2-70b-chat |
⚒️ 使用方法
使用此项目时,需要将供应商的 API 密钥保存为环境变量。如果是与 OpenAI 通信,需要设置 OPENAI_API_KEY
。详细的设置步骤可通过 此链接 查看,包括 Cohere、OpenAI 和 AWS Bedrock 的详细指引。
API 使用方法
下面是与 OpenAI /completion
端点进行通信的一个示例:
curl -X 'POST' \
'http://<host>/api/openai/completion' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"temperature": 0,
"prompt": "Tell me what is the meaning of life",
"max_tokens": 50,
"model": "text-davinci-003"
}'
如果使用 /chat_completion
端点,可以按用户与助手对话的形式构建请求:
curl -X 'POST' \
'http://<host>/api/openai/chat_completion' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"messages": [
{"role": "assistant", "content": "You are an intelligent assistant."},
{"role": "user", "content": "create a healthy recipe"}
],
"model": "gpt-3.5-turbo",
"temperature": 0
}'
Python 使用方法
可以通过以下 Python 代码与 OpenAI 交互:
from llm_gateway.providers.openai import OpenAIWrapper
wrapper = OpenAIWrapper()
wrapper.send_openai_request(
"Completion",
"create",
max_tokens=100,
prompt="What is the meaning of life?",
temperature=0,
model="text-davinci-003",
)
🚀 开发者快速入门
此项目使用 Poetry 和 Pyenv 来管理依赖和开发环境。关于这两个工具的安装可以参考 Poetry 官方文档 和 Pyenv 官方文档。对于前端部分,该项目使用 npm 和 yarn 来管理依赖。最新的 node 版本在 .node-version 文件中有明确声明。
后端依赖
如果使用 Docker,可以选择性地省略步骤 1-3。建议安装 pre-commit 钩子以加速开发周期。
- 安装 Poetry 和 Pyenv
- 安装指定的 Python 版本:
pyenv install 3.11.3
- 安装项目需求:
brew install gitleaks poetry install poetry run pre-commit install
- 执行
cp .envrc.example .envrc
并更新 API 密钥
🐳 Docker 开发流程(后端和前端)
使用 Docker 运行项目:
# 启动 docker-compose
make up
# 在浏览器中打开前端
make browse
# 打开 FastAPI Swagger API
make browse-api
# 删除 docker-compose 设置
make down
通过这些操作步骤,开发者可以轻松地在 Docker 中运行和测试 llm-gateway
项目,无论是后端还是前端的开发环境。