以下是如何使用 AI 和 API Logic Server 在几分钟内创建完整的运行系统:
使用 ChatGPT 实现模式自动化:从自然语言创建数据库模式。使用开源 API 逻辑服务器:使用一个命令创建工作软件。应用自动化:多页面、多表管理应用。API 自动化:JSON:API,每个表的 CRUD,具有过滤、排序、乐观锁定和分页功能。使用 IDE 自定义项目:使用规则的逻辑自动化:在 Python 中为多表派生和约束声明类似电子表格的规则 - 比代码简洁 40 倍。使用 Python 和标准库(Flask、SQLAlchemy)并在 IDE 中进行调试。迭代项目:修改数据库设计和逻辑。与 B2B 合作伙伴和内部系统集成。此过程利用您现有的 IT 基础架构:您的 IDE、GitHub、云、数据库......开源。让我们看看如何。
1. AI:模式自动化您可以使用现有数据库或使用 ChatGPT 或您的数据库工具创建新数据库。
使用 ChatGPT 生成用于创建数据库的 SQL 命令:
Create a sqlite database for customers, orders, items and productbrbrHints: use autonum keys, allow nulls, Decimal types, foreign keys, no check constraints.brbrInclude a notes field for orders.brbrCreate a few rows of only customer and product data.brbrEnforce the Check Credit requirement:brbrCustomer.Balance <= CreditLimitbrCustomer.Balance = Sum(Order.AmountTotal where date shipped is null)brOrder.AmountTotal = Sum(Items.Amount)brItems.Amount = Quantity * UnitPricebrStore the Items.UnitPrice as a copy from Product.UnitPricebr请注意上面的提示。正如我们所听到的,“人工智能需要成人的监督。需要提示才能获得所需的 SQL。
这将创建这样的标准 SQL。将生成的 SQL 命令复制到文件中,例如:sample-ai.sql
然后,创建数据库:
sqlite3 sample_ai.sqlite < sample_ai.sql2. API 逻辑服务器:创建给定一个数据库(无论它是否是从 AI 创建的),API Logic Server 都会使用以下单个命令创建一个可执行的、可自定义的项目:
$ ApiLogicServer create --project_name=sample_ai --db_url=sqlite:///sample_ai.sqlite这将创建一个可以使用 IDE 打开的项目,例如 VSCode(见下文)。该项目现在已准备好运行;按 F5。它反映了命令提供的自动化:create
API 自动化:面向 UI 开发人员的自助式 API;应用程序自动化:一个可用于后台数据维护和业务用户协作的管理应用程序。让我们从命令中探索应用和 API 自动化。create
应用自动化应用程序自动化意味着自动创建多页面、多表的管理应用程序。这并不包含数百行复杂的 HTML 和 JavaScript;这是一个简单的 YAML 文件,易于自定义。ApiLogicServer create
为业务用户协作、后台数据维护做好准备......在几分钟内。
API 自动化应用自动化意味着自动创建 JSON: API。您的 API 为每个表提供了一个终端节点,具有相关的数据访问、分页、乐观锁定、筛选和排序。ApiLogicServer create
使用框架创建这样的 API需要几天到几个月的时间。
UI 应用开发人员可以使用 API 立即创建自定义应用,使用 Swagger 设计其 API 调用并将 URI 复制到其 JavaScript 代码中。因此,API 是自助式的:不需要服务器编码。
自定义应用开发已解锁:第 1 天。
3.定制因此,我们在几分钟内就拥有了可用的软件。它正在运行,但我们真的无法部署它,直到我们有了逻辑和安全性,这给我们带来了定制。
项目是为自定义而设计的,使用标准:Python、框架(例如 Flask、SQLAlchemy)以及用于代码编辑和调试的 IDE。
不仅是 Python 代码,还有规则。
逻辑自动化逻辑自动化意味着您可以使用 Python 声明类似电子表格的规则。这种逻辑通过多表派生、约束和安全性来维护数据库的完整性。规则比传统代码简洁 40 倍,并且可以使用 Python 进行扩展。
规则是一种可执行的设计。使用 IDE(代码完成等)将 280 行代码替换为以下五个类似电子表格的规则。请注意,它们完全映射到我们的自然语言设计:
1. 调试
上面的屏幕截图显示了我们的逻辑声明以及我们如何调试它们:
执行在调试器中的断点处暂停,我们可以在断点中检查状态并逐步执行。请注意插入 .每行表示一个触发的规则,并显示该行的完整状态。Item2. 链接:多表事务自动化
请注意,它是一个 ,如日志缩进所示。这是因为,与电子表格一样,规则会自动链接,包括跨表链接。Multi-Table Transaction
3. 简洁 40 倍
这五个类似电子表格的规则表示与 200 行代码相同的逻辑,如下所示。这相当于系统后端部分的显著减少 40 倍。
4.自动重复使用
上面的逻辑,也许是为下订单而构想的,自动适用于所有交易:删除订单、更改商品、将订单转移给新客户等。这样可以减少代码并提高质量(不会遗漏极端情况)。
5. 自动优化
通过修剪和消除昂贵的聚合查询,可以最大程度地减少 SQL 开销。这些可能会导致几个数量级的影响。
这是因为规则引擎不是基于 Rete 算法,而是针对事务处理进行了高度优化,并与 SQLAlchemy ORM(对象关系管理器)集成。
6.透明
规则是一种可执行的设计。请注意,它们完全映射到我们的自然语言设计(显示在注释中),可供业务用户阅读。这与运行屏幕相辅相成,以促进敏捷协作。
安全自动化安全自动化意味着您可以激活登录访问安全性并声明授权(使用 Python)来控制用户角色的行访问。在这里,我们筛选具有销售角色的用户的活跃度较低的帐户:
Grant( on_entity = models.Customer, to_role = Roles.sales, filter = lambda : models.Customer.CreditLimit > 3000, filter_debug = "CreditLimit > 3000")4. 迭代:规则 + Python因此,我们已经完成了为期一天的项目。工作屏幕和规则促进了敏捷协作,从而实现了敏捷迭代。
自动化在这方面也有帮助:不仅类似电子表格的规则简洁了 40 倍,而且它们有意义地简化了迭代和维护。让我们通过两个变化来探讨这一点:
要求 1:绿色折扣
Give a 10% discount for carbon-neutral products for 10 items or more.要求 2:应用程序集成
Send new Orders to Shipping using a Kafka message.brbrEnable B2B partners to place orders with a custom API.brbr修改数据模型在此示例中,需要更改架构才能添加 Product.CarbonNeutral 列。这会影响 ORM 模型、API 等。因此,我们希望更新这些内容,但保留我们的自定义设置。
使用命令将现有项目更新为修订后的架构,同时保留自定义项,支持执行此操作。ApiLogicServer rebuild-from-database
迭代逻辑:添加 Python以下是我们应用折扣并发送 Kafka 消息的修改逻辑:
扩展 API我们还可以使用标准 Python 和 Flask 为新的 B2BOrder 端点扩展 API:
注意:本示例中未激活 Kafka。要浏览应用程序与正在运行的 Kafka 集成的运行教程,请单击此处。
迭代注意事项这说明了逻辑如何支持迭代的一些重要方面。
维护自动化
除了文档之外,程序员最讨厌的任务之一就是维护。那是因为它不是关于编写代码,而是关于考古学;破译别人写的代码,这样你就可以添加四到五行,希望这些行能被调用并正常工作。
Logic Automation 通过 Maintenance Automation 改变了这一点,这意味着:
规则根据系统发现的依赖项自动对其执行(和优化)进行排序。规则会自动重用于所有相关事务。因此,要更改逻辑,您只需“在存储桶中放置一个新规则”,系统将确保以正确的顺序调用它,并在所有相关用例中重复使用。
可扩展性:使用 Python
在第一种情况下,我们需要做一些 if/else 测试,添加一点 Python 会更方便。虽然这是一个非常简单的 Python 作为 4GL,但您拥有面向对象的 Python 及其许多库的全部功能。
例如,我们的扩展 API 利用 Flask 和开源库来传输 Kafka 消息。
重建:保留逻辑
回想一下,我们能够迭代架构并使用命令。这将更新现有项目,同时保留自定义项。ApiLogicServer rebuild-from-database
5. 部署API 逻辑服务器提供了用于从项目创建 Docker 映像的脚本。您可以将这些部署到云或本地服务器。
有关详细信息,请参阅此处。
总结在几分钟内,您已经使用 ChatGPT 和 API Logic Server 将一个想法转化为工作软件。它只需要五条规则和几十行 Python。过程很简单:
创建架构ChatGPT.创建项目ApiLogicServer.用于解锁 UI 开发人员的自助式 API:第 1 天适用于企业用户协作的管理应用:第 1 天自定义项目。使用规则:比代码简洁 40 倍。使用 Python:实现完全的灵活性。在 IDE 中迭代项目以实现新需求。将保留先前的自定义项。这一切都适用于标准工具:Python、IDE 和基于容器的部署。
原文标题:AI and Rules for Agile Microservices in Minutes
原文链接:https://dzone.com/articles/ai-and-rules-for-agile-microserves
作者:Val Huber
编译:LCR