使用说明
朗链银行助理
概述
这是一个 会话式银行助理 使用 LangChain 和 Azure OpenAI,旨在处理与银行服务相关的用户查询,如检查账户余额、处理交易和管理账户相关查询。
它使用a 零样本代理 架构、用于维护会话上下文的内存缓冲区,以及用于分类意图和执行银行操作的多种工具。
特性
-
用户登录和会话管理:
具有会话持久性的基于PIN的安全身份验证系统。登录后,用户不需要重复提供帐户信息。 -
意图分类:
所有用户查询首先使用IntentClassifier以确定它们是否与余额、交易、卡问题或不受支持的操作有关。 -
上下文感知记忆:
对话历史记录存储在内存缓冲区中。以前提供的信息,如 3位帐户ID 在同一会话中自动重用。 -
银行工具:
CheckBalance–获取给定帐户ID的帐户余额。HandleTransaction–处理与交易相关的查询,包括待处理或失败的转账。ReportCardIssues–手柄 仅与卡相关的问题,例如丢失的卡、损坏的卡、激活问题或卡不起作用。Unsupported–确定其他工具是否无法处理查询。
-
丢失数据的安全处理:
当所需数据(如真实交易历史)不可用时,使用占位符消息,防止循环或重复的澄清请求。 -
用户友好的提示:
助理遵循循序渐进的推理指南:- 只有在绝对必要时才要求澄清。
- 重复使用内存中的帐户ID,而不是重复询问。
- 避免在后续问题中出现无限循环。
安装
- 克隆存储库:
git clone <repo_url>
cd LangChain-Banking-Agent
- 创建并激活虚拟环境:
python -m venv venv
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
- 安装依赖项:
pip install -r requirements.txt
环境和证书(.env)
此项目使用多个Azure凭据和一个推理端点进行意图分类。创建一个 .env 在项目根目录中创建文件,并添加下面描述的值。
重要提示: 永不承诺
.env源代码控制。添加到.gitignore.
示例 .env (模板)
# Azure OpenAI / Cognitive Services resource credentials used by the LLM/speech code
azure_resource_key=<your_azure_cognitive_or_openai_key_here>
azure_resource_endpoint=https://<your-resource-name>.<region>.cognitiveservices.azure.com/
# Model API (used for intent classifier or custom classifier endpoint)
model_api_key=<your_model_api_key_here>
model_endpoint=https://<your-inference-host>/score
# Azure Speech (optional, if using speech integration)
AZURE_SPEECH_KEY=<your_speech_key_here>
AZURE_SPEECH_REGION=<speech_region>
从哪里获取每个值
-
azure_resource_key&azure_resource_endpoint创建 Azure OpenAI 或 认知服务 Azure门户中的资源。- 打开资源→ 密钥和端点 → 复制任意键+端点URL。
-
model_api_key&model_endpoint如果助手调用外部托管端点(Azure ML、自定义推理服务等)进行意图分类,则使用此功能。- 对于开发,您可以使用一个简单的本地分类器并相应地设置这些值。
-
AZURE_SPEECH_KEY&AZURE_SPEECH_REGION(可选) 仅当启用语音到文本或文本到语音时才需要。
如果您不确定使用哪个分类器端点,请按照组织的说明进行操作,或在开发过程中使用模拟分类器。
用法
运行助手:
python main.py
使用测试凭据登录:
Welcome. Please login to continue.
Enter your Account ID: 001
Enter your PIN: 1234
✅ Login successful! Welcome back, Ini!
用自然语言提问:
You: What's my balance?
Assistant: Hello Ini! Your balance is ₦200,000.
卡问题:
You: I lost my card
Assistant:
Hello Ini!
Your card has been blocked immediately.
Next steps:
• New card ready in 48 hours
• Collect at any branch with ID
• Reference: CARD-001-LOST/STOLEN
• Urgent help: 0800-BANK-HELP
交易:
You: Show my transactions
Assistant: [Displays transaction history]
类型 exit 退出或 logout 切换用户。
项目结构
LangChain-Banking-Agent/
├── main.py # Main application script with login system
├── utils.py # Helper functions, banking operations, intent classification
├── tools.py # Banking tool definitions for LangChain agent
├── requirements.txt # Python dependencies
├── README.md # Project documentation
└── .env # Environment variables for Azure OpenAI (not checked in)
关键组件
- main.py –处理用户身份验证、代理初始化、会话循环。
- utils.py –实现银行逻辑:余额检查、交易、发卡报告。
- tools.py –定义代理使用的LangChain工具。
测试账户
| 账户ID | PIN | 姓名 | 余额 |
|---|---|---|---|
| 001 | 1234 | 这 | |
| 002 | 5678 | 博鲁 | ₦420000 |
| 003 | 9012 | 埃布卡 | 3亿韩元 |
| 004 | 3456 | 丹尼尔 | ₦250000 |
备注
-
内存处理:
ConversationBufferMemory存储过去的查询和帐户ID,以便代理可以在会话中重用它们。 -
环路预防: 对于无法处理的查询(例如,缺少真实世界的交易数据),助手会返回一个礼貌的占位符并执行 不 反复要求确认。
-
安全: 保持
.env文件私有。切勿提交凭据。 -
认证: 基于PIN的登录仅用于演示目的。生产系统应实施安全密码散列和MFA。
未来改进
- 整合真实银行API数据源。
- 扩展工具支持(贷款、转账、账单支付)。
- 添加多用户并发和持久会话存储。
- 实施安全的凭证存储和加密。
- 创建web或移动UI。