📖 Flowity:构建 AI Apps 的编程语言(构想)

本周在拼死拼活考前突击 编译原理 ,学了词法、文法的分析,去年打 RMDB 比赛分析SQL时也用了Bison、Yacc那一套。总的来说这一切还是很有意思的,毕竟解答了多年的疑问:怎么设计一个编程语言?

当然最近也在实践 AI 原生工作流的开发框架,之前本来要做一个类似 Dify 的应用的(甚至已经报上去作为 专业创新实践 课的课设),但既然已经那么多类似的产品了,况且这种平台工作量巨大,便放弃了这个想法,设计了这个 Flowity 语言。当然目前只是做起来玩玩的。

Python 实现的解释器开源在:https://github.com/RockChinQ/Flowity

语法

Flowity 试图把使用者的重心放到 Prompt 上。

Hello, who are you?

$resp = $query()
$end($str)

任何不以 $ 开头的语句都将被视为 Prompt,后续只需要调用 $query() 即可直接获得 LLM 的响应。目前设计是所有的 符号(变量、函数) 都需要以 $ 开头(有点PHP了),而 Prompt 则不需要以任何符号包围。但最近在做表达式解析的时候出了点问题,表达式内部的运算符和其后的 直接数 可能会被视为 Prompt。故 Lexer 和 Parser 需要重新构造一下。

运行时

当然直接解释执行。用 PLY 做的 Lexer 和 Parser,由 runtime 的一个 递归函数 解释执行代码,使用一个 Context 类存储 符号表、解释器状态、返回值 等信息。

运行来试试看:

目标

也许直接使用 Python 就可以实现这样的操作,但单独做一个语言,方便解藕 基础服务(LLM) 和 AI App 的逻辑代码,提供了更高的可扩展性。后续计划会实现 由 LLM 决定的 分支跳转等特性,实现更多 LLM 风格的编程方式。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注