OCI GenAI Bot与MCP——发票解析
一种代理系统,通过使用以下方式查找原始出库发票来解析客户退货发票:
- LangGraph ReAct代理(
main.py)和MCP工具(server_invoice_items.py) - OCI GenAI(用于推理的CohereCommand;用于嵌入的Cohere-Embed)
- 用于数据和矢量的Oracle自治数据库(钱包认证)
- Gradio用户界面(
gradio_app.py)凤凰号可观测性
先决条件
- 启用了Generative AI服务的OCI帐户
- Oracle ATP实例+钱包文件
Wallet_ItsmyATPVectorDBs/ - Python 3.10+带pip
配置
配置集中在 config.properties. config_loader.py:
- 阅读
config.properties - 写
~/.oci/config自动(OCI SDK) - 设置Oracle DB环境变量(例如。,
TNS_ADMIN)
示例 config.properties:
# OCI GenAI
OCI_GENAI_MODEL_ID=cohere.command-plus-latest
OCI_GENAI_EMBEDDING_MODEL_ID=cohere.embed-multilingual-v3.0
OCI_GENAI_ENDPOINT=https://inference.generativeai.us-chicago-1.oci.oraclecloud.com
OCI_COMPARTMENT_OCID=ocid1.tenancy.oc1..xxxx
# OCI API Keys
OCI_USER=ocid1.user.oc1..xxxx
OCI_FINGERPRINT=xx:xx:...
OCI_KEY_FILE=oci_api_key.pem
# Oracle DB
WALLET_PATH=Wallet_ItsmyATPVectorDBs
DB_ALIAS=itsmyatpvectordb_high
USERNAME=ADMIN
PASSWORD=your_password快速开始
# 1) Install
& .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
# 2) Validate (packages, files, wallet, DB, embeddings)
& .\.venv\Scripts\python.exe .\test_setup.py
# 3) (Optional) Precompute product embeddings
& .\.venv\Scripts\python.exe .\process_vector_products.py
# 4) Run Web UI (recommended)
& .\.venv\Scripts\python.exe .\gradio_app.py
# UI: | Phoenix:
# Or run CLI
& .\.venv\Scripts\python.exe .\main.py运作原理
- 流程:矢量/模糊搜索产品→ 解析EAN→ 搜索发票
- MCP工具:
search_vectorized_product,resolve_ean,search_invoices_by_criteria - Phoenix为提示、响应和工具执行提供跟踪
嵌入说明: process_vector_products.py 使用句子转换器(384-d),而运行时使用OCI Cohere-Embed(1024-d)。为了达到最佳匹配,通过使用OCI重新生成DB向量来对齐维度,或者切换运行时嵌入以匹配离线模型。无论哪种方式,模糊回退都是可用的。
故障排除
- 端口7860繁忙:停止现有进程,然后重新启动UI
- Phoenix端口6006繁忙:停止其他Phoenix进程或暂时禁用
- 无语义结果:确保嵌入表已填充;重演
process_vector_products.py - DB连接问题:验证钱包路径(
TNS_ADMIN),别名在tnsnames.ora,以及凭据
原木:尾部 app.log凤凰UI: .
结构
OCI_GenAIBot_MCP/
├─ main.py # Agent + Phoenix + MCP client (CLI)
├─ gradio_app.py # Minimal web UI (spawns main.py)
├─ server_invoice_items.py # MCP server tools
├─ product_search.py # Vector + fuzzy search
├─ process_vector_products.py # Precompute and store embeddings
├─ config_loader.py # Reads config.properties, sets OCI/DB env
├─ test_setup.py # Environment/DB/embeddings validator
├─ requirements.txt
├─ config.properties
└─ Wallet_ItsmyATPVectorDBs/ # Oracle wallet files支持
凤凰城开放 查看痕迹。有关问题,请检查 app.log 并确认 test_setup.py 通过。
