Spring AI Alibaba
核心概念
| 概念 | 描述 |
| 模型(Model) | AI模型是处理和生成信息的算法,通常模仿人类认知功能,能够进行多种任务,包括文本和图像的生成。 |
| 提示(Prompt) | 指导AI生成特定输出的文本,不仅仅是输入字符串,还包括多种角色配置,例如系统角色和用户角色。 |
| 嵌入(Embedding) | 将文本、图像或视频转换为数值表示(向量),旨在捕捉对象之间的关系,有助于理解内容的语义。 |
| Token | AI模型的基本工作单元,输入时将单词转换为token,输出时则转换回单词,token数量影响使用费用和上下文窗口。 |
| 结构化输出(Structured Output) | AI模型的输出通常为字符串,需专门设计Prompt使输出符合应用需求,并将结果转换为适合的数据结构。 |
| 微调(Fine Tuning) | 通过调整模型的内部权重以定制AI,但过程复杂且资源消耗大。 |
| 提示词填充(Prompt Stuffing) | 将客户数据嵌入到Prompt中,以便模型能够使用,但需要管理令牌限制,确保数据有效嵌入。 |
| 函数调用(Function Calling) | 允许将自定义用户函数注册到大型语言模型,连接外部API以实现模型的实时数据访问和处理。 |
| 检索增强生成(RAG) | 为模型提供额外的知识输入,以辅助模型更好地回答问题,涉及从文档读取信息并写入矢量数据库的ETL流程。 |
| 评估(Evaluation) | 分析AI系统输出准确性的方法,确保响应符合用户意图,采用相关性、连贯性和事实正确性等指标进行评估。 |
# 嵌入模型 (Embedding Model)
| 类型 | 术语 | 说明 |
| 概念 | 嵌入(Embedding) | 将文本、图像和视频转换为向量(Vectors)的过程,这些向量是浮点数数组,可以捕捉内容的含义。 |
| 概念 | 向量(Vectors) | 表示嵌入的浮点数数组,长度称为维度(Dimensionality),用于描述输入数据的多维特征。 |
| 概念 | 嵌入模型(EmbeddingModel) | 进行嵌入的模型,实现了特定的接口以将文本及其他输入转换为数值向量,支持不同的嵌入技术和模型的切换,具有可移植性和简单性。 |
| 名词 | EmbeddingRequest | 用于请求嵌入的模型请求类,接受文本对象的列表和可选的嵌入请求参数。 |
| 名词 | EmbeddingResponse | 表示嵌入的响应类,保存多个Embedding实例及相关元数据,提供对AI模型输出的结构化表示。 |
| 名词 | Embedding | 表示一个嵌入向量的实例,存储结果向量数据,包含来自单个文本输入的表示。 |
| 动词 | embed | 将文本或文档内容转化为向量的核心方法。提供多种重载形式以支持单个字符串、文档或文本批量的嵌入。 |
| 动词 | call | 在EmbeddingModel接口中调用的主要方法,用于执行嵌入操作并返回相应的EmbeddingResponse。 |
| 动词 | configure | 设置与DashScope连接的API密钥及其他配置信息,支持通过属性或环境变量的方式进行设置。 |
| 动词 | override | 在运行时通过指定的请求覆盖默认选项,以自定义嵌入请求的行为。 |
| 动词 | inject | 在Spring Boot应用中将EmbeddingModel示例注入到控制器等服务类中。 |
# 工具 以下是从文档中提取的核心概念、名词和动词的详细表格,包括解释和说明:
| 类型 | 术语 | 说明 |
| 概念 | 嵌入(Embedding) | 将文本、图像和视频转换为浮点数数组(向量),用于捕捉这些内容的语义和含义。 |
| 概念 | 嵌入模型(EmbeddingModel) | 进行嵌入的模型,提供将文本或文档转换为数值向量的方法,确保可移植性和简化用户操作,便于开发者使用。 |
| 概念 | 工具(Tool) | 大型语言模型(LLM)能够在响应中调用的特定功能,如数学计算、网页搜索或API调用。 |
| 概念 | 功能调用(Function Calling) | 允许LLM在合适的上下文中主动调用定义好的工具,执行特定任务,增强互动能力。 |
| 名词 | EmbeddingRequest | 请求嵌入的类,接收待嵌入的文本列表和可选的嵌入请求选项,用于构造请求。 |
| 名词 | EmbeddingResponse | 嵌入响应类,保存AI模型的输出数据,包括多个嵌入向量实例及其相关的元数据。 |
| 名词 | Embedding | 表示一个嵌入向量的实例,包含从单个文本输入生成的数值向量和相关信息。 |
| 名词 | EmbeddingOptions | 嵌入请求的可选配置参数,用于影响嵌入模型的行为和结果。 |
| 名词 | FunctionCallbackWrapper | Spring AI中用于包装和注册Java函数以供LLM调用的工具,简化了函数与AI模型的交互。 |
| 动词 | embed | 将文本或文档内容转化为向量的主要方法,支持不同类型的输入,如字符串或文档对象。 |
| 动词 | call | 在EmbeddingModel接口中执行嵌入请求的主要方法,返回相应的EmbeddingResponse。 |
| 动词 | execute | 执行特定的工具调用,通常表示LLM根据用户请求执行工具的功能。 |
| 动词 | configure | 设置嵌入模型和API密钥等相关配置,确保模型能够正常运行。 |
| 动词 | override | 在运行时通过请求参数覆盖默认选项,允许开发者自定义嵌入请求的行为。 |
| 动词 | inject | 将EmbeddingModel实例注入到Spring Boot应用中,使其可在控制器或服务类中使用。 |
| 动词 | register | 定义和注册自定义函数,使得LLM能够识别和调用这些函数。 |
| 动词 | describe | 为函数提供描述信息,帮助模型理解何时调用该函数,提升调用准确性。 |
| 动词 | respond | 模型在调用工具后,返回处理结果给用户。 |
记忆
| 类型 | 术语 | 说明 |
| 概念 | 嵌入(Embedding) | 将文本、图像和视频转换为称为向量(Vectors)的浮点数数组,这些向量旨在捕捉文本、图像和视频的语义和含义。 |
| 概念 | 嵌入模型(EmbeddingModel) | 进行嵌入的模型,提供将文本或文档转换为数值向量的接口,确保可移植性和简单性,便于开发者在不同嵌入模型之间切换。 |
| 概念 | 对话记忆(Conversational Memory) | 模型在与用户进行对话时,能够追踪、理解并利用先前对话上下文的能力,使对话体验更加自然和连贯。 |
| 概念 | 工具(Tool) | 允许大型语言模型(LLM)在必要时调用的功能,可包括网页搜索、API调用、数学计算等,帮助增强对话质量和复杂任务处理能力。 |
| 名词 | EmbeddingRequest | 请求嵌入的类,接收待嵌入的文本对象列表和可选的嵌入请求选项。 |
| 名词 | EmbeddingResponse | 嵌入响应类,保存多个嵌入实例和相关的元数据,是模型返回的输出结果。 |
| 名词 | Embedding | 表示一个具体的嵌入向量,包含从单个文本输入生成的数据和相关信息。 |
| 名词 | ChatMemory | 处理和存储对话上下文的组件,支持基于内存的对话记忆实现。 |
| 名词 | FunctionCallbackWrapper | 包装和注册Java函数以供LLM调用的工具,简化了函数与AI模型的交互;支持函数调用的具体实现和可重用性。 |
| 动词 | embed | 将文本或文档内容转化为向量的主要方法,例如 embed(String text) 或 embed(Document document)。 |
| 动词 | call | 在EmbeddingModel接口中执行嵌入请求的主要方法,返回相应的EmbeddingResponse。 |
| 动词 | prompt | 向LLM发送用户消息,并(在上下文中)可能导致相应工具调用的请求。 |
| 动词 | configure | 设置嵌入模型和API密钥等相关配置,以便确保模型能够正常运行和交互。 |
| 动词 | override | 在运行时通过请求参数覆盖默认选项,以实现对嵌入请求自定义行为。 |
| 动词 | register | 定义和注册自定义函数,使得LLM能够识别和调用这些函数,通过Spring简化层处理与AI模型的交互。 |
| 动词 | inject | 将EmbeddingModel实例注入到Spring Boot应用中,以便在控制器或服务类中使用嵌入功能。 |
| 动词 | execute | 执行由用户请求或系统调用定义的函数操作,为LLM提供解决方案。 |
提示词
| 类型 | 术语 | 说明 |
| 概念 | 对话记忆(Conversational Memory) | 指AI模型在与用户进行交互时,能够追踪和利用先前的对话上下文,使得对话更加自然和连贯。大模型能够根据之前的交流内容生成后续响应。 |
| 概念 | 提示词(Prompt) | 结构化的输入格式,引导AI生成特定输出。提示的设计和角色分配影响模型的响应质量。 |
| 概念 | 功能调用(Function Calling) | 允许模型在必要时调用外部工具或函数,以增强其能力,例如获取额外的信息或执行特定的操作。 |
| 名词 | Message | 封装了提示文本、元数据及消息类型(如用户、助手等)的接口,指示模型如何处理消息。 |
| 名词 | PromptTemplate | 用于管理和构建提示的类,促进结构化提示的生成并发送到AI模型处理。 |
| 名词 | ChatMemory | 管理对话上下文的组件,支持在对话中保持历史记录,开发者可以实现不同的存储解决方案,如内存、文件或Redis。 |
| 名词 | FunctionCallbackWrapper | 用于注册自定义函数的工具,使得这些函数可以在AI模型中被调用,增强模型的功能和表现。 |
| 名词 | Role | 在提示中定义不同消息的身份,包括系统角色、用户角色、助手角色和工具角色,各自承担不同的功能和上下文。 |
| 动词 | call | 执行请求并返回结果的方法,通常用于与AI模型进行交互以获取响应。 |
| 动词 | prompt | 向模型发送用户消息的操作,启动对话或请求信息。 |
| 动词 | configure | 设置与模型交互相关的参数,例如API密钥等配置选项。 |
| 动词 | register | 将工具或函数添加到模型中,使其可用于响应调用。 |
| 动词 | inject | 将模型实例注入到Spring Boot应用中以便管理。 |
| 动词 | create | 使用定义的输入生成新的对象或消息,通常用于提示或响应的创建。 |
| 动词 | execute | 执行特定功能或工具,这通常涉及到响应用户的请求或调用相关工具。 |
| 角色 | 系统角色(System Role) | 指导AI的行为和响应方式,设置解释用户输入的参数和规则。 |
| 角色 | 用户角色(User Role) | 代表用户输入的内容,例如提问或命令,构成AI响应的基础。 |
| 角色 | 助手角色(Assistant Role) | AI对用户输入的响应,确保对话的连贯性和上下文相关性,可能包含工具调用信息。 |
| 角色 | 工具角色(Tool Function Role) | 专注于响应工具的调用,提供附加信息,支持助手角色的功能。 |
文档检索
| 类型 | 术语 | 说明 |
| 概念 | 提示词(Prompt) | 引导AI模型生成特定输出的输入格式,提示的设计和措辞显著影响模型的响应。提示由多条消息组成,每条消息分配有特定的角色,提供结构化的上下文。 |
| 概念 | 对话记忆(Conversational Memory) | AI模型在交互中特别管理的上下文,以保持对话的连贯性。 |
| 概念 | 功能调用(Function Calling) | 允许AI模型在特定场景下调用外部工具增强其能力,执行特定功能(如获取数据、执行计算等)。 |
| 概念 | 文档检索(Document Retrieval) | 一种信息检索技术,旨在从未结构化或半结构化文档中快速找到与查询相关的信息,通常使用向量搜索。 |
| 名词 | Message | 封装提示文本、元数据和分类信息的接口,定义不同类别的消息在对话中的角色。 |
| 名词 | PromptTemplate | 用于创建和管理提示的类,促进结构化提示的生成。 |
| 名词 | Document | 表示一个文档片段,包含文本内容和相关的元数据,用于文档检索。 |
| 名词 | ChatModel | 处理用户查询并生成响应的模型接口,通常与提示结合使用。 |
| 名词 | Role | 消息在对话中的特定角色分类,包括系统角色、用户角色、助手角色和工具/功能角色。 |
| 名词 | API | 应用程序接口,定义了与AI系统交互的方式,包括访问文档检索和提示功能的接口。 |
| 动词 | call | 执行请求并返回相应结果的方法,通常在AI模型中使用。 |
| 动词 | retrieve | 从数据库或文档存储中提取相关信息。 |
| 动词 | configure | 设置与AI或文档检索系统交互的参数和选项。 |
| 动词 | create | 生成新对象或实例的方法,如创建提示或消息对象。 |
| 动词 | inject | 在应用中插入依赖项,通常用于设置模型或检索器。 |
| 动词 | register | 将新功能、工具或组件注册到系统中,使其可用于后续调用。 |
| 动词 | execute | 执行某项具体任务或请求的操作,通常涉及函数调用。 |
| 关键词 | Embeddings | 将查询问题转化为向量的表示形式,用于信息检索中的相似性搜索。 |
| 关键词 | API-KEY | 用于访问和调用API的密钥,需要在应用配置中设置。 |
| 关键词 | DashScope | 指阿里云的文档检索平台,提供云端服务。 |
| 关键词 | Auto-configuration | 通过框架自动配置依赖项的功能,简化了开发者的设置过程。 |
| 关键词 | Spring Boot | 基于Spring开发的框架,为Java开发提供便利,支持快速开发和自动配置。 |