Automatically determine which engine to use.
Browse files
README.md
CHANGED
|
@@ -33,7 +33,7 @@ providers:
|
|
| 33 |
model:
|
| 34 |
- gpt-4o # 可以使用的模型名称,必填
|
| 35 |
- claude-3-5-sonnet-20240620: claude-3-5-sonnet # 重命名模型,claude-3-5-sonnet-20240620 是服务商的模型名称,claude-3-5-sonnet 是重命名后的名字,可以使用简洁的名字代替原来复杂的名称,选填
|
| 36 |
-
tools: true #
|
| 37 |
url: https://openai.com/ # 服务商的网址,选填
|
| 38 |
|
| 39 |
- provider: anthropic
|
|
@@ -51,6 +51,14 @@ providers:
|
|
| 51 |
- gemini-1.5-flash
|
| 52 |
tools: false
|
| 53 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
api_keys:
|
| 55 |
- api: sk-KjjI60Yf0JFWtfgRmXqFWyGtWUd9GZnmi3KlvowmRWpWpQRo # API Key,用户使用本服务需要 API key,必填
|
| 56 |
model: # 该 API Key 可以使用的模型,必填
|
|
|
|
| 33 |
model:
|
| 34 |
- gpt-4o # 可以使用的模型名称,必填
|
| 35 |
- claude-3-5-sonnet-20240620: claude-3-5-sonnet # 重命名模型,claude-3-5-sonnet-20240620 是服务商的模型名称,claude-3-5-sonnet 是重命名后的名字,可以使用简洁的名字代替原来复杂的名称,选填
|
| 36 |
+
tools: true # 是否支持工具,如生成代码、生成文档等,默认是 true,选填
|
| 37 |
url: https://openai.com/ # 服务商的网址,选填
|
| 38 |
|
| 39 |
- provider: anthropic
|
|
|
|
| 51 |
- gemini-1.5-flash
|
| 52 |
tools: false
|
| 53 |
|
| 54 |
+
- provider: other-provider
|
| 55 |
+
base_url: https://api.xxx.com/v1/messages
|
| 56 |
+
api: sk-bNnAOJyA-xQw_twAA
|
| 57 |
+
model:
|
| 58 |
+
- causallm-35b-beta2ep-q6k: causallm-35b
|
| 59 |
+
tools: false
|
| 60 |
+
engine: openrouter # 强制使用某个消息格式,目前支持 gpt,claude,gemini,openrouter 原生格式,选填
|
| 61 |
+
|
| 62 |
api_keys:
|
| 63 |
- api: sk-KjjI60Yf0JFWtfgRmXqFWyGtWUd9GZnmi3KlvowmRWpWpQRo # API Key,用户使用本服务需要 API key,必填
|
| 64 |
model: # 该 API Key 可以使用的模型,必填
|
main.py
CHANGED
|
@@ -91,6 +91,14 @@ async def process_request(request: RequestModel, provider: Dict):
|
|
| 91 |
engine = "openrouter"
|
| 92 |
else:
|
| 93 |
engine = "gpt"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
print("engine", engine)
|
| 95 |
|
| 96 |
url, headers, payload = await get_payload(request, engine, provider)
|
|
|
|
| 91 |
engine = "openrouter"
|
| 92 |
else:
|
| 93 |
engine = "gpt"
|
| 94 |
+
|
| 95 |
+
if "claude" not in provider['model'][request.model] \
|
| 96 |
+
and "gpt" not in provider['model'][request.model] \
|
| 97 |
+
and "gemini" not in provider['model'][request.model]:
|
| 98 |
+
engine = "openrouter"
|
| 99 |
+
|
| 100 |
+
if provider.get("engine"):
|
| 101 |
+
engine = provider["engine"]
|
| 102 |
print("engine", engine)
|
| 103 |
|
| 104 |
url, headers, payload = await get_payload(request, engine, provider)
|