Teams AI 库
Teams AI 库是一个以 Teams 为中心的界面,用于集成基于 GPT 的语言模型和用户意向引擎。 它通过减少编写和维护复杂聊天机器人逻辑的需要来简化开发过程。
可以利用预生成的可重用代码片段,快速生成智能应用。 这种功能驱动的方法使你能够专注于业务逻辑,而不是学习Microsoft Teams 对话框架的错综复杂。
为何使用 Teams AI 库?
Teams AI 库使应用能够让用户参与自然和对话式交互。 这些交互可以引导到特定的应用功能或任务,使应用能够更好地了解和处理用户意向。
可以依靠 Teams ((如 Power Virtual Agents 或 Bot Framework) )中的内置聊天机器人功能来处理自然语言处理的复杂性。
可以利用 Teams AI 库来:
- 使用预生成的模板添加 Teams 应用功能。
- 使用提示工程等技术向机器人添加聊天体验等ChatGPT,而内置的安全功能(如审查)可帮助确保机器人始终以适当的方式做出响应。
- 使用库的规划引擎,该引擎允许模型识别用户的意向,然后将该意向映射到你实现的操作。
- 添加对所选任何 LLM 的支持,而无需更改机器人逻辑。
Teams AI 库支持 JavaScript 和 C#。 它允许你利用 AI 功能为 Microsoft Teams 生成智能、用户友好的应用程序。 该库提供了使用最适合项目需求的工具和语言创建 AI 支持体验的灵活性,并确保为 Teams 用户获得最佳结果。
Teams AI 库功能如何使我受益?
Teams AI 库提供各种功能,可简化自定义引擎代理的开发。
作为开发人员,我想构建一个智能轻型机器人,以响应用户的命令控制光线。 我正在考虑使用 Teams AI 库,因为它的功能可以使生成自定义引擎代理变得轻而易举。 我希望我的 AI 驱动的轻型机器人能够改善用户体验,并让他们参与进来。
如何使用 Teams AI 库来确保自定义引擎代理顺利运行并为用户提供有趣且交互式的体验?
本地化
Teams AI 库使用 OpenAI 的 GPT 模型进行本地化。 任何语言的用户输入都转换为意向、实体和操作。 此方法无需维护本地化记录。
LLM 模块化
LLM 使用潜在变量生成一致且多样化的自然语言文本。 Teams AI 库使用 OpenAI 的 GPT 模型,但它允许你与任何 LLM 交换它,而无需更改机器人逻辑。 这意味着你可以将应用的内容保留在公共领域之外,并且仅限于首选 LLM 模型。
负责任的 AI
Teams AI 库有助于构建具有审核挂钩、对话扫描和反馈循环的对话应用。 它支持低代码和复杂方案。 该库通过 AI 构造扩展了功能,用于自然语言建模、用户意向、个性化和自动上下文感知对话。
用于将意向映射到操作的预测引擎
操作和预测的简单接口允许机器人在需要时做出反应。 环境状态允许机器人了解意向、使用业务逻辑提示并生成响应。 例如,如果用户外出,需要汇总线程,Teams AI 库:
- 将意向理解为摘要。
- 使用提示随时间推移进行汇总,重点介绍用户的交互。
- 提供用于汇总聊天内容的操作。
操作Planner
操作Planner是调用 LLM 的main组件,包括用于增强和自定义模型的多项功能。 模型插件简化了为规划器配置所选 LLM 的流程,并随附了同时支持 OpenAI 和 Azure OpenAI LLM 的 OpenAIModel。 为 Llama-2 等其他模型添加更多插件,以便灵活地为用例选择最佳模型。 内部反馈循环通过修复来自 LLM 的低于标准响应来提高可靠性。
助手 API
注意
Teams AI 库支持 公共开发人员预览版 中的 OpenAI 和 Azure OpenAI 助手 API,以便你开始构建智能助手。
借助助手 API,可以创建功能强大的 AI 助手,能够执行难以使用传统方法编码的任务。 它提供对 OpenAI GPT 系统的编程访问,用于从聊天到图像处理、音频处理和构建自定义助手等任务。 该 API 支持自然语言交互,以便开发能够以对话方式理解和响应的助手。
按照助手 API 快速入门指南创建专门从事数学的助手。
提示管理
动态提示管理允许机器人根据可用的令牌预算和数据源或扩充来调整发送到 LLM 的提示的大小和内容。 它通过确保提示不包含不相关的信息或超出上下文窗口来提高提示的效率和准确性。
增大
使用增强功能增强 AI 模型的响应。 使用不同的模式定制模型,以获取准确性和所需结果:
- 检索增强生成 (RAG) :合并实时动态外部数据源,以获取最新、准确的结果,而无需重新训练。
- 独白:使用完整架构验证和自动修复为多步骤操作创建 AutoGPT 样式的代理。
- 序列:允许 AI 助手返回具有架构可靠性验证的操作序列。
- 函数:使用可自定义的用户定义函数生成结构化响应。 操作Planner评估和修复模型响应的可靠性与一致性。
矢量数据源
矢量数据库旨在存储矢量,以实现有效的搜索。 它们返回与用户查询最相关的结果。 它们允许 RAG 使用 LLM 和自定义数据或特定于域的信息。 这包括从自定义数据源中提取相关信息,并通过即时工程将其集成到模型请求中。 在向 LLM 发送请求之前,用户输入将转换为嵌入,并使用矢量搜索技术在数据库中查找最相似的嵌入。
增强的推理
Teams AI 库提供集成的事实核查系统来处理机器人幻觉。 当用户与 AI 助手交互时,它会提示机器人在发送之前认真评估其潜在响应。 机器人识别不准确之处并更正其答案,从而提高准确性、质量和上下文相关性。 高级推理可确保 AI 助手成为可靠的信息和判断来源,从而建立对产品的信任并提高用户参与度。
反馈循环
反馈循环允许机器人验证和更正语言模型的输出。 它检查模型返回的计划或独白的结构和参数,并提供有关错误或缺失信息的反馈。 模型尝试修复其错误并返回有效的输出。 反馈循环可以提高 AI 系统的可靠性和准确性,并减少幻觉或无效操作的几率。
汇报 Teams AI 库
下表列出了 Teams AI 库的更新:
类型 | 说明 | .NET | JavaScript | Python |
---|---|---|---|---|
OpenAIModel | OpenAIModel 类允许使用单个组件调用 OpenAI 和 Azure OpenAI。 可以为其他模型类型(如 Llama2)定义新模型。 | ✔️ | ✔️ | ✔️ |
嵌入 | OpenAIEmbeddings 类允许使用 OpenAI 或 Azure OpenAI 生成嵌入。 可以为 OSS 嵌入等内容定义新的嵌入。 | ❌ | ✔️ | ✔️ |
提示 | 新的基于对象的提示系统可实现更好的令牌管理,并减少溢出模型的上下文窗口的可能性。 | ✔️ | ✔️ | ✔️ |
增大 | 通过让开发人员将命名的扩充添加到提示符中,扩充简化了提示工程任务。 仅 functions 支持 、 sequence 和 monologue 样式扩充。 |
✔️ | ✔️ | ✔️ |
数据源 | 借助新的 DataSource 插件,可以轻松地将 RAG 添加到任何提示。 可以将命名数据源注册到规划器,然后指定要扩充提示的数据源的名称。 | ❌ | ✔️ | ✔️ |
使用 AI SDK 的函数调用
在 AI SDK 中实现的函数调用解锁了许多功能,使 AI 模型能够无缝生成准确的响应。 它支持与外部工具的直接连接,从而使 AI 更加强大。 这些功能包括执行复杂计算、检索重要数据、创建更流畅的工作流以及启用与用户的动态交互。
注意
不支持结构化输出。
若要将函数调用与聊天完成 API 配合使用,请执行以下操作:
设置规划器,其中默认提示使用工具扩充。 更新机器人应用的以下文件之一:
- 对于 JavaScript 应用:更新
index.ts
。 - 对于 C# 机器人应用:更新
Program.cs
。 - 对于 Python 应用:更新
bot.py
。
以下代码片段演示如何设置
ToolsAugmentation
类:const planner = new ActionPlanner({ model, prompts, defaultPrompt: 'tools' });
- 对于 JavaScript 应用:更新
在
config.json
文件中指定工具扩充。{ "schema": 1.1, "description": "", "type": "", "completion": { + "tool_choice": "auto", + "parallel_tool_calls": true, }, + "augmentation": { + "augmentation_type": "tools" + } }
指定文件中的所有
actions.json
,function definitions
该文件位于 文件夹中prompts
。 确保遵循架构,以避免在 LLM 调用操作时出错。[{ "name": "CreateList", "description": "Creates a list" }]
在课堂中
application
注册 。handlers
- 每个处理程序都是在特定事件发生时运行的回调函数。 函数调用处理程序执行代码以响应 事件。
- 函数调用必须返回字符串作为函数调用的输出。
- 当模型请求调用任何函数时,这些函数将
DO
映射到 中的命令,Plan
并在 AI 类run
函数中调用。 然后,输出将返回到具有工具调用 ID 的模型,以显示已使用这些工具。
以下代码片段演示如何注册
handlers
:app.ai.action("createList", async (context: TurnContext, state: ApplicationTurnState, parameters: ListAndItems) => { // Ex. create a list with name "Grocery Shopping". ensureListExists(state, parameters.list); return `list created and items added. think about your next action`; });
启用工具选项
可以启用以下工具选项:
启用工具选择:允许模型通过启用工具选择来选择它必须调用的函数。
config.json
在 文件中:-
required
设置为tool_choice
以强制模型始终至少调用一个函数。 - 使用特定函数的定义将 设置为
tool_choice
特定函数。 -
none
设置为tool_choice
以禁用该工具。
的
tool_choice
默认值为auto
。 它使模型能够选择它必须调用的函数。-
切换并行工具调用:并行执行工具速度更快,并减少对 API 的来回调用数。 在
config.json
文件中,可以将 设置为parallel_tool_calls
true
或false
。 默认情况下,parallel_tool_calls
参数设置为true
。
以下代码片段演示如何启用工具选择和切换并行工具调用:
{
"schema": 1.1,
"description": "",
"type": "",
"completion": {
+ "tool_choice": "auto",
+ "parallel_tool_calls": true,
},
+ "augmentation": {
+ "augmentation_type": "tools"
+ }
}
代码示例
示例名称 | Description | .NET | Node.js | Python |
---|---|---|---|---|
回显机器人 | 此示例演示如何使用 Bot Framework 和 Teams AI 库将对话流合并到 Microsoft Teams 应用程序中。 | View | View | View |
搜索命令消息扩展 | 此示例演示如何使用 Bot Framework 和 Teams AI 库将基本消息扩展应用合并到 Microsoft Teams 应用程序中。 | View | View | View |
Typeahead 机器人 | 此示例演示如何使用 Bot Framework 和 Teams AI 库将自适应卡片中的键入头搜索功能合并到 Microsoft Teams 应用程序中。 | View | View | View |
使用 AI 的对话机器人:Teams Chef | 此示例演示如何将聊天机器人行为合并到 Microsoft Teams 中。 该机器人旨在允许 GPT 代表它促进对话,仅使用自然语言提示文件来引导聊天。 | View | View | |
消息扩展:GPT-ME | 此示例是Microsoft Teams 的消息扩展,它使用 text-davinci-003 模型来帮助用户生成和更新帖子。 | View | View | View |
轻型机器人 | 此示例演示了 Microsoft Teams 中更复杂的聊天机器人行为。 机器人的构建允许 GPT 代表它促进对话,并手动定义的响应,并将用户意向映射到用户定义的操作。 | View | View | View |
列出机器人 | 此示例演示如何将聊天机器人行为合并到 Microsoft Teams 中。 机器人利用 AI 的强大功能来简化工作流,使日常任务有序,并展示操作链功能。 | View | View | View |
DevOps 机器人 | 此示例演示如何在 Microsoft Teams 中合并聊天机器人行为。 机器人使用 gpt-3.5-turbo 模型与 Teams 用户聊天并执行 DevOps 操作,例如创建、更新、会审和汇总工作项。 | View | View | View |
20 个问题 | 此示例展示了语言模型的不可思议的功能和用户意向的概念。 挑战你作为人类玩家的技能,并尝试在 20 个问题内猜测一个秘密,而 AI 支持的机器人将回答你有关机密的查询。 | View | View | View |
数学导师助手 | 此示例演示如何使用 OpenAI 的助手 API 创建对话体验。 它使用 OpenAI 的代码解释器工具创建数学专家助手。 | View | View | View |
食品订购助手 | 此示例演示如何创建使用工具调用机器人代码中的操作的对话助手。 这是一家名为“酒吧”的虚构餐厅的食品订购助手,能够在用户点餐时与用户进行复杂的互动。 | View | View | View |