Home

Awesome

API for Open LLMs

<p align="center"> <a href="https://github.com/xusenlinzy/api-for-open-llm"><img src="https://img.shields.io/github/license/xusenlinzy/api-for-open-llm"></a> <a href=""><img src="https://img.shields.io/badge/python-3.8+-aff.svg"></a> <a href=""><img src="https://img.shields.io/badge/pytorch-%3E=1.14-red?logo=pytorch"></a> <a href="https://github.com/xusenlinzy/api-for-open-llm"><img src="https://img.shields.io/github/last-commit/xusenlinzy/api-for-open-llm"></a> <a href="https://github.com/xusenlinzy/api-for-open-llm"><img src="https://img.shields.io/github/issues/xusenlinzy/api-for-open-llm?color=9cc"></a> <a href="https://github.com/xusenlinzy/api-for-open-llm"><img src="https://img.shields.io/github/stars/xusenlinzy/api-for-open-llm?color=ccf"></a> <a href="https://github.com/xusenlinzy/api-for-open-llm"><img src="https://img.shields.io/badge/langurage-py-brightgreen?style=flat&color=blue"></a> </p>

llm.png

<div align="center"> 图片来自于论文: [A Survey of Large Language Models](https://arxiv.org/pdf/2303.18223.pdf) </div>

📢 新闻

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


此项目主要内容

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

内容导引

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

🐼 支持模型

语言模型

模型模型参数大小
Baichuan7B/13B
ChatGLM6B
DeepSeek7B/16B/67B/236B
InternLM7B/20B
LLaMA7B/13B/33B/65B
LLaMA-27B/13B/70B
LLaMA-38B/70B
Qwen1.8B/7B/14B/72B
Qwen1.50.5B/1.8B/4B/7B/14B/32B/72B/110B
Qwen20.5B/1.5B/7B/57B/72B
Yi (1/1.5)6B/9B/34B

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

嵌入模型

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

🤖 使用方式

环境变量

聊天界面

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

img.png

openai v1.1.0

<details> <summary>👉 Chat Completions</summary>
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)
</details> <details> <summary>👉 Completions</summary>
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,很高兴见到你,欢迎问我任何问题。
</details> <details> <summary>👉 Embeddings</summary>
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)

</details>

可接入的项目

通过修改 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