xusenlinzy / api-for-open-llm

Openai style api for open large language models, using LLMs just as chatgpt! Support for LLaMA, LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, Xverse, SqlCoder, CodeLLaMA, ChatGLM, ChatGLM2, ChatGLM3 etc. 开源大模型的统一后端接口
Apache License 2.0
2.16k stars 252 forks source link
baichuan chatglm code-llama docker internlm langchain llama llama2 llms nlp openai qwen sqlcoder xverse

API for Open LLMs

llm.png

图片来自于论文: [A Survey of Large Language Models](https://arxiv.org/pdf/2303.18223.pdf)

📢 新闻

更多新闻和历史请转至 此处


此项目主要内容

此项目为开源大模型的推理实现统一的后端接口,与 OpenAI 的响应保持一致,具有以下特性:

内容导引

章节 描述
💁🏻‍♂支持模型 此项目支持的开源模型以及简要信息
🚄启动方式 启动模型的环境配置和启动命令
⚡vLLM启动方式 使用 vLLM 启动模型的环境配置和启动命令
💻调用方式 启动模型之后的调用方式
❓常见问题 一些常见问题的回复

🐼 支持模型

语言模型

模型 模型参数大小
Baichuan 7B/13B
ChatGLM 6B
DeepSeek 7B/16B/67B/236B
InternLM 7B/20B
LLaMA 7B/13B/33B/65B
LLaMA-2 7B/13B/70B
LLaMA-3 8B/70B
Qwen 1.8B/7B/14B/72B
Qwen1.5 0.5B/1.8B/4B/7B/14B/32B/72B/110B
Qwen2 0.5B/1.5B/7B/57B/72B
Yi (1/1.5) 6B/9B/34B

启动方式详见 vLLM启动方式transformers启动方式

嵌入模型

模型 维度 权重链接
bge-large-zh 1024 bge-large-zh
m3e-large 1024 moka-ai/m3e-large
text2vec-large-chinese 1024 text2vec-large-chinese
bce-embedding-base_v1(推荐) 768 bce-embedding-base_v1

🤖 使用方式

环境变量

聊天界面

cd streamlit-demo
pip install -r requirements.txt
streamlit run streamlit_app.py

img.png

openai v1.1.0

👉 Chat Completions ```python from openai import OpenAI client = OpenAI( api_key="EMPTY", base_url="http://192.168.20.59:7891/v1/", ) # Chat completion API chat_completion = client.chat.completions.create( messages=[ { "role": "user", "content": "你好", } ], model="gpt-3.5-turbo", ) print(chat_completion) # 你好👋!我是人工智能助手 ChatGLM3-6B,很高兴见到你,欢迎问我任何问题。 # stream = client.chat.completions.create( # messages=[ # { # "role": "user", # "content": "感冒了怎么办", # } # ], # model="gpt-3.5-turbo", # stream=True, # ) # for part in stream: # print(part.choices[0].delta.content or "", end="", flush=True) ```
👉 Completions ```python from openai import OpenAI client = OpenAI( api_key="EMPTY", base_url="http://192.168.20.59:7891/v1/", ) # Chat completion API completion = client.completions.create( model="gpt-3.5-turbo", prompt="你好", ) print(completion) # 你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。 ```
👉 Embeddings ```python from openai import OpenAI client = OpenAI( api_key="EMPTY", base_url="http://192.168.20.59:7891/v1/", ) # compute the embedding of the text embedding = client.embeddings.create( input="你好", model="text-embedding-ada-002" ) print(embedding) ```

可接入的项目

通过修改 OPENAI_API_BASE 环境变量,大部分的 chatgpt 应用和前后端项目都可以无缝衔接!

docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY="sk-xxxx" \
   -e BASE_URL="http://192.168.0.xx:80" \
   yidadaa/chatgpt-next-web

web

# 在docker-compose.yml中的api和worker服务中添加以下环境变量
OPENAI_API_BASE: http://192.168.0.xx:80/v1
DISABLE_PROVIDER_CONFIG_VALIDATION: 'true'

dify

📜 License

此项目为 Apache 2.0 许可证授权,有关详细信息,请参阅 LICENSE 文件。

🚧 References

Star History

Star History Chart