AI 函数服务使用及示例
本文档介绍 seekdb 中 AI Function 的相关功能。
AI 函数通过 SQL 表达式,将 AI 模型能力直接集成到数据库内的数据处理中。它极大地简化了利用 AI 大模型进行数据提取、分析、总 结和保存等操作,是当前数据库和数据仓库领域的重要新特性。seekdb 通过 DBMS_AI_SERVICE 包提供 AI 模型和端点管理,并新增了几个内置 AI 函数表达式,并支持通过视图监控 AI 模型调用情况。
前提条件
在使用 AI 函数服务之前,需要确保你已拥有相关权限。详细权限请参见 AI 函数服务权限。
注意事项
- 混合搜索(Hybrid Search)依赖 AI 函数服务的模型管理和嵌入(embedding)功能。在删除 AI 模型时,需检查其是否被混合搜索引用,以避免潜在问题。
AI 模型管理
DBMS_AI_SERVICE 包提供了 AI 模型和端点管理能力,支持以下操作:
| 操作 | 描述 |
|---|---|
| CREATE_AI_MODEL | 创建一个 AI 模型对象。 |
| DROP_AI_MODEL | 删除一个 AI 模型对象。 |
| CREATE_AI_MODEL_ENDPOINT | 创建一个 AI 模型服务端点对象。 |
| ALTER_AI_MODEL_ENDPOINT | 修改一个 AI 模型服务端点对象。 |
| DROP_AI_MODEL_ENDPOINT | 删除一个 AI 模型服 务端点对象。 |
你可以通过调用该系统包,实现在 seekdb 内部直接管理 AI 模型和端点,而不需要依赖外部服务。详细参数和语法请参考 DBMS_AI_SERVICE 包的相关文档。
AI 模型调用监控
seekdb 支持通过视图查看和监控 AI 模型信息及调用情况:
- CDB/DBA_OB_AI_MODELS:查看 AI 模型信息。
- CDB/DBA_OB_AI_MODEL_ENDPOINTS:监控 AI 模型调用情况。
AI 函数表达式
seekdb 支持以下 AI 函数表达式,实现直接通过 SQL 语句在 seekdb 内部调用 AI 模型,简化了调用流程:
| 名称 | 描述 |
|---|---|
AI_COMPLETE | 通过调用指定文本生成大模型处理提示词和数据信息,并解析处理结果。 |
AI_PROMPT | 用于构建和格式化提示词,支持动态插入数据。 |
AI_EMBED | 通过调用嵌入模型(Embedding Model)将文本数据转换为向量数据。 |
AI_RERANK | 通过调用重排序模型(Rerank Model)根据提示词对文本进行相似度排序。 |
使用 AI 函数表达式时,需要确保数据库中已注册 AI 模型及端点信息。
AI_COMPLETE 和 AI_PROMPT
AI_COMPLETE 函数通过 model_key 指定一个已注册的文本生成大模型(LLM),对用户提供的提示词(prompt)和数据进行处理,并返回大模型生成的文本信息。用户可以在 prompt 参数中自定义组织提示词和数据库内的数据格式。这种方式不仅支持对文本数据进行多样化处理,还能在数据库内部实现批量处理,有效避免了数据在数据库与大模型之间来回拷贝的开销。
考虑到许多 AI 应用场景中,提示词往往具有高度结构化特征,需要动态注入具体数据,而每次手动使用 CONCAT 等函数拼接提示词和输入内容,不仅开发成本高,还容易写错导致格式问题。为了支持提示词复用和提示词与数据动态组合的需求,seekdb 提供了 AI_PROMPT 函数。AI_PROMPT 将提示词从"静态文本"升级为"可复用、可参数化"