Add an .env.example file and provide more detailed instructions.

This commit is contained in:
jinhui.li
2025-03-01 23:12:31 +08:00
parent 492115fdf7
commit 5ef624a1ac
6 changed files with 57 additions and 4 deletions

31
.env.example Normal file
View File

@@ -0,0 +1,31 @@
## If you don't want to use multi-model routing
## set ENABLE_ROUTER to false, and define the following variables
## the model needs to support function calling
ENABLE_ROUTER=false
OPENAI_API_KEY=""
OPENAI_BASE_URL=""
OPENAI_MODEL=""
## If you want to use multi-model routing, set ENABLE_ROUTER to true
# ENABLE_ROUTER=true
## Define the model for the tool agent, the model needs to support function calling
# TOOL_AGENT_API_KEY=""
# TOOL_AGENT_BASE_URL=""
# TOOL_AGENT_MODEL=""
## Define the model for the coder agent
# CODER_AGENT_API_KEY=""
# CODER_AGENT_BASE_URL=""
# CODER_AGENT_MODEL=""
## Define the model for the thinker agent, using a model that supports reasoning will yield better results
# THINK_AGENT_API_KEY=""
# THINK_AGENT_BASE_URL=""
# THINK_AGENT_MODEL=""
## Define the model for the router agent, this model is the entry point for each request, it will consume a lot of tokens, please choose a small model to reduce costs
# ROUTER_AGENT_API_KEY=""
# ROUTER_AGENT_BASE_URL=""
# ROUTER_AGENT_MODEL=""

View File

@@ -8,6 +8,8 @@
## Implemented
- [x] Mormal Mode and Router Mode
- [x] Using the qwen2.5-coder-3b-instruct model as the routing dispatcher (since its currently free on Alibaba Clouds official website)
- [x] Using the qwen-max-0125 model as the tool invoker
@@ -42,6 +44,7 @@ npm i
```shell
# Alternatively, you can create an .env file in the repo directory
# You can refer to the .env.example file to create the .env file
## disable router
ENABLE_ROUTER=false
@@ -79,3 +82,22 @@ export ANTHROPIC_BASE_URL="http://127.0.0.1:3456"
export API_TIMEOUT_MS=600000
claude
```
## Normal Mode
The initial version uses a single model to accomplish all tasks. This model needs to support function calling and must allow for a sufficiently large tool description length, ideally greater than 1754. If the model used in this mode does not support KV Cache, it will consume a significant number of tokens.
![normal mode](https://github.com/musistudio/claude-code-reverse/blob/main/screenshoots/normal.png)
## Router Mode
Using multiple models to handle different tasks, this mode requires setting ENABLE_ROUTER to true and configuring four models: ROUTER_AGENT_MODEL, TOOL_AGENT_MODEL, CODER_AGENT_MODEL, and THINK_AGENT_MODEL.
ROUTER_AGENT_MODEL does not require high intelligence and is only responsible for request routing. A small model is sufficient for this task (testing has shown that the qwen-coder-3b model performs well).
TOOL_AGENT_MODEL must support function calling and allow for a sufficiently large tool description length, ideally greater than 1754. If the model used in this mode does not support KV Cache, it will consume a significant number of tokens.
CODER_AGENT_MODEL and THINK_AGENT_MODEL can use the DeepSeek series of models.
The purpose of router mode is to separate tool invocation from coding tasks, enabling the use of inference models like r1, which do not support function calling.
![router mode](https://github.com/musistudio/claude-code-reverse/blob/main/screenshoots/router.png)

View File

@@ -321,7 +321,7 @@ async function initializeClaudeConfig() {
async function run() {
await initializeClaudeConfig();
app.listen(port, () => {
app.listen(port, "127.0.0.1", () => {
console.log(`Example app listening on port ${port}`);
});
}

View File

@@ -1,11 +1,11 @@
{
"name": "claude-code-reverse",
"name": "claude-code-router",
"version": "1.0.0",
"description": "You can switch the API endpoint by modifying the ANTHROPIC_BASE_URL environment variable.",
"main": "server.js",
"main": "index.mjs",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node server.js"
"start": "node index.mjs"
},
"keywords": [],
"author": "",

BIN
screenshoots/normal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
screenshoots/router.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB