< 返回版块

Folyd 发表于 2025-03-24 13:56

简介

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 最佳实践,底层使用 axumsqlx
  • 结合了 Rust 的 axum 性能和类似 Python Flask 的简单性
  • 内置数据库模块(std.db.pgstd.db.redis
  • 内置身份验证和社交登录功能
  • 通过简单配置轻松启用电池内置(battery-included)功能

AIScript 如何工作

$ export OPENAI_API_KEY=<your-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


Ext Link: https://aiscript.dev/

评论区

写评论
Unic 2025-03-25 10:26

这个想法挺好的. 看起来不错, 后续试试呢

1 共 1 条评论, 1 页