- 
【2024.06.13】 支持 MiniCPM-Llama3-V-2_5模型,修改环境变量MODEL_NAME=minicpm-vPROMPT_NAME=minicpm-vDTYPE=bfloat16
- 
【2024.06.12】 支持 GLM-4V模型,修改环境变量MODEL_NAME=glm-4vPROMPT_NAME=glm-4vDTYPE=bfloat16, 测试示例见 glm4v
- 
【2024.06.08】 已支持 QWEN2模型,修改环境变量MODEL_NAME=qwen2PROMPT_NAME=qwen2
- 
【2024.06.05】 支持 GLM4模型,修改环境变量MODEL_NAME=chatglm4PROMPT_NAME=chatglm4
- 
【2024.04.18】 支持 Code Qwen模型,sql问答demo
- 
【2024.04.16】 支持 Rerank重排序模型,使用方式
- 
【2024.02.26】 QWEN1.5模型需要修改环境变量MODEL_NAME=qwen2PROMPT_NAME=qwen2
更多新闻和历史请转至 此处
此项目主要内容
此项目为开源大模型的推理实现统一的后端接口,与 OpenAI 的响应保持一致,具有以下特性:
- 
✨ 以 OpenAI ChatGPT API的方式调用各类开源大模型
- 
🖨️ 支持流式响应,实现打印机效果 
- 
📖 实现文本嵌入模型,为文档知识问答提供支持 
- 
🦜️ 支持大规模语言模型开发工具 langchain的各类功能
- 
🙌 只需要简单的修改环境变量即可将开源模型作为 chatgpt的替代模型,为各类应用提供后端支持
- 
🚀 支持加载经过自行训练过的 lora模型
- 
⚡ 支持 vLLM 推理加速和处理并发请求 
| 章节 | 描述 | 
|---|---|
| 💁🏻♂支持模型 | 此项目支持的开源模型以及简要信息 | 
| 🚄启动方式 | 启动模型的环境配置和启动命令 | 
| ⚡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 | 
- 
OPENAI_API_KEY: 此处随意填一个字符串即可
- 
OPENAI_API_BASE: 后端启动的接口地址,如:http://192.168.0.xx:80/v1
cd streamlit-demo
pip install -r requirements.txt
streamlit run streamlit_app.py👉 Chat Completions
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
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
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# 在docker-compose.yml中的api和worker服务中添加以下环境变量
OPENAI_API_BASE: http://192.168.0.xx:80/v1
DISABLE_PROVIDER_CONFIG_VALIDATION: 'true'此项目为 Apache 2.0 许可证授权,有关详细信息,请参阅 LICENSE 文件。
- 
BLOOM: A 176B-Parameter Open-Access Multilingual Language Model 
- 
Efficient and Effective Text Encoding for Chinese LLaMA and Alpaca 
- 
MOSS: An open-sourced plugin-augmented conversational language model 
- 
FastChat: An open platform for training, serving, and evaluating large language model based chatbots 
- 
LangChain: Building applications with LLMs through composability 



