Skip to content

Latest commit

 

History

History
274 lines (172 loc) · 10.2 KB

README.md

File metadata and controls

274 lines (172 loc) · 10.2 KB

API for Open LLMs

llm.png

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

📢 新闻

  • 【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 启动模型的环境配置和启动命令
💻调用方式启动模型之后的调用方式
❓常见问题一些常见问题的回复

🐼 支持模型

语言模型

模型模型参数大小
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

🤖 使用方式

环境变量

  • 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

img.png

👉 Chat Completions
fromopenaiimportOpenAIclient=OpenAI( api_key="EMPTY", base_url="http://192.168.20.59:7891/v1/", ) # Chat completion APIchat_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
fromopenaiimportOpenAIclient=OpenAI( api_key="EMPTY", base_url="http://192.168.20.59:7891/v1/", ) # Chat completion APIcompletion=client.completions.create( model="gpt-3.5-turbo", prompt="你好", ) print(completion) # 你好👋!我是人工智能助手 ChatGLM-6B,很高兴见到你,欢迎问我任何问题。
👉 Embeddings
fromopenaiimportOpenAIclient=OpenAI( api_key="EMPTY", base_url="http://192.168.20.59:7891/v1/", ) # compute the embedding of the textembedding=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

close