diff --git a/README.md b/README.md index bee251f2a06bc1d39d1988332bbca5ab0249f2a3..9b5c9c62866dc163ea94f9e4f2eccd92f54cc79d 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,7 @@ AI-generated Graphic Models. * Support plug-in robot * Support SolidUI-Model * Support Large Language Model +* Support [OrcaRouter](https://www.orcarouter.ai) model * Containerized deployment # QuickStart diff --git a/README_CN.md b/README_CN.md index f724f6752be1746f4042f17051dd899ba36a732d..7f0b581e92b047e89590cefdb8cbfd82e39bf34f 100644 --- a/README_CN.md +++ b/README_CN.md @@ -60,6 +60,7 @@ AI生成图形模型 * 支持插件机器人 * 支持SolidUI模型 * 支持大模型接入 +* 支持[OrcaRouter](https://www.orcarouter.ai) 模型接入 * 容器化部署 # 快速开始 diff --git a/solidui/views/utils.py b/solidui/views/utils.py index 213dbbcb5752950d3177ba92654480a9f2f3c052..0b9b2bdad31aa1cee8ca8fdf54f26d136f949f30 100644 --- a/solidui/views/utils.py +++ b/solidui/views/utils.py @@ -41,7 +41,8 @@ async def send_request_and_process_response(url, headers, data, type_name, proce return process_response_func(response.json()["response"]), 200 elif type_name == "gpt": return process_response_func(response.json()["choices"][0]["message"]["content"]), 200 - + elif type_name == "orcarouter": + return process_response_func(response.json()["choices"][0]["message"]["content"]), 200 async def get_code(gpt_prompt, user_prompt, type_name, model_code, user_key="", base_url="default_url", @@ -53,6 +54,8 @@ async def get_code(gpt_prompt, user_prompt, type_name, model_code, user_key="", url, headers, data = configure_for_glm(base_url, model, user_key, new_prompt) elif type_name == "gpt": url, headers, data = configure_for_gpt(base_url, model, user_key, new_prompt) + elif type_name == "orcarouter": + url, headers, data = configure_for_orcarouter(base_url, model, user_key, new_prompt) else: raise ValueError("Unsupported model type") @@ -115,3 +118,26 @@ def configure_for_gpt(base_url, model, user_key, prompt): url = f"{base_url}/v1/chat/completions" return url, headers, data + + +def configure_for_orcarouter(base_url, model, user_key, prompt): + headers = { + "Content-Type": "application/json", + "Authorization": f"Bearer {user_key}", + } + + data = { + "model": model, + "messages": [ + { + "role": "user", + "content": prompt, + }, + ], + "temperature": 0.7, + } + + # OrcaRouter is an OpenAI-compatible routing gateway. + url = f"{base_url or 'https://api.orcarouter.ai'}/v1/chat/completions" + + return url, headers, data