贷款助手聊天机器人

一个基于FastMCP、Streamlit和Azure OpenAI的模块化贷款助手应用,提供贷款申请、客户管理和实时聊天功能。

  • by ahmadsallaq6
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 ahmadsallaq6/FastMCP

使用说明

贷款助理聊天机器人

使用FastMCP、Streamlit和Azure OpenAI构建的模块化贷款助手应用程序。

项目结构

FastMCP/
├── backend/                    # Backend modules
│   ├── __init__.py
│   ├── app.py                 # FastAPI banking endpoints
│   ├── database.py            # MongoDB connection utilities
│   ├── mcp_client.py          # MCP client for tool execution
│   ├── mcp_server.py          # MCP server wrapping FastAPI
│   └── models.py              # Pydantic data models
│
├── frontend/                   # Frontend modules
│   ├── __init__.py
│   ├── chat.py                # Chat processing & tool execution
│   ├── config.py              # Configuration settings
│   ├── session.py             # Session state management
│   ├── streamlit_app.py       # Main Streamlit application
│   └── ui.py                  # UI components
│
├── data/                       # Data files (JSON)
├── local-mongo/               # Local MongoDB setup
│
├── run_backend.py             # Backend runner script
├── run_frontend.py            # Frontend runner script
├── requirements.txt           # Python dependencies
└── README.md

快速开始

1.安装依赖项

pip install -r requirements.txt

2.设置环境变量

创建一个 .env 文件包含:

AZURE_OPENAI_KEY=your_key
AZURE_OPENAI_ENDPOINT=your_endpoint
AZURE_OPENAI_GPT_DEPLOYMENT_NAME=gpt-4.1
MONGO_URI=mongodb://localhost:27017/
LINKUP_API_KEY=your_linkup_key  # Optional, for web search

3.启动MongoDB(如果使用本地)

cd local-mongo
docker-compose up -d

4.启动后端(MCP服务器)

选项A-使用FastMCP CLI(推荐):

fastmcp run backend/mcp_server.py --transport sse --port 8000

选项B-使用Python:

python run_backend.py

5.启动前端(Streamlit)

选项A-使用Streamlit CLI(推荐):

streamlit run frontend/streamlit_app.py

选项B-使用Python:

python run_frontend.py

建筑

后端

  • app.py:带银行端点的FastAPI应用程序:

    • 客户查询(基本列表,完整详细信息)
    • 账户管理
    • 贷款申请和状态
    • DTI计算
    • 就业评分
    • Web搜索集成
  • mcp_server.py:使用FastMCP将FastAPI应用程序包装为MCP服务器

  • mcp_client.py:用于通过SSE传输连接到MCP服务器的客户端

  • database.py:用于同步(PyMongo)和异步(Motor)连接的MongoDB实用程序

  • models.py:用于数据验证的Pydantic模型

前端

  • streamlit_app.py:协调所有组件的主要入口点

  • chat.py:处理聊天处理、流式响应和工具执行

  • session.py:管理Streamlit会话状态和会话持久性

  • ui.py:可重用的UI组件(侧边栏、聊天显示、审批对话框)

  • config.py:集中式配置(API键、提示、样式)

特性

  • 动态工具发现:工具在运行时从MCP服务器获取
  • 流媒体响应:实时显示LLM响应
  • 工具批准:敏感操作(如贷款申请)需要用户批准
  • 对话历史:坚持使用MongoDB
  • 本地执行:所有工具都在本地执行-不需要外部暴露

API终点

端点 方法 描述
/customers/basic GET 列出所有客户(ID+姓名)
/customers/{id} 获取 完整的客户详细信息
/customers/{id}/accounts GET 客户帐户
/customers/{id}/dti GET 债务与收入比率
/customers/{id}/employment_score GET 就业稳定性得分
/loans/apply POST 申请贷款
/loans/{customer_id} GET 客户现有贷款
/search/web 获取 通过Linkup API进行Web搜索

遗留文件

原始的单片文件仍然存在以供参考:

  • streamlit_app_local.py -原始组合前端
  • streamlit_app.py -云版本
  • mcp_2.py -原始MCP服务器
  • mcp_server.py -原始MCP服务器变体

在验证新结构正常工作后,可以安全地将其拆除。