使用说明
天气MCP服务器概述
太长,读不下去了
使用此代码库通过MCP服务器将ChatGPT或Gemini连接到天气数据。
存储库用途
此存储库提供了一组web应用程序和后端脚本,用于与LLM(如Gemini和ChatGPT)交互并访问实时天气数据。它利用 溪流 用于web界面和 快速 API 用于后端API端点,与Google和OpenAI的语言模型以及公共天气API集成。
文件摘要
1. streamlit_app_gemini.py
- 目的:
使用Streamlit构建的Web应用程序界面,用于与谷歌的Gemini LLM进行交互。 - 主要特点:
- 接受用户查询并显示Gemini的响应。
- 处理用户会话状态和提示管理。
- LLM交互界面简洁明了。
- 根据用户输入获取并显示天气数据。
2. streamlit_app_chatgpt.py
- 目的:
使用Streamlit构建的Web应用程序界面,用于与OpenAI的ChatGPT LLM进行交互。 - 主要特点:
- 类似于Gemini应用程序,但使用OpenAI API。
- 处理用户查询并显示ChatGPT响应。
- 提供会话和提示历史记录。
- 根据用户输入获取并显示天气数据。
3. main.py
- 目的:
FastAPI后端服务的主要入口点。 - 主要特点:
- 启动API服务器。
- 设置所有路由和核心API配置。
- 包括天气API路由器。
- 提供健康检查终结点。
4. weather_router.py
- 目的:
FastAPI路由器,用于处理与天气相关的API端点。 - 主要特点:
- 包含访问和管理天气数据的路线。
- 处理API请求、数据格式化和天气集成的错误处理。
- 模块化,易于集成到主FastAPI应用程序中。
5. requirements.txt
- 目的:
列出运行代码库所需的所有Python包。 - 关键库:
fastapi,uvicorn(后端web API)streamlit(网络应用程序)httpx,requests(HTTP请求)python-dotenv(环境变量管理)openai,google-generativeai(LLM API)pydantic(数据验证)
这些碎片是如何组合在一起的
-
前端:
两个Streamlit应用程序(streamlit_app_gemini.py和streamlit_app_chatgpt.py)提供用户界面,与不同的LLM进行交互,并获取感兴趣城市的天气数据。 -
后端:
main.py启动FastAPI服务器,从注册路由weather_router.py后端提供用于检索实时天气数据的API,并可以作为Streamlit应用程序的后端。 -
天气集成:
所有天气API路由和逻辑都在中模块化weather_router.py,它包含在主FastAPI应用程序中。 -
依赖关系:
所有依赖项都列在requirements.txt易于安装和再现。
入门指南
-
安装要求:
pip install -r requirements.txt -
运行后端API:
uvicorn main:app --reload -
启动Streamlit应用程序:
streamlit run streamlit_app_gemini.py # or streamlit run streamlit_app_chatgpt.py
环境变量和秘密
1·OpenAI密钥(OPENAI_API_KEY)
- 登录地址: https://platform.openai.com.
- 点击 “API密钥” 在左侧边栏中。
- 选择 “创建新密钥”,给它起个名字,然后立即复制。
- 将密钥添加到
OPENAI_API_KEY在.env.
2·双子座钥匙(GEMINI_API_KEY)
选项A——谷歌人工智能工作室(快速)
- 首选 https://aistudio.google.com.
- 选择 API密钥→ “创建API密钥”.
- 复制密钥并将其存储在
GEMINI_API_KEY.
选项B——谷歌云控制台
- 打开云控制台并创建/选择一个项目。
- 启用 API双子星.
- 引导到 API和服务→ 凭证→ 创建凭据→ API密钥.
- (可选)添加密钥限制,然后将其复制到
GEMINI_API_KEY.