Fitbit数据管理工具

该工具通过Streamlit和FastAPI提供Web界面和API端点,用于连接ChatGPT或Gemini等大型语言模型与Fitbit账户数据,实现数据管理和交互。

  • by pcilli
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 pcilli/fitbit-mcp-server

使用说明

Fitbit MCP服务器概述

太长,读不下去了

使用此代码通过MCP服务器将ChatGPT或Gemini连接到Fitbit帐户。

存储库用途

此存储库提供了一组web应用程序和后端脚本,用于与LLM(如Gemini和ChatGPT)交互和管理Fitbit数据。它利用 溪流 用于web界面和 快速 API 用于后端API端点,与Google和OpenAI的语言模型以及Fitbit数据源集成。


文件摘要

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配置。
    • 可能包括启动事件和根端点。

4. fitbit_router.py

  • 目的:
    FastAPI路由器,用于处理Fitbit相关的API端点。
  • 主要特点:
    • 包含用于访问和管理Fitbit数据的路由。
    • 处理特定于Fitbit集成的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服务器,从注册路由 fitbit_router.py 以及可能的其他模块。后端为Fitbit数据处理提供API,并可能作为Streamlit应用程序的后端。

  • Fitbit集成:
    所有Fitbit API路由和逻辑都在 fitbit_router.py,它包含在主FastAPI应用程序中。

  • 依赖关系:
    所有依赖项都列在 requirements.txt 易于安装和再现。


入门指南

  1. 安装要求:

    pip install -r requirements.txt
    
  2. 运行后端API:

    uvicorn main:app --reload
    
  3. 启动Streamlit应用程序:

    streamlit run streamlit_app_gemini.py
    # or
    streamlit run streamlit_app_chatgpt.py
    

生成您所需的秘密

将下面的每个秘密添加到本地 .env 文件。
例子:

FITBIT_CLIENT_ID=xxxxxxxxxxxx
FITBIT_CLIENT_SECRET=xxxxxxxxxxxx
FITBIT_REDIRECT_URI=http://localhost:8000/fitbit/auth/fitbit/callback
FITBIT_USER_ID=xxxxxxxx
OPENAI_API_KEY_FB=sk-xxxxxxxxxxxxxxxx
GEMINI_API_KEY=xxxxxxxxxxxxxxxxxxxx

1·Fitbit API证书

FITBIT_CLIENT_ID 和 FITBIT_CLIENT_SECRET

  1. 登录(或创建)免费开发人员帐户 https://dev.fitbit.com.
  2. 引导到 管理→ 注册应用程序 并填写表格(选择OAuth 2.0类型 “服务器”).
  3. 保存后,门户会显示您的 客户端ID 和 客户端密钥 --将两者复制到 .env.

FITBIT_REDIRECT_URI

  1. 编辑同一Fitbit应用程序时,请定位 OAuth 2.0 重定向 URL.
  2. 输入您的后端在OAuth期间将监听的URL(例如。 http://localhost:8000/fitbit/auth/fitbit/callback 发展中)。
  3. 使用 精确地 这个字符串为 FITBIT_REDIRECT_URI 在 .env.

FITBIT_USER_ID

快速方法(移动应用程序)

  1. 打开Fitbit移动应用程序。
  2. 轻按 今天→ 配置文件图标→ 个人信息.
  3. 复制您姓名下显示的长编码ID。

API方法

  1. 使用新的客户端ID/密钥和重定向URI完成OAuth流程。
  2. 呼叫 GET https://api.fitbit.com/1/user/-/profile.json 使用访问令牌。
  3. 阅读 user.encodedId 从JSON中提取并放入 FITBIT_USER_ID.

2·OpenAI密钥(OPENAI_API_KEY_FB)

  1. 登录地址: https://platform.openai.com.
  2. 点击 “API密钥” 在左侧边栏中。
  3. 选择 “创建新密钥”,给它起个名字,然后立即复制。
  4. 将密钥添加到 OPENAI_API_KEY_FB 在 .env.

3·双子座钥匙(GEMINI_API_KEY)

选项A——谷歌人工智能工作室(快速)

  1. 首选 https://aistudio.google.com.
  2. 选择 API密钥→ “创建API密钥”.
  3. 复制密钥并将其存储在 GEMINI_API_KEY.

选项B——谷歌云控制台

  1. 打开云控制台并创建/选择一个项目。
  2. 启用 API双子星.
  3. 引导到 API和服务→ 凭证→ 创建凭据→ API密钥.
  4. (可选)添加密钥限制,然后将其复制到 GEMINI_API_KEY.