-
【2023.11.24】 支持 llama-cpp-pythton 推理,使用文档
-
【2023.11.03】 支持
chatglm3
和qwen
模型的function call
调用功能,同时支持流式和非流式模式, 工具使用示例, 网页demo
已经集成到 streamlit-demo -
【2023.09.27】 添加 Qwen-14B-Chat-Int4 模型支持,启动方式链接
-
【2023.08.28】 添加
transformers.TextIteratorStreamer
流式输出支持,只需将环境变量修改为USE_STREAMER_V2=true
-
【2023.08.26】 添加 code-llama 模型支持,启动方式链接,使用示例链接
-
【2023.08.22】 添加 xverse-13b-chat 模型支持,启动方式链接
-
【2023.08.03】 添加 qwen-7b-chat 模型支持,启动方式链接
更多新闻和历史请转至 此处
此项目主要内容
此项目为开源大模型的推理实现统一的后端接口,与 OpenAI
的响应保持一致,具有以下特性:
-
✨ 以
OpenAI ChatGPT API
的方式调用各类开源大模型 -
🖨️ 支持流式响应,实现打印机效果
-
📖 实现文本嵌入模型,为文档知识问答提供支持
-
🦜️ 支持大规模语言模型开发工具
langchain
的各类功能 -
🙌 只需要简单的修改环境变量即可将开源模型作为
chatgpt
的替代模型,为各类应用提供后端支持 -
🚀 支持加载经过自行训练过的
lora
模型 -
⚡ 支持 vLLM 推理加速和处理并发请求
章节 | 描述 |
---|---|
💁🏻♂支持模型 | 此项目支持的开源模型以及简要信息 |
🚄启动方式 | 启动模型的环境配置和启动命令 |
⚡vLLM启动方式 | 使用 vLLM 启动模型的环境配置和启动命令 |
🦙llama-cpp启动方式 | 使用 llama-cpp 启动模型的环境配置和启动命令 |
💻调用方式 | 启动模型之后的调用方式 |
❓常见问题 | 一些常见问题的回复 |
📚相关资源 | 关于开源模型训练和推理的相关资源 |
语言模型
嵌入模型
模型 | 维度 | 权重链接 |
---|---|---|
bge-large-zh | 1024 | bge-large-zh |
m3e-large | 1024 | moka-ai/m3e-large |
text2vec-large-chinese | 1024 | text2vec-large-chinese |
-
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