Phase 8 Task 4: AI 能力增强
- 创建 ai_manager.py - AI 能力增强管理模块 - 自定义模型训练(领域特定实体识别) - 多模态大模型集成(GPT-4V、Claude 3、Gemini、Kimi-VL) - 智能摘要与问答(基于知识图谱的 RAG) - 预测性分析(趋势预测、异常检测、实体增长、关系演变) - 更新 schema.sql - 添加 AI 能力增强相关数据库表 - custom_models, training_samples - multimodal_analyses - kg_rag_configs, rag_queries - smart_summaries - prediction_models, prediction_results - 更新 main.py - 添加 30+ 个 AI 相关 API 端点 - 自定义模型管理(创建、训练、预测) - 多模态分析 - 知识图谱 RAG - 智能摘要 - 预测模型(创建、训练、预测、反馈) - 创建 test_phase8_task4.py - 测试脚本 - 更新 README.md 和 STATUS.md
This commit is contained in:
@@ -1406,3 +1406,320 @@ CREATE INDEX IF NOT EXISTS idx_retention_tenant ON data_retention_policies(tenan
|
||||
CREATE INDEX IF NOT EXISTS idx_retention_type ON data_retention_policies(resource_type);
|
||||
CREATE INDEX IF NOT EXISTS idx_retention_jobs_policy ON data_retention_jobs(policy_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_retention_jobs_status ON data_retention_jobs(status);
|
||||
|
||||
-- ============================================
|
||||
-- Phase 8 Task 7: 全球化与本地化
|
||||
-- ============================================
|
||||
|
||||
-- 翻译表
|
||||
CREATE TABLE IF NOT EXISTS translations (
|
||||
id TEXT PRIMARY KEY,
|
||||
key TEXT NOT NULL,
|
||||
language TEXT NOT NULL,
|
||||
value TEXT NOT NULL,
|
||||
namespace TEXT DEFAULT 'common',
|
||||
context TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
is_reviewed INTEGER DEFAULT 0,
|
||||
reviewed_by TEXT,
|
||||
reviewed_at TIMESTAMP,
|
||||
UNIQUE(key, language, namespace)
|
||||
);
|
||||
|
||||
-- 语言配置表
|
||||
CREATE TABLE IF NOT EXISTS language_configs (
|
||||
code TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
name_local TEXT NOT NULL,
|
||||
is_rtl INTEGER DEFAULT 0,
|
||||
is_active INTEGER DEFAULT 1,
|
||||
is_default INTEGER DEFAULT 0,
|
||||
fallback_language TEXT,
|
||||
date_format TEXT,
|
||||
time_format TEXT,
|
||||
datetime_format TEXT,
|
||||
number_format TEXT,
|
||||
currency_format TEXT,
|
||||
first_day_of_week INTEGER DEFAULT 1,
|
||||
calendar_type TEXT DEFAULT 'gregorian'
|
||||
);
|
||||
|
||||
-- 数据中心表
|
||||
CREATE TABLE IF NOT EXISTS data_centers (
|
||||
id TEXT PRIMARY KEY,
|
||||
region_code TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
location TEXT NOT NULL,
|
||||
endpoint TEXT NOT NULL,
|
||||
status TEXT DEFAULT 'active',
|
||||
priority INTEGER DEFAULT 1,
|
||||
supported_regions TEXT DEFAULT '[]',
|
||||
capabilities TEXT DEFAULT '{}',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 租户数据中心映射表
|
||||
CREATE TABLE IF NOT EXISTS tenant_data_center_mappings (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL UNIQUE,
|
||||
primary_dc_id TEXT NOT NULL,
|
||||
secondary_dc_id TEXT,
|
||||
region_code TEXT NOT NULL,
|
||||
data_residency TEXT DEFAULT 'regional',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (primary_dc_id) REFERENCES data_centers(id),
|
||||
FOREIGN KEY (secondary_dc_id) REFERENCES data_centers(id)
|
||||
);
|
||||
|
||||
-- 本地化支付方式表
|
||||
CREATE TABLE IF NOT EXISTS localized_payment_methods (
|
||||
id TEXT PRIMARY KEY,
|
||||
provider TEXT NOT NULL UNIQUE,
|
||||
name TEXT NOT NULL,
|
||||
name_local TEXT DEFAULT '{}',
|
||||
supported_countries TEXT DEFAULT '[]',
|
||||
supported_currencies TEXT DEFAULT '[]',
|
||||
is_active INTEGER DEFAULT 1,
|
||||
config TEXT DEFAULT '{}',
|
||||
icon_url TEXT,
|
||||
display_order INTEGER DEFAULT 0,
|
||||
min_amount REAL,
|
||||
max_amount REAL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 国家配置表
|
||||
CREATE TABLE IF NOT EXISTS country_configs (
|
||||
code TEXT PRIMARY KEY,
|
||||
code3 TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
name_local TEXT DEFAULT '{}',
|
||||
region TEXT NOT NULL,
|
||||
default_language TEXT NOT NULL,
|
||||
supported_languages TEXT DEFAULT '[]',
|
||||
default_currency TEXT NOT NULL,
|
||||
supported_currencies TEXT DEFAULT '[]',
|
||||
timezone TEXT NOT NULL,
|
||||
calendar_type TEXT DEFAULT 'gregorian',
|
||||
date_format TEXT,
|
||||
time_format TEXT,
|
||||
number_format TEXT,
|
||||
address_format TEXT,
|
||||
phone_format TEXT,
|
||||
vat_rate REAL,
|
||||
is_active INTEGER DEFAULT 1
|
||||
);
|
||||
|
||||
-- 时区配置表
|
||||
CREATE TABLE IF NOT EXISTS timezone_configs (
|
||||
id TEXT PRIMARY KEY,
|
||||
timezone TEXT NOT NULL UNIQUE,
|
||||
utc_offset TEXT NOT NULL,
|
||||
dst_offset TEXT,
|
||||
country_code TEXT NOT NULL,
|
||||
region TEXT NOT NULL,
|
||||
is_active INTEGER DEFAULT 1
|
||||
);
|
||||
|
||||
-- 货币配置表
|
||||
CREATE TABLE IF NOT EXISTS currency_configs (
|
||||
code TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
name_local TEXT DEFAULT '{}',
|
||||
symbol TEXT NOT NULL,
|
||||
decimal_places INTEGER DEFAULT 2,
|
||||
decimal_separator TEXT DEFAULT '.',
|
||||
thousands_separator TEXT DEFAULT ',',
|
||||
is_active INTEGER DEFAULT 1
|
||||
);
|
||||
|
||||
-- 租户本地化设置表
|
||||
CREATE TABLE IF NOT EXISTS localization_settings (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL UNIQUE,
|
||||
default_language TEXT DEFAULT 'en',
|
||||
supported_languages TEXT DEFAULT '["en"]',
|
||||
default_currency TEXT DEFAULT 'USD',
|
||||
supported_currencies TEXT DEFAULT '["USD"]',
|
||||
default_timezone TEXT DEFAULT 'UTC',
|
||||
default_date_format TEXT,
|
||||
default_time_format TEXT,
|
||||
default_number_format TEXT,
|
||||
calendar_type TEXT DEFAULT 'gregorian',
|
||||
first_day_of_week INTEGER DEFAULT 1,
|
||||
region_code TEXT DEFAULT 'global',
|
||||
data_residency TEXT DEFAULT 'regional',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 本地化相关索引
|
||||
CREATE INDEX IF NOT EXISTS idx_translations_key ON translations(key);
|
||||
CREATE INDEX IF NOT EXISTS idx_translations_lang ON translations(language);
|
||||
CREATE INDEX IF NOT EXISTS idx_translations_ns ON translations(namespace);
|
||||
CREATE INDEX IF NOT EXISTS idx_dc_region ON data_centers(region_code);
|
||||
CREATE INDEX IF NOT EXISTS idx_dc_status ON data_centers(status);
|
||||
CREATE INDEX IF NOT EXISTS idx_tenant_dc ON tenant_data_center_mappings(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_payment_provider ON localized_payment_methods(provider);
|
||||
CREATE INDEX IF NOT EXISTS idx_payment_active ON localized_payment_methods(is_active);
|
||||
CREATE INDEX IF NOT EXISTS idx_country_region ON country_configs(region);
|
||||
CREATE INDEX IF NOT EXISTS idx_tz_country ON timezone_configs(country_code);
|
||||
CREATE INDEX IF NOT EXISTS idx_locale_settings_tenant ON localization_settings(tenant_id);
|
||||
|
||||
-- ============================================
|
||||
-- Phase 8 Task 4: AI 能力增强
|
||||
-- ============================================
|
||||
|
||||
-- 自定义模型表
|
||||
CREATE TABLE IF NOT EXISTS custom_models (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
model_type TEXT NOT NULL, -- custom_ner, multimodal, summarization, prediction
|
||||
status TEXT DEFAULT 'pending', -- pending, training, ready, failed, archived
|
||||
training_data TEXT DEFAULT '{}',
|
||||
hyperparameters TEXT DEFAULT '{}',
|
||||
metrics TEXT DEFAULT '{}',
|
||||
model_path TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
trained_at TIMESTAMP,
|
||||
created_by TEXT NOT NULL,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 训练样本表
|
||||
CREATE TABLE IF NOT EXISTS training_samples (
|
||||
id TEXT PRIMARY KEY,
|
||||
model_id TEXT NOT NULL,
|
||||
text TEXT NOT NULL,
|
||||
entities TEXT DEFAULT '[]', -- JSON: [{"start": 0, "end": 5, "label": "PERSON", "text": "..."}]
|
||||
metadata TEXT DEFAULT '{}',
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (model_id) REFERENCES custom_models(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 多模态分析表
|
||||
CREATE TABLE IF NOT EXISTS multimodal_analyses (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
project_id TEXT NOT NULL,
|
||||
provider TEXT NOT NULL, -- gpt-4-vision, claude-3, gemini-pro-vision, kimi-vl
|
||||
input_type TEXT NOT NULL, -- image, video, audio, mixed
|
||||
input_urls TEXT DEFAULT '[]',
|
||||
prompt TEXT NOT NULL,
|
||||
result TEXT DEFAULT '{}',
|
||||
tokens_used INTEGER DEFAULT 0,
|
||||
cost REAL DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 知识图谱 RAG 配置表
|
||||
CREATE TABLE IF NOT EXISTS kg_rag_configs (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
project_id TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
description TEXT,
|
||||
kg_config TEXT DEFAULT '{}', -- 知识图谱配置
|
||||
retrieval_config TEXT DEFAULT '{}', -- 检索配置
|
||||
generation_config TEXT DEFAULT '{}', -- 生成配置
|
||||
is_active INTEGER DEFAULT 1,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- RAG 查询记录表
|
||||
CREATE TABLE IF NOT EXISTS rag_queries (
|
||||
id TEXT PRIMARY KEY,
|
||||
rag_id TEXT NOT NULL,
|
||||
query TEXT NOT NULL,
|
||||
context TEXT DEFAULT '{}',
|
||||
answer TEXT NOT NULL,
|
||||
sources TEXT DEFAULT '[]',
|
||||
confidence REAL DEFAULT 0,
|
||||
tokens_used INTEGER DEFAULT 0,
|
||||
latency_ms INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (rag_id) REFERENCES kg_rag_configs(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 智能摘要表
|
||||
CREATE TABLE IF NOT EXISTS smart_summaries (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
project_id TEXT NOT NULL,
|
||||
source_type TEXT NOT NULL, -- transcript, entity, project
|
||||
source_id TEXT NOT NULL,
|
||||
summary_type TEXT NOT NULL, -- extractive, abstractive, key_points, timeline
|
||||
content TEXT NOT NULL,
|
||||
key_points TEXT DEFAULT '[]',
|
||||
entities_mentioned TEXT DEFAULT '[]',
|
||||
confidence REAL DEFAULT 0,
|
||||
tokens_used INTEGER DEFAULT 0,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 预测模型表
|
||||
CREATE TABLE IF NOT EXISTS prediction_models (
|
||||
id TEXT PRIMARY KEY,
|
||||
tenant_id TEXT NOT NULL,
|
||||
project_id TEXT NOT NULL,
|
||||
name TEXT NOT NULL,
|
||||
prediction_type TEXT NOT NULL, -- trend, anomaly, entity_growth, relation_evolution
|
||||
target_entity_type TEXT,
|
||||
features TEXT DEFAULT '[]',
|
||||
model_config TEXT DEFAULT '{}',
|
||||
accuracy REAL,
|
||||
last_trained_at TIMESTAMP,
|
||||
prediction_count INTEGER DEFAULT 0,
|
||||
is_active INTEGER DEFAULT 1,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (tenant_id) REFERENCES tenants(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (project_id) REFERENCES projects(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- 预测结果表
|
||||
CREATE TABLE IF NOT EXISTS prediction_results (
|
||||
id TEXT PRIMARY KEY,
|
||||
model_id TEXT NOT NULL,
|
||||
prediction_type TEXT NOT NULL,
|
||||
target_id TEXT,
|
||||
prediction_data TEXT DEFAULT '{}',
|
||||
confidence REAL DEFAULT 0,
|
||||
explanation TEXT,
|
||||
actual_value TEXT,
|
||||
is_correct INTEGER,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
FOREIGN KEY (model_id) REFERENCES prediction_models(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
-- AI 能力增强相关索引
|
||||
CREATE INDEX IF NOT EXISTS idx_custom_models_tenant ON custom_models(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_custom_models_type ON custom_models(model_type);
|
||||
CREATE INDEX IF NOT EXISTS idx_custom_models_status ON custom_models(status);
|
||||
CREATE INDEX IF NOT EXISTS idx_training_samples_model ON training_samples(model_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_multimodal_tenant ON multimodal_analyses(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_multimodal_project ON multimodal_analyses(project_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_kg_rag_tenant ON kg_rag_configs(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_kg_rag_project ON kg_rag_configs(project_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_rag_queries_rag ON rag_queries(rag_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_smart_summaries_tenant ON smart_summaries(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_smart_summaries_project ON smart_summaries(project_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_prediction_models_tenant ON prediction_models(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_prediction_models_project ON prediction_models(project_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_prediction_results_model ON prediction_results(model_id);
|
||||
|
||||
Reference in New Issue
Block a user