Oracle HCM智能运营中心
基于人工智能的企业HCM/ERP运营多代理系统
一个端到端的智能助理,利用 LangChain、LangGraph、RAG、MCP、A2A代理和FastAPI 处理员工查询、薪资查询、SQL生成、审批工作流和知识检索——所有这些都由以Oracle Fusion HCM为模型的PostgreSQL数据库支持。
______________________________________________________________________
🏗 系统架构
graph TD
User((User)) -->|Natural Language| UI[Streamlit Dashboard]
UI -->|API Request| FastAPI[FastAPI Backend]
subgraph "Agentic Core (LangGraph)"
FastAPI --> Supervisor{Supervisor Agent}
Supervisor -->|Intents| SalaryAgent[Salary Agent]
Supervisor -->|Intents| SQLAgent[SQL RAG Agent]
Supervisor -->|Intents| ApprovalAgent[Approval Workflow Agent]
Supervisor -->|Intents| KnowledgeAgent[Knowledge Agent]
SalaryAgent -->|Tool Calling| SalaryTools[Salary Lookup Tools]
SQLAgent -->|Schema RAG| SQLChain[SQL Generation Chain]
ApprovalAgent -->|State Machine| BPEL[BPEL Migration Flow]
KnowledgeAgent -->|MCP| Wiki[Wikipedia MCP]
KnowledgeAgent -->|Doc RAG| Chroma[ChromaDB Vector Store]
end
subgraph "Data Layer"
SalaryTools -->|SQLAlchemy| Postgres[(PostgreSQL)]
SQLChain -->|Validation| Postgres
BPEL -->|History| Postgres
end______________________________________________________________________
🤖 深潜:特工
1. 编排者(主管代理)
系统的“大脑”,由 LangGraph。它使用零样本意图分类将用户查询路由到最合格的代理。它保持了一个有状态的对话,允许上下文感知的后续问题。
2. 薪资与薪酬代理(工具调用)
用途 LangChain的OpenAI函数调用 以执行精确的数据库查找。它不是“猜测”数字,而是执行特定的Python工具来计算平均工资或个人工资单等汇总,确保100%的数字准确性。
3. SQL RAG代理(文本到SQL)
一个复杂的数据检索代理,解决了SQL中的“LLM幻觉”问题。
- 模式感知:在生成代码之前,从向量存储(ChromaDB)中检索相关的表定义。
- 可解释的AI:每个生成的查询都附带一个逐步的逻辑分解。
4. 审批工作流代理(LangGraph状态机)
模型复杂 Oracle BPEL风格 工作流程。它管理发票和PPR的多阶段审批:
- 经理评审 (门槛值\ $25,000)
5. 财务报告员(智能分析)
系统中最先进的节点。它使用迭代推理来回答复杂的问题,如 *“分析我们第四季度的工资趋势与预算。”* 它包括一个内置 幻觉检查器 它根据原始数据库结果验证生成的事实。
6. 知识代理(MCP集成)
展示了 模型上下文协议(MCP).
- 外部:在维基百科上搜索常识(例如,“什么是FMLA?”)。
- 内部:对上传的人力资源政策文档、配置指南和SOP执行RAG。
7. 企业数据中心(ETL代理)
该系统包括专用连接器,用于 Oracle融合云它可以通过BI发布器(REST/SOAP)和HCM REST API提取数据,自动生成PostgreSQL模式并为RAG索引数据。
______________________________________________________________________
🔌 Oracle Fusion数据加载
系统支持两种首次加载企业数据的方式:
方法A:API直接提取(推荐)
使用 fusion_bi_extract.py 脚本直接从Oracle实例中提取实时数据。
- 更新您的
.env随着FUSION_BASE_URL,FUSION_USERNAME,以及FUSION_PASSWORD. - 运行提取:
# Extract active employees and load into PostgreSQL
python scripts/fusion_bi_extract.py --report "active_employees" --load-db方法B:手动出口装载机
如果您没有API访问权限,请从Fusion手动下载CSV/Excel报告并加载它们:
- 将文件保存在
exports/文件夹。 - 为RAG加载并索引它们:
# Load a CSV file and create a searchable vector index
python scripts/load_fusion_export.py --file exports/active_employees.csv --rag______________________________________________________________________
💻 技术栈亮点
| 组件 | 技术 |
|---|---|
| 后端API | FastAPI+Uvicorn |
| 代理框架 | LangGraph+LangChain |
| LLM | OpenAI GPT-4/Claude API |
| 矢量存储 | ChromaDB |
| 数据库 | PostgreSQL+SQLAlchemy |
| MCP | 维基百科MCP服务器 |
| 前端 | 流式传输 |
| 部署 | Docker+Docker Compose+AWS/GCP |
快速开始
# 1. Clone and setup
git clone https://github.com/yourusername/oracle-hcm-ai-hub.git
cd oracle-hcm-ai-hub
# 2. Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 3. Install dependencies
pip install -r requirements.txt
# 4. Set environment variables
cp .env.example .env
# Edit .env with your API keys and DB credentials
# 5. Initialize database
python scripts/init_db.py
# 6. Load RAG documents
python scripts/load_documents.py
# 7. Start backend
python -m uvicorn app.main:app --reload --port 8000
# 8. Start frontend (new terminal)
python -m streamlit run frontend/app.py --server.port 8501