Zhang Yuxiang

fix: 搜索工具类型的条件判断,确保正确使用BochaAPI和AnspireAPI密钥

... ... @@ -101,10 +101,6 @@ def main():
st.error("请在您的环境变量中设置MEDIA_ENGINE_API_KEY")
logger.error("请在您的环境变量中设置MEDIA_ENGINE_API_KEY")
return
if (not settings.BOCHA_WEB_SEARCH_API_KEY) and (not settings.ANSPIRE_API_KEY):
st.error("请在您的环境变量中设置BOCHA_WEB_SEARCH_API_KEY或ANSPIRE_API_KEY")
logger.error("请在您的环境变量中设置BOCHA_WEB_SEARCH_API_KEY或ANSPIRE_API_KEY")
return
# 自动使用配置文件中的API密钥
engine_key = settings.MEDIA_ENGINE_API_KEY
... ... @@ -112,28 +108,42 @@ def main():
ansire_key = settings.ANSPIRE_API_KEY
# 构建 Settings(pydantic_settings风格,优先大写环境变量)
if bocha_key:
if settings.SEARCH_TOOL_TYPE == "BochaAPI":
if not bocha_key:
st.error("请在您的环境变量中设置BOCHA_WEB_SEARCH_API_KEY")
logger.error("请在您的环境变量中设置BOCHA_WEB_SEARCH_API_KEY")
return
logger.info("使用Bocha搜索API密钥")
config = Settings(
MEDIA_ENGINE_API_KEY=engine_key,
MEDIA_ENGINE_BASE_URL=settings.MEDIA_ENGINE_BASE_URL,
MEDIA_ENGINE_MODEL_NAME=model_name,
SEARCH_TOOL_TYPE="BochaAPI",
BOCHA_WEB_SEARCH_API_KEY=bocha_key,
MAX_REFLECTIONS=max_reflections,
SEARCH_CONTENT_MAX_LENGTH=max_content_length,
OUTPUT_DIR="media_engine_streamlit_reports",
)
elif ansire_key:
elif settings.SEARCH_TOOL_TYPE == "AnspireAPI":
if not ansire_key:
st.error("请在您的环境变量中设置ANSPIRE_API_KEY")
logger.error("请在您的环境变量中设置ANSPIRE_API_KEY")
return
logger.info("使用Anspire搜索API密钥")
config = Settings(
MEDIA_ENGINE_API_KEY=engine_key,
MEDIA_ENGINE_BASE_URL=settings.MEDIA_ENGINE_BASE_URL,
MEDIA_ENGINE_MODEL_NAME=model_name,
SEARCH_TOOL_TYPE="AnspireAPI",
ANSPIRE_API_KEY=ansire_key,
MAX_REFLECTIONS=max_reflections,
SEARCH_CONTENT_MAX_LENGTH=max_content_length,
OUTPUT_DIR="media_engine_streamlit_reports",
)
else:
st.error(f"未知的搜索工具类型: {settings.SEARCH_TOOL_TYPE}")
logger.error(f"未知的搜索工具类型: {settings.SEARCH_TOOL_TYPE}")
return
# 执行研究
execute_research(query, config)
... ... @@ -150,8 +160,10 @@ def execute_research(query: str, config: Settings):
status_text.text("正在初始化Agent...")
if config.SEARCH_TOOL_TYPE == "BochaAPI":
agent = DeepSearchAgent(config)
else:
elif config.SEARCH_TOOL_TYPE == "AnspireAPI":
agent = AnspireSearchAgent(config)
else:
raise ValueError(f"未知的搜索工具类型: {config.SEARCH_TOOL_TYPE}")
st.session_state.agent = agent
progress_bar.progress(10)
... ...