图QL @ conversation 变形器
这个 @conversation 变压器是一个强大的工具,用于在您 AWS AppSync API 内部快速并方便地创建AI-动力的对话路由. 这个变压器可以发挥大语言模型的能力,在您GraphQL schema中实现动态的,有上下文意识的对话.
目录
指令定义
这个 @conversation 指令的定义如下:
directive @conversation(
aiModel: String!
systemPrompt: String!
functionName: String
tools: [ToolMap]
inferenceConfiguration: ConversationInferenceConfiguration
) on FIELD_DEFINITION
input ToolMap {
name: String
description: String
}
input ConversationInferenceConfiguration {
maxTokens: Int
temperature: Float
topP: Float
}
使用量
用来使用 @conversation 指令,将其添加到您的 GraphQL 计划中的一个字段。 此字段应为类型 ConversationMessage 并且应当成为 Mutation 类型.
type Mutation {
sendMessage(conversationId: ID!, content: String!): ConversationMessage
@conversation(aiModel: "anthropic.claude-3-haiku-20240307-v1:0", systemPrompt: "You are a helpful AI assistant.")
}
要找到必要的 GraphQL 类型与 @conversation 指令,参见 src/graphql-types/conversation-schema-types.ts。 。 。 .
配置选项
这个 @conversation 指令接受以下配置选项:
aiModel(需要):指定用于生成响应的AI模型.systemPrompt(需要):定义设定AI模型上下文的初始快取.functionName(可选):指定一个自定义的Lambda函数来处理对话逻辑.tools(可选) : AI在对话中可以使用的一系列工具配置.inferenceConfiguration(可选) : 用参数调整AI模型的行为maxTokens, (中文(简体) ),temperature,以及topP。 。 。 .
生成资源
当你使用 @conversation 指令,变压器生成数个AWS资源,支持对口功能:
-
迪纳摩DB 表格数 :
- 存储对话会话的表格
- 单个信件存储表
-
App同步解析器 :
- 对话的管道解析器突变
- 助理反应的解析器
- 实时更新的订阅解析器
-
Lambda 函数 :
- 默认的对话处理器( 如果没有自定义)
functionName(已提供)
- 默认的对话处理器( 如果没有自定义)
-
IAM 作用和政策:
- AppSync 与 DynamoDB 和 Lambda 互动的必要权限
-
AppSync 数据来源 :
- DynamoDB 用于交谈和信件表格的数据源
- 对话处理器的 Lambda 数据源
实例
基本用途
type Mutation {
chat(conversationId: ID!, message: String!): ConversationMessage
@conversation(
aiModel: "anthropic.claude-3-haiku-20240307-v1:0"
systemPrompt: "You are a friendly AI assistant. Respond to user queries in a helpful and concise manner."
)
}
高级使用工具和推论配置
type Mutation {
customerSupport(conversationId: ID!, inquiry: String!): ConversationMessage
@conversation(
aiModel: "anthropic.claude-3-haiku-20240307-v1:0"
systemPrompt: "You are a customer support AI. Help users with their product inquiries and issues."
tools: [
{ name: "getProductInfo", description: "Retrieves detailed information about a product" }
{ name: "checkOrderStatus", description: "Checks the status of a customer's order" }
]
inferenceConfiguration: { maxTokens: 500, temperature: 0.7, topP: 0.9 }
)
}
最佳做法
-
工艺清理系统提示:系统提示设置对话路线的基调和上下文. 说得具体点,配合你的用法.
-
使用适当的AI模型: 选择适合应用程序在能力和响应时间方面的需要的AI模型.
-
执行错误处理: 总是处理潜在的错误客户端-侧码.
-
监测和优化:定期审查与您对话路线相关的性能和成本.
解决问题
如果在使用时遇到问题 @conversation 变压器,考虑如下:
-
检查您的Schema:确保您的 GraphQL 方案有效
@conversation指令的使用正确. -
校验 AWS 资源: 请检查所有所需的 AWS 资源是否已成功创建 .
-
审查日志:检查 Cloud Watch 日志检查您 Lambda 函数或 AppSync 解析器中的任何错误 .
-
递增测试:在添加像自定义工具这样的复杂特性时,对每个添加进行渐进测试,以隔离潜在的问题.