税务申报助手

一款基于AI的智能助手,帮助非居民客户填写1040NR税务申报表,支持MCP协议和Redis记忆功能。

  • by jayanta8509
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 jayanta8509/TAX_MCP

使用说明

MCP税务申报助理(1040NR)

一个上下文感知的人工智能助手,旨在帮助非居民客户提交1040NR纳税申报表。该系统利用 模型上下文协议(MCP) 安全地访问客户端数据 瑞迪斯 用于保持对话记忆。

🚀 特性

  • 智能税务协助:1040NR归档工作流的专门提示。
  • MCP集成:用途 langchain-mcp-adapters 通过MCP工具将LLM与MySQL数据库连接。
  • 情境感知:使用Redis记住之前的交互、讨论的税务表格和特定的客户端详细信息。
  • 注重隐私:内置规则,防止泄漏内部客户端ID或引用类型。
  • 双客户端支持:使用动态模式映射处理“公司”和“个人”客户端类型。

🛠️ 技术栈

  • 后端:Python、FastAPI
  • AI/LLM:朗链,OpenAI GPT-4o-mini
  • 数据库MySQL(通过MCP工具)
  • 记忆:Redis(12小时TTL)
  • 协议:模型上下文协议(MCP)

📋 先决条件

  • Python 3.10+
  • Redis服务器(本地或云端)
  • mysql数据库
  • OpenAI API密钥

⚙️ 安装

  1. 克隆存储库

    git clone <repository-url>
    cd TAX_MCP
    
  2. 创建并激活虚拟环境

    python -m venv env
    # Windows
    .\env\Scripts\activate
    # Linux/Mac
    source env/bin/activate
    
  3. 安装依赖项

    pip install -r requirements.txt
    

🔧 配置

创建一个 .env 根目录中的文件,包含以下变量:

# OpenAI
OPENAI_API_KEY=sk-...

# Database (MySQL)
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=your_password
DB_NAME=your_db_name
DB_PORT=3306

# Redis
HOST=localhost
PORT=6379
PASSWORD=your_redis_password

🏃‍♂️ 用法

  1. 启动FastAPI服务器

    python app.py
    

    服务器将于启动 http://0.0.0.0:8002.

  2. API端点

    • 统一资源定位符: /chat/agent
    • 方法: POST
    • 身体:
      {
        "user_id": "user123",
        "client_id": 3,
        "reference": "company",
        "query": "What is my current account status?",
        "use_agent": true
      }
      

📂 项目结构

  • app.py:FastAPI应用程序入口点和API路由处理程序。
  • client.py:核心代理逻辑、MCP客户端设置和Redis内存管理。
  • mcp_functions.py:定义MCP工具和数据库查询。
  • connection.py:数据库连接帮助程序。
  • requirements.txt:Python依赖关系。

🛡️ 隐私和安全

  • 内部ID:系统配置为从不暴露 client_id 或 reference 键入响应。
  • 存储器TTLRedis中的对话历史记录在12小时后自动过期。