本文通过一个具体的示例,解析如何利用 MCP(Multi-turn Conversation Protocol)和 OpenAI API 中的 Function Call 功能,实现一个完整的多轮对话流程。示例场景模拟用户预订机票的需求,从解析意图、查询航班、用户选择到最终预订确认,每一步都展示了如何将 Function Call 与多轮对话结合起来。
场景描述
用户请求:
“帮我订一张明天从北京到上海的机票。”
系统需要完成的任务:
- 解析用户意图:确认用户请求后,需要调用
search_flights
查询航班信息。 - 查询航班信息:调用
search_flights
API,获取可选航班列表。 - 多轮交互:展示航班选项,等待用户选择具体航班。
- 预订航班:根据用户选择,调用
book_ticket
API 进行预订。 - 发送确认信息:调用
send_confirmation
API,向用户发送预订成功的确认信息。
系统架构
在本示例中,系统主要分为两个层面:
-
多轮对话管理层(MCP)
负责解析用户意图、维护上下文和拆解复杂任务,将任务分解为多个步骤。 -
Function Call 层
每个步骤中,系统使用 OpenAI API 的 Function Call 功能调用相应的 API(例如search_flights
、book_ticket
和send_confirmation
),获取精确数据后返回给用户。
整体流程图
下面的 Mermaid 序列图展示了整个多轮对话和 API 调用的流程: