简介
AIScript 是一种独特的解释型编程语言和 Web 框架的结合体,两者都用 Rust 编写,旨在帮助开发者轻松构建 AI 应用程序。该语言语法汲取了 Python、JavaScript 和 Rust 的灵感,结合它们的优势创造出直观、强大且易于使用的语言。
`AIScript` 仍处于早期开发阶段。请暂时不要在生产环境中使用。
编程语言
作为一种编程语言,AIScript 从零开始构建了自定义解释器:
·函数是一等公民,支持面向对象编程范式
·内置 AI 原语,包括提示词(prompt)、AI 函数和代理(agent)功能
·动态类型系统,结合有针对性的静态类型检查以提高安全性
·内置类似于 Python Pydantic 的数据验证
·简单而强大的错误处理机制,受 Rust、Go 和 Zig 启发
·丰富的标准库,底层利用 Rust 的生态系统
·自动垃圾回收进行内存管理
Web 框架
AIScript 不仅仅是一种语言,它是一个完整的 Web 开发解决方案:
·优雅直观的路由 DSL,用于定义端点
·自动参数验证,提供清晰的错误消息
·自动生成 OpenAPI 架构和文档
·基于 Rust 最佳实践,底层使用 axum 和 sqlx
·结合了 Rust 的 axum 性能和类似 Python Flask 的简单性
·内置数据库模块(std.db.pg 和 std.db.redis)
·内置身份验证和社交登录功能
·通过简单配置轻松启用电池内置(battery-included)功能
AIScript 如何工作
$ export OPENAI_API_KEY=$ cat web.ai get / { """一个用于询问 LLM 的 API""" query { """要提问的问题""" @string(min_len=3, max_len=100) // 使用内置指令 @string 验证参数 question: str } // `ai` 和 `prompt` 是关键字 ai fn ask(question: str) -> str { let answer = prompt question; return answer; } // 使用 query.name 或 query["name"] 访问查询参数 let answer = ask(query.question); return { answer }; } $ aiscript serve web.ai Listening on http://localhost:8080 $ curl http://localhost:8080 { "error": "Missing required field: question" } $ curl http://localhost:8080?question=Hi { "error": "Field validation failed: question: String length is less than the minimum length of 3" } $ curl http://localhost:8080?question=What is the capital of France? { "answer": "The capital of France is Paris." }
您可以打开 http://localhost:8080/redoc 查看自动生成的 API 文档。
使用场景
AIScript 在以下场景中表现出色:
·AI 驱动的 API:当您需要构建利用 LLM 和其他 AI 服务的 API 时
·原型设计:无需配置开销,快速构建和测试想法
·微服务:创建轻量级、专注的服务,最小化样板代码
·数据验证:当请求/响应验证对您的应用程序至关重要时
·内部工具:使用集成文档快速构建工具
理念
AIScript 秉承以下核心原则:
·约定优于配置:开箱即用的合理默认设置
·渐进式复杂性:易于上手,需要时又功能强大
·AI 原生设计:从头开始为 AI 时代而构建
·开发者幸福感:首先关注开发者体验
·不牺牲性能:无需在速度和生产力之间做选择
官网:https://aiscript.dev/
GitHub: https://github.com/aiscriptdev/aiscript