我的服务包括: 1. 数据生产者,会不断的从网络中爬取最新的数据。同时这些数据是有时效性的,不需要保存,而是立即处理。我想输出到消息队列是一个不错的选择。 2. 数据处理者:接收特定的输入,返回特定的输出。我想可以包装成API服务。背后可能是LLM, OCR, 也可以是一个小脚本。 3. 数据库:一些长期有效的数据。 4. 执行者:接收特定的输入,与外部世界交互执行操作,例如买币,卖币。
我的DSL就是要能灵活的将他们组合成一个流程。流程必须是有向无环图,包括分支但是没有循环。据此,帮我重新设计DSL和服务组合方案,给出详细的建议。
DSL
1. 节点类型定义
类型 | 属性 | 说明 | 例子 | 输入 | 输出 |
---|---|---|---|---|---|
producer | queue/output_rate_limit | 数据生产者,自带流控。 | twitter爬虫,用户输入 | 无 | output |
processor | input/filter/output/params | 数据处理单元,支持多输入源,没有副作用。 | LLM, OCR, script | inputs | outputs |
db_processor | operation/query/update | 数据库交互节点(查/改), | 用户配置文件 | input | output |
executor | retry/timeout/confirm_required | 执行终结点,自带重试和确认机制,有副作用。 | 买币、卖币 | input | output |