在几分钟内实现敏捷微服务的AI和规则

智能真的很好说 2024-03-16 13:16:40
使用 AI 和 API/逻辑自动化即时创建项目。稍后使用 Python、Rules 和 Flask(开源)进行自定义。

以下是如何使用 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. 调试

上面的屏幕截图显示了我们的逻辑声明以及我们如何调试它们:

执行在调试器中的断点处暂停,我们可以在断点中检查状态并逐步执行。请注意插入 .每行表示一个触发的规则,并显示该行的完整状态。Item

2. 链接:多表事务自动化

请注意,它是一个 ,如日志缩进所示。这是因为,与电子表格一样,规则会自动链接,包括跨表链接。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

0 阅读:0

智能真的很好说

简介:感谢大家的关注