aif-normbase 0.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aif_normbase-0.1.1/PKG-INFO +165 -0
- aif_normbase-0.1.1/README.md +135 -0
- aif_normbase-0.1.1/aif_normbase.egg-info/PKG-INFO +165 -0
- aif_normbase-0.1.1/aif_normbase.egg-info/SOURCES.txt +68 -0
- aif_normbase-0.1.1/aif_normbase.egg-info/dependency_links.txt +1 -0
- aif_normbase-0.1.1/aif_normbase.egg-info/entry_points.txt +2 -0
- aif_normbase-0.1.1/aif_normbase.egg-info/requires.txt +24 -0
- aif_normbase-0.1.1/aif_normbase.egg-info/top_level.txt +6 -0
- aif_normbase-0.1.1/dashboard/__init__.py +2 -0
- aif_normbase-0.1.1/dashboard/clients.py +139 -0
- aif_normbase-0.1.1/dashboard/config.py +32 -0
- aif_normbase-0.1.1/dashboard/main.py +276 -0
- aif_normbase-0.1.1/dashboard/views.py +2 -0
- aif_normbase-0.1.1/eda_agent/__init__.py +2 -0
- aif_normbase-0.1.1/eda_agent/api/__init__.py +2 -0
- aif_normbase-0.1.1/eda_agent/api/agent.py +482 -0
- aif_normbase-0.1.1/eda_agent/api/deps_auth.py +37 -0
- aif_normbase-0.1.1/eda_agent/config.py +50 -0
- aif_normbase-0.1.1/eda_agent/db/__init__.py +1 -0
- aif_normbase-0.1.1/eda_agent/db/connection.py +48 -0
- aif_normbase-0.1.1/eda_agent/engine.py +510 -0
- aif_normbase-0.1.1/eda_agent/main.py +290 -0
- aif_normbase-0.1.1/eda_agent/memory/__init__.py +0 -0
- aif_normbase-0.1.1/eda_agent/models/__init__.py +9 -0
- aif_normbase-0.1.1/eda_agent/models/persistence.py +86 -0
- aif_normbase-0.1.1/eda_agent/schemas.py +107 -0
- aif_normbase-0.1.1/eda_agent/services/__init__.py +2 -0
- aif_normbase-0.1.1/eda_agent/services/normbase_client.py +127 -0
- aif_normbase-0.1.1/eda_agent/services/provider_builder.py +30 -0
- aif_normbase-0.1.1/eda_agent/state.py +186 -0
- aif_normbase-0.1.1/integrations/__init__.py +2 -0
- aif_normbase-0.1.1/integrations/mcp/__init__.py +2 -0
- aif_normbase-0.1.1/integrations/mcp/audit.py +28 -0
- aif_normbase-0.1.1/integrations/mcp/clients.py +104 -0
- aif_normbase-0.1.1/integrations/mcp/security.py +60 -0
- aif_normbase-0.1.1/integrations/mcp/server.py +150 -0
- aif_normbase-0.1.1/llm/__init__.py +14 -0
- aif_normbase-0.1.1/llm/providers.py +896 -0
- aif_normbase-0.1.1/normbase/__init__.py +0 -0
- aif_normbase-0.1.1/normbase/admin.py +253 -0
- aif_normbase-0.1.1/normbase/api/__init__.py +0 -0
- aif_normbase-0.1.1/normbase/api/deps_auth.py +37 -0
- aif_normbase-0.1.1/normbase/api/keys.py +200 -0
- aif_normbase-0.1.1/normbase/api/norms.py +255 -0
- aif_normbase-0.1.1/normbase/api/retrieve.py +60 -0
- aif_normbase-0.1.1/normbase/config.py +117 -0
- aif_normbase-0.1.1/normbase/db/__init__.py +0 -0
- aif_normbase-0.1.1/normbase/db/connection.py +54 -0
- aif_normbase-0.1.1/normbase/main.py +90 -0
- aif_normbase-0.1.1/normbase/models/__init__.py +26 -0
- aif_normbase-0.1.1/normbase/models/norm.py +196 -0
- aif_normbase-0.1.1/normbase/models/schemas.py +162 -0
- aif_normbase-0.1.1/normbase/prompts/__init__.py +0 -0
- aif_normbase-0.1.1/normbase/services/__init__.py +0 -0
- aif_normbase-0.1.1/normbase/services/cache_service.py +33 -0
- aif_normbase-0.1.1/normbase/services/qdrant_service.py +145 -0
- aif_normbase-0.1.1/normbase/services/retrieval.py +330 -0
- aif_normbase-0.1.1/pyproject.toml +52 -0
- aif_normbase-0.1.1/security/__init__.py +2 -0
- aif_normbase-0.1.1/security/auth/__init__.py +2 -0
- aif_normbase-0.1.1/security/auth/api_keys.py +52 -0
- aif_normbase-0.1.1/security/auth/models.py +18 -0
- aif_normbase-0.1.1/security/auth/verifier.py +44 -0
- aif_normbase-0.1.1/setup.cfg +4 -0
- aif_normbase-0.1.1/tests/test_dashboard_api.py +66 -0
- aif_normbase-0.1.1/tests/test_eda_api_flow.py +207 -0
- aif_normbase-0.1.1/tests/test_eda_engine.py +81 -0
- aif_normbase-0.1.1/tests/test_mcp_auth.py +48 -0
- aif_normbase-0.1.1/tests/test_normbase_key_api.py +53 -0
- aif_normbase-0.1.1/tests/test_security_api_keys.py +24 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aif-normbase
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Agent Information Field - Norm Repository
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: fastapi>=0.109.0
|
|
8
|
+
Requires-Dist: uvicorn[standard]>=0.27.0
|
|
9
|
+
Requires-Dist: pydantic>=2.5.0
|
|
10
|
+
Requires-Dist: pydantic-settings>=2.1.0
|
|
11
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
|
|
12
|
+
Requires-Dist: asyncpg>=0.29.0
|
|
13
|
+
Requires-Dist: aiosqlite>=0.19.0
|
|
14
|
+
Requires-Dist: redis>=5.0.0
|
|
15
|
+
Requires-Dist: qdrant-client>=1.17.0
|
|
16
|
+
Requires-Dist: openai>=1.10.0
|
|
17
|
+
Requires-Dist: anthropic>=0.18.0
|
|
18
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
19
|
+
Requires-Dist: google-genai>=0.3.0
|
|
20
|
+
Requires-Dist: cohere>=5.0.0
|
|
21
|
+
Requires-Dist: sentence-transformers>=2.2.0
|
|
22
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
23
|
+
Requires-Dist: httpx>=0.26.0
|
|
24
|
+
Requires-Dist: mcp>=1.0.0
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
|
|
28
|
+
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
29
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
30
|
+
|
|
31
|
+
# AIF (Agent Information Field)
|
|
32
|
+
|
|
33
|
+
基于组织符号学的 LLM Agent 协作治理基础设施。
|
|
34
|
+
|
|
35
|
+
## 项目状态
|
|
36
|
+
|
|
37
|
+
**当前阶段**: Phase 1 完成,Phase 2 进行中
|
|
38
|
+
|
|
39
|
+
## 项目结构
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
aif/
|
|
43
|
+
├── normbase/ # 规范库核心模块
|
|
44
|
+
│ ├── models/ # 数据模型 (Norm, NormVersion, Schemas)
|
|
45
|
+
│ ├── api/ # API 路由 (norms, retrieve)
|
|
46
|
+
│ ├── services/ # 业务逻辑 (retrieval)
|
|
47
|
+
│ ├── db/ # 数据库 (schema.sql, connection)
|
|
48
|
+
│ └── prompts/ # 提示词模板
|
|
49
|
+
├── eda_agent/ # EDA Agent 模块
|
|
50
|
+
│ ├── state.py # EDA 状态管理 (Belief, NormBinding, ValueWeight)
|
|
51
|
+
│ ├── engine.py # 推理引擎 (E/D/A 组件)
|
|
52
|
+
│ └── api/ # Agent API
|
|
53
|
+
├── llm/ # LLM 模块 (providers)
|
|
54
|
+
├── tests/ # 测试 & 种子数据
|
|
55
|
+
│ └── tmp/ # 种子脚本 (EU AI Act, 交通法规等)
|
|
56
|
+
├── docker-compose.yml # 本地开发环境
|
|
57
|
+
├── requirements.txt # 依赖
|
|
58
|
+
└── README.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 模块说明
|
|
62
|
+
|
|
63
|
+
### normbase
|
|
64
|
+
|
|
65
|
+
规范库核心,提供:
|
|
66
|
+
- ✅ 规范 CRUD 操作 (obligation/prohibition/permission)
|
|
67
|
+
- ✅ 检索:agent_role + field_ids 双通道 (RRF融合)
|
|
68
|
+
- ✅ 向量语义检索 (Qdrant)
|
|
69
|
+
- ✅ 版本管理 (norm_versions)
|
|
70
|
+
- ✅ 规范关系 (norm_relations)
|
|
71
|
+
- ⬜ Redis 缓存
|
|
72
|
+
- ⬜ 规范萃取流水线
|
|
73
|
+
- ⬜ MCP 集成
|
|
74
|
+
|
|
75
|
+
### eda_agent
|
|
76
|
+
|
|
77
|
+
EDA Agent 运行时 (Phase 6 完成):
|
|
78
|
+
- ✅ E(认识论)信念管理 (Belief)
|
|
79
|
+
- ✅ D(义务论)规范绑定 (NormBinding)
|
|
80
|
+
- ✅ A(价值论)权重推理 (ValueWeight)
|
|
81
|
+
- ✅ 合规校验基础
|
|
82
|
+
- ⬜ 完整推理流程
|
|
83
|
+
|
|
84
|
+
## 技术栈
|
|
85
|
+
|
|
86
|
+
- FastAPI + PostgreSQL 16 + JSONB
|
|
87
|
+
- SQLAlchemy 2.0 (async)
|
|
88
|
+
- Qdrant (向量检索)
|
|
89
|
+
- Redis (缓存 - 集成中)
|
|
90
|
+
- LLM: OpenAI / Anthropic
|
|
91
|
+
|
|
92
|
+
## 快速开始
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# 激活 conda 虚拟环境
|
|
96
|
+
conda activate aif
|
|
97
|
+
|
|
98
|
+
# 启动本地开发环境 (PostgreSQL + Qdrant + Redis)
|
|
99
|
+
docker-compose up -d
|
|
100
|
+
|
|
101
|
+
# 安装依赖
|
|
102
|
+
pip install -r requirements.txt
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 启动 API Server
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Normbase API 端口 8001
|
|
109
|
+
python -m normbase.main
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
API 文档:http://localhost:8001/docs
|
|
113
|
+
|
|
114
|
+
### 启动 EDA Agent Server
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# EDA Agent API 端口 8002
|
|
118
|
+
python -m eda_agent.main
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
EDA API 文档:http://localhost:8002/docs
|
|
122
|
+
|
|
123
|
+
### 启动 Web 管理界面
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# UI 端口 8000
|
|
127
|
+
python -m normbase.admin
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
管理界面:http://localhost:8000
|
|
131
|
+
|
|
132
|
+
## 开发计划
|
|
133
|
+
|
|
134
|
+
详见 [background/plan.md](background/plan.md)
|
|
135
|
+
|
|
136
|
+
### 阶段进度
|
|
137
|
+
|
|
138
|
+
| Phase | 内容 | 状态 |
|
|
139
|
+
|-------|------|------|
|
|
140
|
+
| Phase 1 | 基础骨架 + CRUD + 管理UI | ✅ |
|
|
141
|
+
| Phase 2 | 检索核心 + 向量库 + 缓存 | ✅ |
|
|
142
|
+
| Phase 3 | 萃取流水线 + 审核UI | ⬜ |
|
|
143
|
+
| Phase 4 | MCP集成 + API鉴权 | ⬜ |
|
|
144
|
+
| Phase 5 | 打磨验证 + Demo | ⬜ |
|
|
145
|
+
| Phase 6 | EDA状态管理 + 持久化 | ✅ |
|
|
146
|
+
| Phase 7 | EDA推理引擎核心 | ⬜ |
|
|
147
|
+
| Phase 8 | 价值排序 + 合规校验 | ⬜ |
|
|
148
|
+
| Phase 9 | EDA端到端集成 | ⬜ |
|
|
149
|
+
|
|
150
|
+
## API 端点
|
|
151
|
+
|
|
152
|
+
- `GET /` - 健康检查
|
|
153
|
+
- `GET /api/v1/norms` - 规范列表
|
|
154
|
+
- `POST /api/v1/norms` - 创建规范
|
|
155
|
+
- `GET /api/v1/norms/{id}` - 规范详情
|
|
156
|
+
- `PUT /api/v1/norms/{id}` - 更新规范
|
|
157
|
+
- `DELETE /api/v1/norms/{id}` - 删除规范
|
|
158
|
+
- `GET /api/v1/retrieve` - 规范检索
|
|
159
|
+
|
|
160
|
+
## 测试数据
|
|
161
|
+
|
|
162
|
+
测试种子脚本位于 `tests/tmp/`:
|
|
163
|
+
- `seed_eu_ai_act.py` - EU AI Act 规范
|
|
164
|
+
- `seed_zh.py` / `seed_en.py` - 中英文测试规范
|
|
165
|
+
- `seed_traffic_laws.py` - 交通法规
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# AIF (Agent Information Field)
|
|
2
|
+
|
|
3
|
+
基于组织符号学的 LLM Agent 协作治理基础设施。
|
|
4
|
+
|
|
5
|
+
## 项目状态
|
|
6
|
+
|
|
7
|
+
**当前阶段**: Phase 1 完成,Phase 2 进行中
|
|
8
|
+
|
|
9
|
+
## 项目结构
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
aif/
|
|
13
|
+
├── normbase/ # 规范库核心模块
|
|
14
|
+
│ ├── models/ # 数据模型 (Norm, NormVersion, Schemas)
|
|
15
|
+
│ ├── api/ # API 路由 (norms, retrieve)
|
|
16
|
+
│ ├── services/ # 业务逻辑 (retrieval)
|
|
17
|
+
│ ├── db/ # 数据库 (schema.sql, connection)
|
|
18
|
+
│ └── prompts/ # 提示词模板
|
|
19
|
+
├── eda_agent/ # EDA Agent 模块
|
|
20
|
+
│ ├── state.py # EDA 状态管理 (Belief, NormBinding, ValueWeight)
|
|
21
|
+
│ ├── engine.py # 推理引擎 (E/D/A 组件)
|
|
22
|
+
│ └── api/ # Agent API
|
|
23
|
+
├── llm/ # LLM 模块 (providers)
|
|
24
|
+
├── tests/ # 测试 & 种子数据
|
|
25
|
+
│ └── tmp/ # 种子脚本 (EU AI Act, 交通法规等)
|
|
26
|
+
├── docker-compose.yml # 本地开发环境
|
|
27
|
+
├── requirements.txt # 依赖
|
|
28
|
+
└── README.md
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 模块说明
|
|
32
|
+
|
|
33
|
+
### normbase
|
|
34
|
+
|
|
35
|
+
规范库核心,提供:
|
|
36
|
+
- ✅ 规范 CRUD 操作 (obligation/prohibition/permission)
|
|
37
|
+
- ✅ 检索:agent_role + field_ids 双通道 (RRF融合)
|
|
38
|
+
- ✅ 向量语义检索 (Qdrant)
|
|
39
|
+
- ✅ 版本管理 (norm_versions)
|
|
40
|
+
- ✅ 规范关系 (norm_relations)
|
|
41
|
+
- ⬜ Redis 缓存
|
|
42
|
+
- ⬜ 规范萃取流水线
|
|
43
|
+
- ⬜ MCP 集成
|
|
44
|
+
|
|
45
|
+
### eda_agent
|
|
46
|
+
|
|
47
|
+
EDA Agent 运行时 (Phase 6 完成):
|
|
48
|
+
- ✅ E(认识论)信念管理 (Belief)
|
|
49
|
+
- ✅ D(义务论)规范绑定 (NormBinding)
|
|
50
|
+
- ✅ A(价值论)权重推理 (ValueWeight)
|
|
51
|
+
- ✅ 合规校验基础
|
|
52
|
+
- ⬜ 完整推理流程
|
|
53
|
+
|
|
54
|
+
## 技术栈
|
|
55
|
+
|
|
56
|
+
- FastAPI + PostgreSQL 16 + JSONB
|
|
57
|
+
- SQLAlchemy 2.0 (async)
|
|
58
|
+
- Qdrant (向量检索)
|
|
59
|
+
- Redis (缓存 - 集成中)
|
|
60
|
+
- LLM: OpenAI / Anthropic
|
|
61
|
+
|
|
62
|
+
## 快速开始
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 激活 conda 虚拟环境
|
|
66
|
+
conda activate aif
|
|
67
|
+
|
|
68
|
+
# 启动本地开发环境 (PostgreSQL + Qdrant + Redis)
|
|
69
|
+
docker-compose up -d
|
|
70
|
+
|
|
71
|
+
# 安装依赖
|
|
72
|
+
pip install -r requirements.txt
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### 启动 API Server
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# Normbase API 端口 8001
|
|
79
|
+
python -m normbase.main
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
API 文档:http://localhost:8001/docs
|
|
83
|
+
|
|
84
|
+
### 启动 EDA Agent Server
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# EDA Agent API 端口 8002
|
|
88
|
+
python -m eda_agent.main
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
EDA API 文档:http://localhost:8002/docs
|
|
92
|
+
|
|
93
|
+
### 启动 Web 管理界面
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# UI 端口 8000
|
|
97
|
+
python -m normbase.admin
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
管理界面:http://localhost:8000
|
|
101
|
+
|
|
102
|
+
## 开发计划
|
|
103
|
+
|
|
104
|
+
详见 [background/plan.md](background/plan.md)
|
|
105
|
+
|
|
106
|
+
### 阶段进度
|
|
107
|
+
|
|
108
|
+
| Phase | 内容 | 状态 |
|
|
109
|
+
|-------|------|------|
|
|
110
|
+
| Phase 1 | 基础骨架 + CRUD + 管理UI | ✅ |
|
|
111
|
+
| Phase 2 | 检索核心 + 向量库 + 缓存 | ✅ |
|
|
112
|
+
| Phase 3 | 萃取流水线 + 审核UI | ⬜ |
|
|
113
|
+
| Phase 4 | MCP集成 + API鉴权 | ⬜ |
|
|
114
|
+
| Phase 5 | 打磨验证 + Demo | ⬜ |
|
|
115
|
+
| Phase 6 | EDA状态管理 + 持久化 | ✅ |
|
|
116
|
+
| Phase 7 | EDA推理引擎核心 | ⬜ |
|
|
117
|
+
| Phase 8 | 价值排序 + 合规校验 | ⬜ |
|
|
118
|
+
| Phase 9 | EDA端到端集成 | ⬜ |
|
|
119
|
+
|
|
120
|
+
## API 端点
|
|
121
|
+
|
|
122
|
+
- `GET /` - 健康检查
|
|
123
|
+
- `GET /api/v1/norms` - 规范列表
|
|
124
|
+
- `POST /api/v1/norms` - 创建规范
|
|
125
|
+
- `GET /api/v1/norms/{id}` - 规范详情
|
|
126
|
+
- `PUT /api/v1/norms/{id}` - 更新规范
|
|
127
|
+
- `DELETE /api/v1/norms/{id}` - 删除规范
|
|
128
|
+
- `GET /api/v1/retrieve` - 规范检索
|
|
129
|
+
|
|
130
|
+
## 测试数据
|
|
131
|
+
|
|
132
|
+
测试种子脚本位于 `tests/tmp/`:
|
|
133
|
+
- `seed_eu_ai_act.py` - EU AI Act 规范
|
|
134
|
+
- `seed_zh.py` / `seed_en.py` - 中英文测试规范
|
|
135
|
+
- `seed_traffic_laws.py` - 交通法规
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aif-normbase
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Agent Information Field - Norm Repository
|
|
5
|
+
Requires-Python: >=3.11
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
Requires-Dist: fastapi>=0.109.0
|
|
8
|
+
Requires-Dist: uvicorn[standard]>=0.27.0
|
|
9
|
+
Requires-Dist: pydantic>=2.5.0
|
|
10
|
+
Requires-Dist: pydantic-settings>=2.1.0
|
|
11
|
+
Requires-Dist: sqlalchemy[asyncio]>=2.0.0
|
|
12
|
+
Requires-Dist: asyncpg>=0.29.0
|
|
13
|
+
Requires-Dist: aiosqlite>=0.19.0
|
|
14
|
+
Requires-Dist: redis>=5.0.0
|
|
15
|
+
Requires-Dist: qdrant-client>=1.17.0
|
|
16
|
+
Requires-Dist: openai>=1.10.0
|
|
17
|
+
Requires-Dist: anthropic>=0.18.0
|
|
18
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
19
|
+
Requires-Dist: google-genai>=0.3.0
|
|
20
|
+
Requires-Dist: cohere>=5.0.0
|
|
21
|
+
Requires-Dist: sentence-transformers>=2.2.0
|
|
22
|
+
Requires-Dist: aiohttp>=3.9.0
|
|
23
|
+
Requires-Dist: httpx>=0.26.0
|
|
24
|
+
Requires-Dist: mcp>=1.0.0
|
|
25
|
+
Provides-Extra: dev
|
|
26
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
27
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == "dev"
|
|
28
|
+
Requires-Dist: black>=24.0.0; extra == "dev"
|
|
29
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
30
|
+
|
|
31
|
+
# AIF (Agent Information Field)
|
|
32
|
+
|
|
33
|
+
基于组织符号学的 LLM Agent 协作治理基础设施。
|
|
34
|
+
|
|
35
|
+
## 项目状态
|
|
36
|
+
|
|
37
|
+
**当前阶段**: Phase 1 完成,Phase 2 进行中
|
|
38
|
+
|
|
39
|
+
## 项目结构
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
aif/
|
|
43
|
+
├── normbase/ # 规范库核心模块
|
|
44
|
+
│ ├── models/ # 数据模型 (Norm, NormVersion, Schemas)
|
|
45
|
+
│ ├── api/ # API 路由 (norms, retrieve)
|
|
46
|
+
│ ├── services/ # 业务逻辑 (retrieval)
|
|
47
|
+
│ ├── db/ # 数据库 (schema.sql, connection)
|
|
48
|
+
│ └── prompts/ # 提示词模板
|
|
49
|
+
├── eda_agent/ # EDA Agent 模块
|
|
50
|
+
│ ├── state.py # EDA 状态管理 (Belief, NormBinding, ValueWeight)
|
|
51
|
+
│ ├── engine.py # 推理引擎 (E/D/A 组件)
|
|
52
|
+
│ └── api/ # Agent API
|
|
53
|
+
├── llm/ # LLM 模块 (providers)
|
|
54
|
+
├── tests/ # 测试 & 种子数据
|
|
55
|
+
│ └── tmp/ # 种子脚本 (EU AI Act, 交通法规等)
|
|
56
|
+
├── docker-compose.yml # 本地开发环境
|
|
57
|
+
├── requirements.txt # 依赖
|
|
58
|
+
└── README.md
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 模块说明
|
|
62
|
+
|
|
63
|
+
### normbase
|
|
64
|
+
|
|
65
|
+
规范库核心,提供:
|
|
66
|
+
- ✅ 规范 CRUD 操作 (obligation/prohibition/permission)
|
|
67
|
+
- ✅ 检索:agent_role + field_ids 双通道 (RRF融合)
|
|
68
|
+
- ✅ 向量语义检索 (Qdrant)
|
|
69
|
+
- ✅ 版本管理 (norm_versions)
|
|
70
|
+
- ✅ 规范关系 (norm_relations)
|
|
71
|
+
- ⬜ Redis 缓存
|
|
72
|
+
- ⬜ 规范萃取流水线
|
|
73
|
+
- ⬜ MCP 集成
|
|
74
|
+
|
|
75
|
+
### eda_agent
|
|
76
|
+
|
|
77
|
+
EDA Agent 运行时 (Phase 6 完成):
|
|
78
|
+
- ✅ E(认识论)信念管理 (Belief)
|
|
79
|
+
- ✅ D(义务论)规范绑定 (NormBinding)
|
|
80
|
+
- ✅ A(价值论)权重推理 (ValueWeight)
|
|
81
|
+
- ✅ 合规校验基础
|
|
82
|
+
- ⬜ 完整推理流程
|
|
83
|
+
|
|
84
|
+
## 技术栈
|
|
85
|
+
|
|
86
|
+
- FastAPI + PostgreSQL 16 + JSONB
|
|
87
|
+
- SQLAlchemy 2.0 (async)
|
|
88
|
+
- Qdrant (向量检索)
|
|
89
|
+
- Redis (缓存 - 集成中)
|
|
90
|
+
- LLM: OpenAI / Anthropic
|
|
91
|
+
|
|
92
|
+
## 快速开始
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
# 激活 conda 虚拟环境
|
|
96
|
+
conda activate aif
|
|
97
|
+
|
|
98
|
+
# 启动本地开发环境 (PostgreSQL + Qdrant + Redis)
|
|
99
|
+
docker-compose up -d
|
|
100
|
+
|
|
101
|
+
# 安装依赖
|
|
102
|
+
pip install -r requirements.txt
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 启动 API Server
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
# Normbase API 端口 8001
|
|
109
|
+
python -m normbase.main
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
API 文档:http://localhost:8001/docs
|
|
113
|
+
|
|
114
|
+
### 启动 EDA Agent Server
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# EDA Agent API 端口 8002
|
|
118
|
+
python -m eda_agent.main
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
EDA API 文档:http://localhost:8002/docs
|
|
122
|
+
|
|
123
|
+
### 启动 Web 管理界面
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# UI 端口 8000
|
|
127
|
+
python -m normbase.admin
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
管理界面:http://localhost:8000
|
|
131
|
+
|
|
132
|
+
## 开发计划
|
|
133
|
+
|
|
134
|
+
详见 [background/plan.md](background/plan.md)
|
|
135
|
+
|
|
136
|
+
### 阶段进度
|
|
137
|
+
|
|
138
|
+
| Phase | 内容 | 状态 |
|
|
139
|
+
|-------|------|------|
|
|
140
|
+
| Phase 1 | 基础骨架 + CRUD + 管理UI | ✅ |
|
|
141
|
+
| Phase 2 | 检索核心 + 向量库 + 缓存 | ✅ |
|
|
142
|
+
| Phase 3 | 萃取流水线 + 审核UI | ⬜ |
|
|
143
|
+
| Phase 4 | MCP集成 + API鉴权 | ⬜ |
|
|
144
|
+
| Phase 5 | 打磨验证 + Demo | ⬜ |
|
|
145
|
+
| Phase 6 | EDA状态管理 + 持久化 | ✅ |
|
|
146
|
+
| Phase 7 | EDA推理引擎核心 | ⬜ |
|
|
147
|
+
| Phase 8 | 价值排序 + 合规校验 | ⬜ |
|
|
148
|
+
| Phase 9 | EDA端到端集成 | ⬜ |
|
|
149
|
+
|
|
150
|
+
## API 端点
|
|
151
|
+
|
|
152
|
+
- `GET /` - 健康检查
|
|
153
|
+
- `GET /api/v1/norms` - 规范列表
|
|
154
|
+
- `POST /api/v1/norms` - 创建规范
|
|
155
|
+
- `GET /api/v1/norms/{id}` - 规范详情
|
|
156
|
+
- `PUT /api/v1/norms/{id}` - 更新规范
|
|
157
|
+
- `DELETE /api/v1/norms/{id}` - 删除规范
|
|
158
|
+
- `GET /api/v1/retrieve` - 规范检索
|
|
159
|
+
|
|
160
|
+
## 测试数据
|
|
161
|
+
|
|
162
|
+
测试种子脚本位于 `tests/tmp/`:
|
|
163
|
+
- `seed_eu_ai_act.py` - EU AI Act 规范
|
|
164
|
+
- `seed_zh.py` / `seed_en.py` - 中英文测试规范
|
|
165
|
+
- `seed_traffic_laws.py` - 交通法规
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
README.md
|
|
2
|
+
pyproject.toml
|
|
3
|
+
aif_normbase.egg-info/PKG-INFO
|
|
4
|
+
aif_normbase.egg-info/SOURCES.txt
|
|
5
|
+
aif_normbase.egg-info/dependency_links.txt
|
|
6
|
+
aif_normbase.egg-info/entry_points.txt
|
|
7
|
+
aif_normbase.egg-info/requires.txt
|
|
8
|
+
aif_normbase.egg-info/top_level.txt
|
|
9
|
+
dashboard/__init__.py
|
|
10
|
+
dashboard/clients.py
|
|
11
|
+
dashboard/config.py
|
|
12
|
+
dashboard/main.py
|
|
13
|
+
dashboard/views.py
|
|
14
|
+
eda_agent/__init__.py
|
|
15
|
+
eda_agent/config.py
|
|
16
|
+
eda_agent/engine.py
|
|
17
|
+
eda_agent/main.py
|
|
18
|
+
eda_agent/schemas.py
|
|
19
|
+
eda_agent/state.py
|
|
20
|
+
eda_agent/api/__init__.py
|
|
21
|
+
eda_agent/api/agent.py
|
|
22
|
+
eda_agent/api/deps_auth.py
|
|
23
|
+
eda_agent/db/__init__.py
|
|
24
|
+
eda_agent/db/connection.py
|
|
25
|
+
eda_agent/memory/__init__.py
|
|
26
|
+
eda_agent/models/__init__.py
|
|
27
|
+
eda_agent/models/persistence.py
|
|
28
|
+
eda_agent/services/__init__.py
|
|
29
|
+
eda_agent/services/normbase_client.py
|
|
30
|
+
eda_agent/services/provider_builder.py
|
|
31
|
+
integrations/__init__.py
|
|
32
|
+
integrations/mcp/__init__.py
|
|
33
|
+
integrations/mcp/audit.py
|
|
34
|
+
integrations/mcp/clients.py
|
|
35
|
+
integrations/mcp/security.py
|
|
36
|
+
integrations/mcp/server.py
|
|
37
|
+
llm/__init__.py
|
|
38
|
+
llm/providers.py
|
|
39
|
+
normbase/__init__.py
|
|
40
|
+
normbase/admin.py
|
|
41
|
+
normbase/config.py
|
|
42
|
+
normbase/main.py
|
|
43
|
+
normbase/api/__init__.py
|
|
44
|
+
normbase/api/deps_auth.py
|
|
45
|
+
normbase/api/keys.py
|
|
46
|
+
normbase/api/norms.py
|
|
47
|
+
normbase/api/retrieve.py
|
|
48
|
+
normbase/db/__init__.py
|
|
49
|
+
normbase/db/connection.py
|
|
50
|
+
normbase/models/__init__.py
|
|
51
|
+
normbase/models/norm.py
|
|
52
|
+
normbase/models/schemas.py
|
|
53
|
+
normbase/prompts/__init__.py
|
|
54
|
+
normbase/services/__init__.py
|
|
55
|
+
normbase/services/cache_service.py
|
|
56
|
+
normbase/services/qdrant_service.py
|
|
57
|
+
normbase/services/retrieval.py
|
|
58
|
+
security/__init__.py
|
|
59
|
+
security/auth/__init__.py
|
|
60
|
+
security/auth/api_keys.py
|
|
61
|
+
security/auth/models.py
|
|
62
|
+
security/auth/verifier.py
|
|
63
|
+
tests/test_dashboard_api.py
|
|
64
|
+
tests/test_eda_api_flow.py
|
|
65
|
+
tests/test_eda_engine.py
|
|
66
|
+
tests/test_mcp_auth.py
|
|
67
|
+
tests/test_normbase_key_api.py
|
|
68
|
+
tests/test_security_api_keys.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
fastapi>=0.109.0
|
|
2
|
+
uvicorn[standard]>=0.27.0
|
|
3
|
+
pydantic>=2.5.0
|
|
4
|
+
pydantic-settings>=2.1.0
|
|
5
|
+
sqlalchemy[asyncio]>=2.0.0
|
|
6
|
+
asyncpg>=0.29.0
|
|
7
|
+
aiosqlite>=0.19.0
|
|
8
|
+
redis>=5.0.0
|
|
9
|
+
qdrant-client>=1.17.0
|
|
10
|
+
openai>=1.10.0
|
|
11
|
+
anthropic>=0.18.0
|
|
12
|
+
python-dotenv>=1.0.0
|
|
13
|
+
google-genai>=0.3.0
|
|
14
|
+
cohere>=5.0.0
|
|
15
|
+
sentence-transformers>=2.2.0
|
|
16
|
+
aiohttp>=3.9.0
|
|
17
|
+
httpx>=0.26.0
|
|
18
|
+
mcp>=1.0.0
|
|
19
|
+
|
|
20
|
+
[dev]
|
|
21
|
+
pytest>=8.0.0
|
|
22
|
+
pytest-asyncio>=0.23.0
|
|
23
|
+
black>=24.0.0
|
|
24
|
+
ruff>=0.1.0
|