Skip to main content

sz_orm_ai/
lib.rs

1//! # SZ-ORM AI — AI 能力包
2//!
3//! 提供自然语言转 SQL(NL2SQL)、检索增强生成(RAG)、文本 embedding 与向量搜索能力,
4//! 内置安全防护与 OpenAI 兼容 API 客户端(启用 `real` feature 时编译)。
5//!
6//! ## 主要模块
7//!
8//! - [`embedding`] — 文本向量化接口
9//! - [`nl2sql`] — 自然语言到 SQL 的转换
10//! - [`rag`] — 检索增强生成
11//! - [`vector`] — 向量存储与相似度检索
12//! - [`safety`] — 输入安全检查
13//! - [`sql_sanitizer`] — SQL 敏感字面量脱敏
14//!
15//! 启用 `llm-optimizer` feature 时额外提供:
16//! - [`explain_parser`] — EXPLAIN 执行计划解析(5 方言)
17//! - [`query_plan_optimizer`] — 统一查询计划优化器(规则 + LLM)
18
19pub mod embedding;
20pub mod error;
21pub mod nl2sql;
22pub mod rag;
23pub mod safety;
24pub mod sql_sanitizer;
25pub mod vector;
26
27pub use embedding::*;
28pub use error::AiError;
29pub use nl2sql::*;
30pub use rag::*;
31pub use safety::*;
32pub use sql_sanitizer::SqlSanitizer;
33pub use vector::*;
34
35// 仅在启用 `real` feature 时编译真实 OpenAI 兼容 API 客户端
36#[cfg(feature = "real")]
37pub mod real_embedding;
38#[cfg(feature = "real")]
39pub use real_embedding::OpenAIEmbeddingClient;
40
41// 仅在启用 `llm-optimizer` feature 时编译查询计划优化器模块
42#[cfg(feature = "llm-optimizer")]
43pub mod explain_parser;
44#[cfg(feature = "llm-optimizer")]
45pub mod query_plan_optimizer;
46#[cfg(feature = "llm-optimizer")]
47pub use explain_parser::{
48    ExplainPlanParser, ExplainSignal, MssqlExplainParser, MySqlExplainParser, OracleExplainParser,
49    PgExplainParser, SqliteExplainParser,
50};
51#[cfg(feature = "llm-optimizer")]
52pub use query_plan_optimizer::{
53    HintSource, OptimizerConfig, UnifiedOptimizationHint, UnifiedQueryAnalysis,
54    UnifiedQueryOptimizer,
55};
56
57// v3.3.0 M4:AI 自然语言查询增强
58// 共享类型模块(任一 AI 增强 feature 启用时编译)
59#[cfg(any(
60    feature = "ai-nl2sql-enhanced",
61    feature = "ai-index-advisor",
62    feature = "ai-rewrite-advisor"
63))]
64pub mod advice_common;
65#[cfg(any(
66    feature = "ai-nl2sql-enhanced",
67    feature = "ai-index-advisor",
68    feature = "ai-rewrite-advisor"
69))]
70pub use advice_common::{AdviceSource, AdviceType, AiAdviceAuditRecord, BenefitEstimate};
71
72// 查询意图分析模块
73#[cfg(feature = "ai-nl2sql-enhanced")]
74pub mod intent_analysis;
75#[cfg(feature = "ai-nl2sql-enhanced")]
76pub use intent_analysis::{
77    IntentAnalysisResult, IntentAnalyzer, IntentError, OrderDirection, OrderField, Pagination,
78    ParameterizedCondition, QueryIntent, RiskLevel,
79};
80
81// 自动索引建议模块
82#[cfg(feature = "ai-index-advisor")]
83pub mod index_advisor;
84#[cfg(feature = "ai-index-advisor")]
85pub use index_advisor::{
86    IndexAdvisor, IndexError, IndexSuggestion, IndexType, QueryPattern, SlowQueryLog,
87};
88
89// 查询重写建议模块
90#[cfg(feature = "ai-rewrite-advisor")]
91pub mod rewrite_advisor;
92#[cfg(feature = "ai-rewrite-advisor")]
93pub use rewrite_advisor::{
94    EquivalenceProof, RewriteAdvisor, RewriteError, RewriteSuggestion, TransformType,
95};