Add an .env.example file and provide more detailed instructions.
This commit is contained in:
31
.env.example
Normal file
31
.env.example
Normal 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=""
|
||||
22
README.md
22
README.md
@@ -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 it’s currently free on Alibaba Cloud’s 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.
|
||||
|
||||

|
||||
|
||||
## 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.
|
||||
|
||||

|
||||
|
||||
@@ -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}`);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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
BIN
screenshoots/normal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
BIN
screenshoots/router.png
Normal file
BIN
screenshoots/router.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
Reference in New Issue
Block a user