File size: 3,003 Bytes
358eb7e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
"""
配置管理模块 - GAIA Agent 配置
使用 .env 文件加载配置
"""

import os
from pathlib import Path
from dotenv import load_dotenv

# 加载 .env 文件(支持从父目录加载)
env_path = Path(__file__).parent / ".env"
if not env_path.exists():
    env_path = Path(__file__).parent.parent / ".env"
load_dotenv(env_path)

# ========================================
# LLM 配置
# ========================================
OPENAI_BASE_URL = os.getenv("OPENAI_BASE_URL", "https://api.openai.com/v1")
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "")
MODEL = os.getenv("MODEL", "gpt-4o-mini")
TEMPERATURE = float(os.getenv("TEMPERATURE", "0"))

# ========================================
# API 配置
# ========================================
SCORING_API_URL = os.getenv("SCORING_API_URL", "https://agents-course-unit4-scoring.hf.space")

# ========================================
# Agent 配置
# ========================================
MAX_ITERATIONS = int(os.getenv("MAX_ITERATIONS", "10"))

# ========================================
# 超时配置(秒)
# ========================================
TOOL_TIMEOUT = int(os.getenv("TOOL_TIMEOUT", "30"))
TOTAL_TIMEOUT = int(os.getenv("TOTAL_TIMEOUT", "300"))
LLM_TIMEOUT = int(os.getenv("LLM_TIMEOUT", "120"))  # LLM 调用超时

# ========================================
# 搜索配置
# ========================================
SEARCH_MAX_RESULTS = int(os.getenv("SEARCH_MAX_RESULTS", "5"))
TAVILY_API_KEY = os.getenv("TAVILY_API_KEY", "")
WIKIPEDIA_MAX_RESULTS = int(os.getenv("WIKIPEDIA_MAX_RESULTS", "2"))
ARXIV_MAX_RESULTS = int(os.getenv("ARXIV_MAX_RESULTS", "3"))
TAVILY_MAX_RESULTS = int(os.getenv("TAVILY_MAX_RESULTS", "3"))

# ========================================
# 文件处理配置
# ========================================
MAX_FILE_SIZE = int(os.getenv("MAX_FILE_SIZE", "10000"))

# ========================================
# RAG 配置
# ========================================
RAG_PERSIST_DIR = os.getenv("RAG_PERSIST_DIR", "./rag_index")
RAG_CSV_PATH = os.getenv("RAG_CSV_PATH", "data_clean.csv")
RAG_EMBEDDING_MODEL = os.getenv("RAG_EMBEDDING_MODEL", "sentence-transformers/all-MiniLM-L6-v2")
RAG_TOP_K = int(os.getenv("RAG_TOP_K", "3"))

# ========================================
# 速率限制配置
# ========================================
RATE_LIMIT_RETRY_MAX = int(os.getenv("RATE_LIMIT_RETRY_MAX", "5"))  # 429错误最大重试次数
RATE_LIMIT_RETRY_BASE_DELAY = float(os.getenv("RATE_LIMIT_RETRY_BASE_DELAY", "10"))  # 基础延迟秒数
BATCH_QUESTION_DELAY = float(os.getenv("BATCH_QUESTION_DELAY", "5"))  # 批量测试问题间延迟秒数

# ========================================
# 调试配置
# ========================================
DEBUG = os.getenv("DEBUG", "false").lower() == "true"

# ========================================
# 路径配置
# ========================================
BASE_DIR = Path(__file__).parent
TEMP_DIR = BASE_DIR / "temp"
TEMP_DIR.mkdir(exist_ok=True)