44from qwen_agent .agents import Assistant
55from qwen_agent .llm import get_chat_model
66
7- from main .config import (
8- LLM_PROVIDER ,
9- OLLAMA_MODEL_NAME , OLLAMA_BASE_URL ,
10- NOVITA_MODEL_NAME , NOVITA_API_KEY
11- )
7+ from main .config import (OPENAI_API_BASE_URL , OPENAI_API_KEY ,
8+ OPENAI_MODEL_NAME )
129
1310logger = logging .getLogger (__name__ )
1411
@@ -18,42 +15,20 @@ def get_qwen_assistant(system_message: str = DEFAULT_SYSTEM_PROMPT, function_lis
1815 """
1916 Initializes and returns a Qwen Assistant agent configured for the current environment.
2017 """
21- llm_cfg = {}
22- if LLM_PROVIDER == "OLLAMA" :
23- # Ollama configuration for Qwen Agent (expects OpenAI-compatible v1 endpoint)
24- # Ensure OLLAMA_BASE_URL is like "http://localhost:11434"
25- ollama_v1_url = f"{ OLLAMA_BASE_URL .rstrip ('/' )} /v1"
26- llm_cfg = {
27- 'model' : OLLAMA_MODEL_NAME , # e.g., "llama3.2:3b"
28- 'model_server' : ollama_v1_url ,
29- 'api_key' : 'ollama' , # Placeholder, Ollama doesn't typically require a key via API
30- }
31- logger .info (f"Qwen Agent configured for LLM_PROVIDER='OLLAMA': model={ OLLAMA_MODEL_NAME } , server={ ollama_v1_url } " )
32- elif LLM_PROVIDER == "NOVITA" :
33- # Novita configuration for Qwen Agent
34- novita_v1_url = "https://api.novita.ai/v3/openai"
35- llm_cfg = {
36- 'model' : NOVITA_MODEL_NAME ,
37- 'model_server' : novita_v1_url ,
38- 'api_key' : NOVITA_API_KEY ,
39- }
40- # For Novita, some models might need specific routing prefixes if not handled by model_server directly
41- # e.g. 'openrouter/meta-llama/llama-3.1-8b-instruct'
42- # However, Qwen's OpenAI client usually takes the model name as passed.
43- # The 'model_server' determines the endpoint.
44- logger .info (f"Qwen Agent configured for LLM_PROVIDER='NOVITA': model={ NOVITA_MODEL_NAME } , server={ novita_v1_url } " )
45- else :
46- logger .error (f"Invalid LLM_PROVIDER: '{ LLM_PROVIDER } '. Must be 'OLLAMA' or 'NOVITA'." )
47- raise ValueError (f"Invalid LLM_PROVIDER configured: { LLM_PROVIDER } " )
48-
49- if not llm_cfg .get ('model' ):
18+ # Qwen-agent's `Assistant` uses an OpenAI-compatible interface.
19+ # We map our standard environment variables to its expected config format.
20+ # Note: `model_server` for qwen-agent is the `base_url`.
21+ llm_cfg = {
22+ 'model' : OPENAI_MODEL_NAME ,
23+ 'model_server' : f"{ OPENAI_API_BASE_URL .rstrip ('/' )} /v1" ,
24+ 'api_key' : OPENAI_API_KEY ,
25+ }
26+ logger .info (f"Qwen Agent configured with model='{ OPENAI_MODEL_NAME } ' and server='{ llm_cfg ['model_server' ]} '" )
27+ if not OPENAI_MODEL_NAME :
5028 logger .error ("LLM model name is not configured. Qwen Agent cannot be initialized." )
5129 raise ValueError ("LLM model configuration error." )
5230
5331 try :
54- # Initialize the LLM part of the agent
55- # llm_instance = get_chat_model(llm_cfg) # Can also pass llm_cfg directly to Assistant
56-
5732 # Initialize the Assistant agent
5833 bot = Assistant (
5934 llm = llm_cfg ,
0 commit comments