Skip to content

Latest commit

 

History

History
118 lines (87 loc) · 3.84 KB

README.md

File metadata and controls

118 lines (87 loc) · 3.84 KB

Deploy on Vercel

LLM API 反向代理

Issues GitHub pull requests

本项目旨在提供一个反向代理服务,解决在部分国家或地区无法直接访问 Google, Groq, Cerebras(Amazon cloudfront)等平台 API 的问题。

功能

通过 Vercel 边缘网络,反向代理 OpenAI、Groq、Google、Cerebras 等平台的 API 请求。

  • 支持供应商:Groq、Google、OpenAI、Cerebras、NVIDIA、Mistral、Sambanova
  • 支持流式输出
  • 兼容 OpenAI API 规范

注:大陆不可直接访问 vercel.app 域名。如想直接访问,可参考之前作者的另一个项目llmproxy,通过 cloudflare worker 部署 LLM API 反向代理。

使用

部署到 Vercel 后,可使用自己的 API 地址为:https://your-project-name.vercel.app/。 测试 API 地址:

  • https://llmproxy-vercel.vercel.app/ : 即 vercel 提供的 API 地址,局域网内不能直接访问,需科学上网。
  • https://llm.cufo.cc/ : 作者通过 cloudflare + 美区 VPS 搭建的反向代理,大陆等地区可直接访问,调用路径为 local -> CF(HK) -> VPS(US) -> OpenAI。

两个地址使用时均不需要携带 /v1 后缀,即 base_url="https://llm.cufo.cc/openai" 或者 chat_url="https://llm.cufo.cc/openai/chat/completions"

示例 1: OpenAI

from openai import OpenAI

client = OpenAI(
    api_key="sk-proj-...",
    base_url="https://llmproxy-vercel.vercel.app/openai", # 没有 /v1 后缀
)

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[{"role": "user", "content": "Hello world!"}],
)

print(response.choices[0].message.content)

示例 2: Google Gemini

from openai import OpenAI

client = OpenAI(
    api_key="...",
    base_url="https://llmproxy-vercel.vercel.app/gemini",
)

response = client.chat.completions.create(
    model="gemini-1.5-flash",
    messages=[{"role": "user", "content": "Hello world!"}],
)

print(response.choices[0].message.content)

示例 3: Cerebras

curl --location 'https://llmproxy-vercel.vercel.app/cerebras/chat/completions' \
  --header 'Content-Type: application/json' \
  --header "Authorization: Bearer ${CEREBRAS_API_KEY}" \
  --data '{
    "model": "llama3.1-8b",
    "stream": false,
    "messages": [{"content": "why is fast inference important?", "role": "user"}],
    "temperature": 0,
    "max_tokens": 1024,
    "seed": 0,
    "top_p": 1
}'

Vercel 一键部署

Deploy with Vercel

本地开发测试

pip3 install -r requirements.txt
pip3 install uvicorn
uvicorn main:app --host 0.0.0.0 --port 3000 --reload

License

Copyright © 2024 ultrasev.
This project is MIT licensed.

Support me

"Buy Me A Coffee"

Contacts

  • Twitter Follow
  • YouTube Channel Subscribers