本文通过一个具体的示例,解析如何利用 MCP(Multi-turn Conversation Protocol)和 OpenAI API 中的 Function Call 功能,实现一个完整的多轮对话流程。示例场景模拟用户预订机票的需求,从解析意图、查询航班、用户选择到最终预订确认,每一步都展示了如何将 Function Call 与多轮对话结合起来。
用户请求:
“帮我订一张明天从北京到上海的机票。”
系统需要完成的任务:
search_flights
查询航班信息。search_flights
API,获取可选航班列表。book_ticket
API 进行预订。send_confirmation
API,向用户发送预订成功的确认信息。在本示例中,系统主要分为两个层面:
search_flights
、book_ticket
和 send_confirmation
),获取精确数据后返回给用户。
下面的 Mermaid 序列图展示了整个多轮对话和 API 调用的流程:
系统首先接收到用户请求后,通过预设的系统提示和用户输入来确定任务需求。此时,系统已经内置了 search_flights
的 Function Call 配置,准备后续查询。
Prompt 示例:
{
"role": "system",
"content": "你是一个智能助理,能够帮助用户预订机票。"
},
{
"role": "user",
"content": "帮我订一张明天从北京到上海的机票。"
}
search_flights
获取航班信息Function Call 配置:
{
"name": "search_flights",
"parameters": {
"from": "北京",
"to": "上海",
"date": "2025-02-26"
}
}
API 返回示例:
{
"flights": [
{ "flight": "CA123", "time": "08:00", "price": "¥800" },
{ "flight": "MU456", "time": "10:00", "price": "¥850" }
]
}
查询到以下航班:
1️⃣ CA123 - 08:00 - ¥800
2️⃣ MU456 - 10:00 - ¥850
请选择您想预订的航班编号。
用户回复:
我选 CA123
book_ticket
进行航班预订Function Call 配置:
{
"name": "book_ticket",
"parameters": {
"flight": "CA123",
"user": "用户ID_12345"
}
}
API 返回示例:
{
"order_id": "789456",
"status": "confirmed"
}
send_confirmation
发送预订确认Function Call 配置:
{
"name": "send_confirmation",
"parameters": {
"order_id": "789456",
"user": "用户ID_12345"
}
}
API 返回示例:
{
"status": "sent"
}
search_flights
{
"model": "gpt-4-turbo",
"messages": [
{ "role": "system", "content": "你是一个智能助理,能够帮助用户预订机票。" },
{ "role": "user", "content": "帮我订一张明天从北京到上海的机票。" }
],
"tools": [
{
"type": "function",
"function": {
"name": "search_flights",
"description": "查询航班信息。",
"parameters": {
"type": "object",
"properties": {
"from": { "type": "string", "description": "出发城市" },
"to": { "type": "string", "description": "目的地城市" },
"date": { "type": "string", "description": "航班日期" }
},
"required": ["from", "to", "date"]
}
}
}
],
"tool_choice": "search_flights"
}
book_ticket
{
"name": "book_ticket",
"parameters": {
"flight": "CA123",
"user": "用户ID_12345"
}
}
send_confirmation
{
"name": "send_confirmation",
"parameters": {
"order_id": "789456",
"user": "用户ID_12345"
}
}
本实例展示了 MCP 如何在 OpenAI API 中结合 Function Call 功能,实现多轮对话。关键要点包括:
通过这种方式,MCP 能智能解析用户需求,提升任务执行的效率。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有