gpt4 book ai didi

php - 如何将电话工作流存储在数据库中或有更好的方法吗?

转载 作者:可可西里 更新时间:2023-11-01 08:54:55 25 4
gpt4 key购买 nike

关闭。这个问题需要更多focused .它目前不接受答案。












想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post .

去年关闭。




Improve this question




我正在做一个 API,它将用于我们公司和电话捕获公司(一家接受我们客户的电话并捕获他们的输入(键、语音消息等)的公司)之间的通信。

如何将工作流存储在数据库中?我希望能够为每个调用提供唯一的 ID,我们将使用它在下一个请求中识别它,要求提示,捕获数据/语音,在第 N 次错误尝试后返回到工作流中的某个位置(某事如 GOTO)并在输入成功、结束调用等情况下跳转到下一步。

我正在尝试实现以下操作数:
- IF(可能的多项选择,不仅是是/否,还有 1,2,3,4... 选择)
- WHILE(第 N 次尝试)
- GOTO(跳转到不同的步骤 - 不是下一步)

我知道我的解释太含糊了,对此我深表歉意。你们都知道什么是自动电话以及在此期间会发生什么。

我想为每个新的电话捕获项目都有一个单独的工作流处理类。这样,如果有人向 API 询问项目 1 的 step1,代码就会知道它应该将请求传递给项目类。 API 将有一个主类(调度程序),它将读取工作流表并处理将请求提供给所需的项目类。

我想做一些灵活而简单的东西。有没有人有想法、例子或建议?

到目前为止,这是我的想法。将工作流存储在表中

CREATE TABLE `projects_workflow` (
`flow_id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`project_id` INT NOT NULL ,
`name` VARCHAR( 20 ) NOT NULL ,
`prompt` VARCHAR( 20 ) NOT NULL ,
`capture` VARCHAR( 20 ) NOT NULL ,
`attempts` INT NOT NULL ,
`success` VARCHAR( 20 ) NOT NULL ,
`error` VARCHAR( 20 ) NOT NULL
);

flow_id - 主要 id,project_id - 项目 id,因为我们将有不同的项目,名称 - 工作流中节点的名称(项目 id 和名称构成唯一键),提示 - 调用者将听到什么(系统定义的消息) , 捕获 - 系统会捕获什么(entry(6,6,), VOICE, NONE), 尝试 - 回家很多次可以这样重复才算为错误,成功和错误导致下一个节点。

可能的工作流程可能是:
flow_id project_id name       prompt  capture   attempts   sccess    error
1 1 capture1 01 6,6 1 endcall error1
2 1 error1 02 NONE 4 capture1 capture2
3 1 capture2 03 VOICE 1 endcall
4 1 endcall 04 ENDCALL 1

如果工作流中具有错误的事件/节点成功通过,错误计数器将被重置。

所以有人打电话,他/她被要求提供一个 6 号号码,如果错误将响应一条错误消息(4 次),然后去捕获调用者的语音消息。如果成功,通话将结束。我将在数据库中保存每一步的日志。

我可以也可能会用节点的 ID 而不是它们的名称来交换成功和错误列

附言很抱歉对问题的描述不好。

最佳答案

您将需要一大堆 table 。每个 varchar 字段都应该是查找表的外键。您最终需要的信息多于您可以存储在该 varchar 字段中的信息。

还要写下您的各个字段可以采用的所有状态并绘制状态转换图。然后您可以确定状态转换所依赖的字段。然后,您的工作流表将包含这些字段 + 一些关联的操作外键。

关于php - 如何将电话工作流存储在数据库中或有更好的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6690973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com