生成答案流程
- 接口输入
- 助手 ID agent_id
- 语料库 ID dataset_id
- 可选的:问题 ID 的数组 questions
- 流程步骤
- 根据 agent_id 查询对应 Dify 助手 ID
- 调用接口,根据传入的
agent_id
获取对应的dify
助手 ID。
- 调用接口,根据传入的
- 查询所有问题 ID
- 根据语料库 ID 查询所有相关问题的 ID。
- 如果传入了特定的问题 ID 数组,则只查询这些特定的问题。
- 根据问题 ID 查询问题详情
- 获取每个问题的详细信息
- 创建测试轮
- 创建一个新的测试轮,记录当前助手 ID 和语料库 ID,并生成测试轮 ID。
- **根据 dify 助手 ID 查询 **api_key
- 使用
dify
助手 ID 查询对应的api_key
,用于后续调用 Dify API。
- 使用
- 创建 Celery 任务
- 将问题详情、
api_key
和 测试轮 ID 传递给 Celery 任务,进行并发处理。
- 将问题详情、
- 返回测试轮 id test_run_id
- 根据 agent_id 查询对应 Dify 助手 ID
Celery 逻辑
-
根据问题创建线程
- 为每个问题创建一个线程来处理。目前最大并发 10 个
-
创建测试轮结果
- 在数据库中创建一个空的测试轮结果条目,并获取其 ID。
-
根据问题调用 AI 接口返回答案
- 使用
api_key
调用 Dify AI 接口,传入问题并获取 AI 的回答。
- 使用
-
根据答案、测试轮结果 ID 修改测试轮结果
- 将 AI 返回的答案更新到对应的测试轮结果中。
-
错误处理
- 轮询判断每一个任务,将错误任务进行标注
-
所有问题处理完后修改测试轮 note 字段
- 根据任务整体情况更改
note
字段 具体状态 (进行中、已完成、出错)
- 根据任务整体情况更改
生成评分流程
- 接口输入
- 测试轮 ID test_run_id
- 流程步骤
- 根据测试轮 ID 获取所有结果 ID
- 查询指定测试轮中所有的测试结果 ID。
- 根据结果 ID 列出测试轮结果详情
- 获取每个结果的详细信息,包括问题、标答、AI 回答、上下文等。
- 创建 Celery 任务
- 将测试轮结果详情传递给 Celery 任务,进行并发处理。
- 任务提交成功
- { "meg": "提交成功"}
- 根据测试轮 ID 获取所有结果 ID
Celery 逻辑
-
根据测试轮结果详情创建线程
- 为每个测试结果创建一个线程进行评分处理。
-
创建测试轮评分结果数据
- 在数据库中创建一个空的测试轮评分结果条目,并获取其 ID。
-
根据详情的 question_id 字段获取标答
- 获取每个问题的标答内容,用于评分参数的构建。
-
构建评分参数
- 使用问题、标答、AI 回答、上下文等信息构建评分参数。
-
根据返回的评分细节、测试轮结果 ID、测试轮评分 ID 修改测试轮评分
- 将评分细节更新到对应的测试轮评分结果中。
-
错误处理
- 轮询判断每一个任务,将错误任务进行标注
-
所有问题处理完后修改测试轮 note 字段
- 根据任务整体情况更改
note
字段 具体状态 (进行中、已完成、出错)
- 根据任务整体情况更改
重跑答案流程
- 接口输入
- 测试轮 ID test_run_id
- 问题 ID questions
- 测试论结果 ID test_result_id
- 流程步骤
- 根据 agent_id 查询对应 Dify 助手 ID
- 调用接口,根据传入的
agent_id
获取对应的dify
助手 ID。
- 调用接口,根据传入的
- 根据问题 ID 查询问题详情
- 获取每个问题的详细信息
- **根据 dify 助手 ID 查询 **api_key
- 使用
dify
助手 ID 查询对应的api_key
,用于后续调用 Dify API。
- 使用
- 创建 Celery 任务
- 将问题详情、
api_key
和 测试轮 ID 传递给 Celery 任务,进行并发处理。
- 将问题详情、
- 返回测试轮 id test_run_id
- 根据 agent_id 查询对应 Dify 助手 ID
Celery 逻辑
-
根据问题创建线程
- 为每个问题创建一个线程来处理。目前最大并发 10 个
-
根据问题调用 AI 接口返回答案
- 使用
api_key
调用 Dify AI 接口,传入问题并获取 AI 的回答。
- 使用
-
根据答案、测试轮结果 ID 修改测试轮结果
- 将 AI 返回的答案更新到对应的测试轮结果中。
-
错误处理
- 轮询判断每一个任务,将错误任务进行标注
-
所有问题处理完后修改测试轮 note 字段
- 根据任务整体情况更改
note
字段 具体状态 (进行中、已完成、出错)
- 根据任务整体情况更改
重跑评分流程
- 接口输入
- 测试轮 ID test_run_id
- 测试论结果 ID test_result_id
- 评分结果 ID ragas_score_id
- 流程步骤
- 根据测试轮结果 ID 列出测试轮结果详情
- 获取每个结果的详细信息,包括问题、标答、AI 回答、上下文等。
- 创建 Celery 任务
- 将测试轮结果详情传递给 Celery 任务,进行并发处理。
- 任务提交成功
- { "meg": "提交成功"}
- 根据测试轮结果 ID 列出测试轮结果详情
Celery 逻辑
-
根据测试轮结果详情创建线程
- 为每个测试结果创建一个线程进行评分处理。
-
根据详情的 question_id 字段获取标答
- 获取每个问题的标答内容,用于评分参数的构建。
-
构建评分参数
- 使用问题、标答、AI 回答、上下文等信息构建评分参数。
-
根据返回的评分细节、测试轮结果 ID、测试轮评分 ID 修改测试轮评分
- 将评分细节更新到对应的测试轮评分结果中。
-
错误处理
- 轮询判断每一个任务,将错误任务进行标注
-
所有问题处理完后修改测试轮 note 字段
- 根据任务整体情况更改
note
字段 具体状态 (进行中、已完成、出错)
- 根据任务整体情况更改