aici

把提示词变成程序,动态控制AI生成过程。

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开源模型 🍴 复刻 86 🐛 待处理 41 👀 关注 21
GitHub ↗
GitHub 星标 ★ 2074
维护状态 低维护
是否开源 开源
定价模式 🏷️完全免费 开源项目,MIT 许可证,完全免费,需自行部署使用。

项目预览

aici 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开源模型
开发团队microsoft
定价模式🏷️完全免费
价格说明开源项目,MIT 许可证,完全免费,需自行部署使用。
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议MIT
主要语言Rust
技术栈/模型ai,inference,language-model,llm,llm-framework,llm-inference,llm-serving,llmops,model-serving,rust,transformer,wasm,wasmtime
GitHub 星标★ 2074
上线时间2023-09-26 00:00:00
代码更新2025-01-22
仓库体积9.9 MB
本站数据更新2026-11-09
维护状态低维护
收录时间2026-08-09
浏览次数3

项目介绍

AICI(Artificial Intelligence Controller Interface)是一个开源框架,它提出了一种全新的与大语言模型交互的方式:将提示词(Prompts)视为可编程的Wasm(WebAssembly)程序。它解决了传统LLM推理中提示词固定、难以动态控制的问题,允许开发者通过编写Wasm模块来实时控制模型的生成过程,包括修改token生成、实现复杂的控制流、注入自定义逻辑等。其核心能力在于提供了一个轻量、安全、高性能的沙箱环境,使得提示词不再是静态文本,而是可执行的程序,从而极大地扩展了LLM应用的灵活性和可定制性。该项目基于Rust开发,性能优异,适合构建需要精细控制生成逻辑的复杂AI应用。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 2074

使用教程

难度:进阶 约 30 分钟 部署方式:本地安装 5 步

环境要求

  • Rust 开发环境(用于编译 AICI 各组件)
  • Python 3.11 或更高版本(用于编写 Controller)
  • 使用 rllm-cuda 后端时需 NVidia GPU 且计算能力 8.0 及以上(A100、RTX 30 系及更新)
  • 能访问 HuggingFace 下载 .gguf 模型文件,或本地已有 .gguf 文件

安装与启动步骤

  1. 1准备开发环境

    按 Rust 官方方式装好 Rust 工具链,并确保本机 Python 版本不低于 3.11,两者都是后续编译与编写 Controller 的前提。

  2. 2克隆仓库

    把 AICI 源码拉取到本地,后续所有构建命令都在仓库目录内执行。

    git clone https://github.com/microsoft/aici
  3. 3进入后端目录

    进入 llama.cpp 后端目录;若改用 CUDA 后端,则换成 rllm-cuda 文件夹,步骤相同。

    cd aici/rllm/rllm-llamacpp
  4. 4构建并启动服务

    该脚本会编译 aicirt 与 rllm-llamacpp 并加载指定模型;首次运行需下载模型,耗时较长。

    ./server.sh phi2
  5. 5切换其它模型

    不带参数运行脚本可查看内置可用模型列表;也可传入 HuggingFace 上 .gguf 链接或本地 .gguf 路径。

    ./server.sh orca

关键配置

配置项必填说明示例
model(server.sh 参数)是指定加载的模型,支持内置名、HuggingFace .gguf 链接或本地 .gguf 路径。phi2
后端目录是选择编译的后端:rllm-llamacpp 通用,rllm-cuda 需 NVidia 计算能力 8.0+。rllm-llamacpp

如何确认成功

浏览器打开 http://127.0.0.1:4242/v1/models,返回 JSON 中 data 里出现已加载模型的 id(如 TheBloke/phi-2-GGUF)即成功。

常见问题

Q:没有 NVidia 显卡能跑吗?

A:可以。改用基于 llama.cpp 的 rllm-llamacpp 后端即可;rllm-cuda 只支持计算能力 8.0 及以上的 NVidia GPU(A100、RTX 30 系及更新)。

Q:server.sh 支持哪些模型?

A:不带参数执行 ./server.sh 会列出可用模型;也可传入 HuggingFace 上 .gguf 文件的 URL 或本地 .gguf 文件路径(rllm-cuda 用 HuggingFace 模型 id 或文件夹路径)。

Q:编译 rllm-cuda 时 libtorch 配置很麻烦怎么办?

A:README 明确建议使用仓库自带的 devcontainer 来完成 libtorch 环境配置,避免手动折腾依赖。

Q:Controller 用什么语言写?

A:Controller 最终是轻量 WebAssembly(Wasm)模块,快速上手示例中需要 Python 3.11 或更高版本来创建 Controller。

注意事项

  • README 指出:如果只需要约束解码(constrained decoding),推荐改用其演进而来的 LLGuidance 库,而非 AICI 本身。
  • rllm-cuda 后端仅适用于计算能力 8.0 及以上的 NVidia GPU,且 libtorch 环境配置繁琐,优先用 devcontainer。
  • rllm-llamacpp 与 rllm-cuda 的构建步骤相同,只是所在文件夹名不同。
  • rLLM 服务通过 HTTP 接口对外提供配置与请求处理能力,默认地址为 http://127.0.0.1:4242。

核心亮点

  • 通过Wasm实现提示词的动态逻辑,支持条件分支、循环等复杂控制流,远超静态提示词。
  • 基于Rust和Wasm,执行安全且性能开销低,适合对延迟敏感的生产环境。
  • 提供与模型无关的接口,可集成多种LLM后端,灵活性强。

不足之处

  • 项目仍处于早期阶段,API和生态尚不稳定,学习曲线较陡。
  • 文档和示例相对有限,社区支持待观察。

适用场景

  • 构建需要动态调整提示词或生成策略的复杂Agent应用。
  • 在推理过程中实现自定义的采样逻辑或约束(如强制JSON输出)。
  • 用于研究LLM的可控生成和提示词工程新范式。

替代项目

Guidance、Outlines、LMQL

上一篇:text-generation-webui-colab

下一篇:neuron-ai

同类项目推荐

instructor-go 开源

用 Go struct 约束大模型输出,直接拿到强类型结果

structured outputs for llms

★ 222 2026-11-07
Gemini-API 开源

免官方API,用Python轻松调用Gemini模型

✨ Reverse-engineered Python API for Google Gemini web app

★ 3801 2026-08-09
agent-skills-standard 开源

给 AI 代理装上各语言框架的编码规范,生成代码更符合工程最佳实践

A collection of Agent Skills Standard and Best Practice for Programming Languages, F···

★ 583 2026-10-13
promptdesk 开源

一站式管理提示词与模型评估,让 LLM 应用开发更高效。

Promptdesk is a tool designed for effectively creating, organizing, and evaluating p···

★ 99 2026-08-09
llmflows 开源

像画流程图一样构建 LLM 应用,每一步都清晰可控。

LLMFlows - Simple, Explicit and Transparent LLM Apps

★ 709 2026-08-09
botkit 开源

一套代码,快速搭建跨平台聊天机器人。

Botkit is an open source developer tool for building chat bots, apps and custom inte···

★ 11583 2026-08-09
hashbrown 开源

在浏览器里跑 AI Agent,Angular/React 直接接

Hashbrown is a framework for building agents that run the browser. Built for Angular···

★ 731 2026-10-13
cookiecutter-mlops-package 开源

一键生成 MLOps 项目骨架,快速进入开发部署

Start building and deploying Python packages and Docker images for MLOps tasks.

★ 443 2026-08-09
TypeLLM 开源

让大模型按你的类型定义输出,不再手动解析 JSON

TypeLLM: LLMs with type-safe generation

★ 981 2026-09-26