初始化全局变量 对话历史 = []
// 发送多轮对话请求
定义 发送多轮对话(新问题)
// 添加用户消息到历史
调用 追加列表项(全局变量 对话历史,
创建字典(["role", "user"], ["content", 新问题])
)
// 构建消息列表JSON
初始化局部变量 消息JSON = "["
对于 每个 消息 在 全局变量 对话历史 中
初始化局部变量 角色 = 获取键的值(消息, "role", "")
初始化局部变量 内容 = 获取键的值(消息, "content", "")
设置 消息JSON = 合并字符串(
消息JSON,
'{"role":"', 角色, '","content":"', 内容, '"},'
)
// 去掉最后一个逗号
设置 消息JSON = 合并字符串(
截取文本(消息JSON, 1, 文本长度(消息JSON) - 1), "]"
)
初始化局部变量 请求JSON = 合并字符串(
'{"model":"', 全局变量 模型, '",',
'"messages":', 消息JSON, '}'
)
调用 Web客户端1.设置请求头([
["Authorization", 合并字符串("Bearer ", 全局变量 API_KEY)],
["Content-Type", "application/json"]
])
设置 Web客户端1.URL = 全局变量 API地址
调用 Web客户端1.发送POST文本(请求JSON)
// 收到回复后,把AI回复也加入历史
当 Web客户端1.获得文本 时(URL, 响应码, 响应类型, 响应内容)
如果 响应码 = 200 则
初始化局部变量 根字典 = 调用 字典.JSON转字典(响应内容)
初始化局部变量 回复 = 获取键路径的值(根字典, ["choices", 1, "message", "content"], "")
// 把AI回复加入历史
调用 追加列表项(全局变量 对话历史,
创建字典(["role", "assistant"], ["content", 回复])
)
// 显示回复
设置 标签_回复.文本 = 回复
// 清空对话历史
当 按钮_清空.被点击 时
设置 全局变量 对话历史 = []
设置 标签_回复.文本 = ""
设置 文本输入框_问题.文本 = ""