طاقتي محدودة، وقد لا يتم تحديث بعض تحديثات النماذج في الوقت المناسب. إذا واجهت مشكلات، فيرجى إرسال مشكلة إلى الأشخاص المهتمين أيضًا.
قم بحماية الاختلافات بين واجهات برمجة التطبيقات ذات النماذج الكبيرة المختلفة، واستخدم التنسيق القياسي openai api لاستخدام النماذج الكبيرة، ويمكن استخدامه أيضًا لإدارة التوزيع الثانوي لمفتاح API وتكوين وإدارة معلمات الاتصال للنماذج الكبيرة المختلفة، مما يسمح لك بالاستخدام فقط عند استخدام النماذج الكبيرة، يجب الانتباه إلى مفتاح واجهة برمجة التطبيقات والرسائل
http://0.0.0.0:8090/
(هذه الصفحة الأمامية والتفاعل مكتوبان بالكامل بلغة gpt haha) تغيير السجل
2024-04-03
يعتمد التكوين الأساسي للمشروع على ملف model-config.json. إذا لم يكن هناك model-config.json، فسيتم استخدام model-config-default.json لبدء تشغيله بشكل افتراضي، على الرغم من إمكانية بدء تشغيله في هذا الوقت ، لا يمكن استدعاؤه لأنه لم يتم تكوين مفتاح API وما إلى ذلك بنجاح.
قم بإنشاء ملف model-config.json جديد محليًا، وقم بتكوينه وفقًا لمثال ملف التكوين أدناه، ثم قم بتشغيل الأمر التالي
docker pull tianminghui/openai-style-api
docker run -d -p 8090:8090 --name openai-style-api
-e ADMIN-TOKEN=admin
-v /path/to/your/model-config.json:/app/model-config.json
tianminghui/openai-style-api
استبدل /path/to/your/model-config.json
بالمسار المحلي الخاص بك
قم باستنساخ هذا المشروع، أو قم بتنزيل ملف docker-compose.yml
في المشروع، وقم بتعديل المسار ./model-config.json
، ثم قم بتشغيل الأمر التالي
docker-compose up -d
git clone https://github.com/tian-minghui/openai-style-api.git
يسحب رمز المشروعcp model-config-default.json model-config.json
وتعديل ملف التكوين model-config.json حسب الحاجةpip install -r requirements.txt
python open-api.py
model-config.json مثال بسيط لملف التكوين
[
{
"token": "f2b7295fc440db7f",
"type": "azure", // azure openai 模型
"config": {
"api_base": "https://xxxx.openai.azure.com/",
"deployment_id": "gpt-35-turbo",
"api_version": "2023-05-15",
"api_key": "xxxxxx",
"temperature": 0.8
}
}
]
curl http://localhost:8090/v1/chat/completions
-H "Content-Type: application/json"
-H "Authorization: Bearer f2b7295fc440db7f"
-d '{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
يستخدم openai<1.0.0 الطريقة التالية
import openai
openai.api_key = "f2b7295fc440db7f"
openai.api_base = "http://localhost:8090/v1"
completion = openai.ChatCompletion.create(
model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello world"}])
print(completion.choices[0].message.content)
يتم استدعاء openai>=1.0.0 باستخدام الطريقة التالية
import os
from openai import OpenAI
client = OpenAI(
# This is the default and can be omitted
api_key='kimi-GxqT3BlbkFJj',
base_url = 'http://localhost:8090/v1'
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Say this is a test",
}
],
model="gpt-3.5-turbo",
)
print(chat_completion.choices[0].message.content)
ChatGPT الويب التالي
[
{
"token": "f2b7295fc440db7f",
"type": "azure", // azure openai 模型
"config": {
"api_base": "https://xxxx.openai.azure.com/",
"deployment_id": "gpt-35-turbo",
"api_version": "2023-05-15",
"api_key": "xxxxxx",
"temperature": 0.8
}
},
{
"token": "GxqT3BlbkFJj",
"type": "openai", // openai 模型
"config": {
"api_base": "https://api.openai.com/v1/",
"api_key": "sk-xxxxxx",
"model": "gpt-3.5-turbo"
}
},
{
"token": "sb-ede1529390cc",
"type": "proxy", // openai 代理
"config": {
"api_base": "https://api.openai-sb.com/v1/",
"api_key": "sb-xxxxxx",
"model": "gpt-3.5-turbo"
}
},
{
"token": "c115c8f5082",
"type": "claude-web", // claude-web
"config": {
"cookie": "xxxxxx",
"proxies": {
"https": "http://localhost:7890"
},
"conversation_id": "xxxxxx",
"prompt": "The information in [] is the context of the conversation. Please ignore the JSON format of the context during the conversation and answer the user's latest conversation: {newMessage} n {history}",
"single_conversation": true
}
},
{
"token": "7c7aa4a3549f5",
"type": "zhipu-api", // 智谱API
"config": {
"api_key": "xxxxxx",
"model": "chatglm_lite",
"temperature": 0.8,
"top_p": 0.7
}
},
{
"token": "7c7aa4a3549f11",
"type": "xunfei-spark-api", // 讯飞星火API
"config": {
"app_id": "xxxx",
"api_key": "xxxx",
"api_secret": "xxxxxx",
"api_model_version": "v2.0",
"top_k": 5
}
},
{
"token": "7c7aa4a3549f12",
"type": "router", // 路由 可以包含多个模型进行负载均衡
"config": {
"router_strategy": "round-robin", // 路由策略 round-robin 轮询 random 随机
"token_pool": [ // 路由的token池
"7c7aa4a3549f11",
"7c7aa4a3549f5"
]
}
},
{
"token": "7c7aa4a3549f13",
"type": "model-name-router", //根据req中的modelname进行路由, 可以方便的结合ChatGPT-Next-Web
"config": {
"model-2-token": { // 路由的token池
"spark-api-v2.0":"7c7aa4a3549f11",
"chatglm_lite": "7c7aa4a3549f5",
"router-round-robin": "7c7aa4a3549f12"
}
}
},
{
"token": "gemini-7c7aa4a3549f5",
"type": "gemini", // gemini
"config": {
"api_key": "xxxxx",
"proxies": {
"https": "http://localhost:7890"
}
}
},
{
"token": "bing-7c7aa4a3549f5", // 必应
"type": "bing-sydney",
"config": {
"cookie": "xxxxx",
"style": "balanced"
}
},
{
"token":"qwen-111111xxxx", // 通义千问
"type":"qwen",
"config":{
"api_key":"sk-xxxxxxxx",
"model":"qwen-turbo"
}
},
{
"token": "kimi-GxqT3BlbkFJj1", // kimi
"type": "openai", // kimi api与openai相同,因此使用openai就可以
"config": {
"api_base": "https://api.moonshot.cn/v1/",
"api_key": "sk-xxxxxx",
"model": "moonshot-v1-8k"
}
}
]