ai00_server

GitHub
609 73 简单 1 次阅读 今天MITAgent开发框架图像语言模型插件
AI 解读 由 AI 自动生成,仅供参考

ai00_rwkv_server 是一款基于 RWKV 语言模型的一体化推理服务工具,旨在为用户提供高效、便捷的本地大模型部署方案。它集成了嵌入(Embed)、检索增强生成(RAG)及 AI 智能体等功能,能够轻松胜任聊天机器人、文本生成、翻译及问答等多种任务。

该工具主要解决了传统大模型部署依赖庞大运行环境(如 PyTorch、CUDA)且对硬件要求苛刻的痛点。其核心亮点在于采用 Rust 语言编写并基于 web-rwkv 引擎,无需安装复杂的深度学习框架即可“开箱即用”。更独特的是,它支持 Vulkan 并行加速,这意味着不仅限于 NVIDIA 显卡,AMD 显卡甚至集成显卡也能获得高效的 GPU 加速支持,极大地降低了本地运行大模型的硬件门槛。同时,它原生兼容 OpenAI ChatGPT API 接口,方便开发者无缝迁移现有应用。

ai00_rwkv_server 非常适合希望在本地私有化部署大模型的开发者、受限于硬件条件的研究人员,以及想要体验高性能 AI 但缺乏专业显卡资源的普通用户。无论是用于快速原型开发、技术调研,还是构建实际的商业应用,它都是一个轻量级且强大的选择。

使用场景

某初创团队希望在老旧的办公电脑上部署一套内部知识库问答系统,但团队成员仅配备 AMD 显卡和集成显卡,缺乏昂贵的 NVIDIA 专业卡。

没有 ai00_server 时

  • 硬件门槛高:主流大模型推理强依赖 CUDA 生态,导致团队手中的 AMD 显卡和核显完全无法加速,必须额外采购昂贵的 NVIDIA 显卡。
  • 环境部署繁琐:需要安装庞大的 PyTorch、配置复杂的 CUDA 版本及驱动,经常因版本冲突导致环境搭建失败,耗时数天。
  • 资源占用过大:传统运行时内存占用极高,在配置有限的旧电脑上运行缓慢甚至频繁崩溃,无法支撑并发请求。
  • 开发适配成本高:若要接入现有的 ChatGPT 兼容应用,需自行编写额外的适配层代码,增加了开发维护负担。

使用 ai00_server 后

  • 硬件全面解放:基于 Vulkan 架构,直接利用现有的 AMD 显卡或集成显卡实现并行加速,无需任何 NVIDIA 硬件即可流畅运行。
  • 开箱即用:无需安装 PyTorch 或 CUDA,下载编译好的可执行文件并放入模型即可启动,将部署时间从几天缩短至几分钟。
  • 轻量高效:紧凑的 Rust 运行时大幅降低内存占用,在低配设备上也能稳定支持多用户并发问答,响应速度显著提升。
  • 无缝集成:原生兼容 OpenAI API 接口,现有应用无需修改任何代码即可直接对接,立即实现聊天机器人和知识库检索功能。

ai00_server 通过打破对特定硬件和沉重环境的依赖,让低成本设备也能轻松承载高性能的本地大模型服务。

运行环境要求

操作系统
  • Windows
  • Linux
  • macOS
GPU
  • 非必需 NVIDIA
  • 支持所有支持 Vulkan 的 GPU(包括 AMD 显卡和集成显卡)
  • 无需 CUDA
内存

未说明

依赖
notes核心服务基于 Rust 编译为独立可执行文件,无需安装 PyTorch 或 CUDA 运行时。仅需在运行模型转换脚本(将 .pth 转为 .st 格式)时才需要 Python 环境及 torch、safetensors 库。模型文件需单独下载并放置于 assets/models/ 目录。
python可选(仅用于模型转换脚本)
Rust 1.78.0+
torch (可选,仅用于模型转换)
safetensors (可选,仅用于模型转换)
ai00_server hero image

快速开始

💯AI00 RWKV 服务器

license Rust 版本 欢迎提交 PR

所有贡献者

en zh


AI00 RWKV 服务器 是一个基于 web-rwkv 推理引擎的、用于 RWKV 语言模型 的推理 API 服务器。

它支持 Vulkan 并行与并发批处理推理,可在所有支持 Vulkan 的 GPU 上运行。无需英伟达显卡!!!AMD 显卡甚至集成显卡也能加速!!!

无需臃肿的 PyTorchCUDA 等运行时环境,体积小巧,开箱即用!

兼容 OpenAI 的 ChatGPT API 接口。

100% 开源且可商业使用,采用 MIT 许可证。

如果您正在寻找一个快速、高效、易用的 LLM API 服务器,那么 AI00 RWKV 服务器 就是您的最佳选择。它可以用于多种任务,包括聊天机器人、文本生成、翻译和问答等。

立即加入 AI00 RWKV 服务器 社区,体验 AI 的魅力吧!

交流 QQ 群:30920262

💥特性

  • 基于 RWKV 模型,性能和准确性高
  • 支持 Vulkan 推理加速,无需 CUDA 即可享受 GPU 加速!支持 AMD 显卡、集成显卡以及所有支持 Vulkan 的 GPU
  • 无需臃肿的 PyTorchCUDA 等运行时环境,体积小巧,开箱即用!
  • 兼容 OpenAI 的 ChatGPT API 接口

⭕用途

  • 聊天机器人
  • 文本生成
  • 翻译
  • 问答
  • LLM 可以完成的任何其他任务

👻其他

安装、编译与使用

📦下载预编译的可执行文件

  1. 直接从 Release 下载最新版本

  2. 下载模型 后,将模型放置在 assets/models/ 路径下,例如 assets/models/RWKV-x060-World-3B-v2-20240228-ctx4096.st

  3. 可选地修改 assets/configs/Config.toml,以配置模型路径、量化层等参数

  4. 在命令行中运行

    $ ./ai00_rwkv_server
    
  5. 打开浏览器,访问 WebUI:http://localhost:65530(如果启用了 tls,则为 https://localhost:65530)

📜(可选)从源码构建

  1. 安装 Rust

  2. 克隆本仓库

    $ git clone https://github.com/cgisky1980/ai00_rwkv_server.git
    $ cd ai00_rwkv_server
    
  3. 下载模型 后,将模型放置在 assets/models/ 路径下,例如 assets/models/RWKV-x060-World-3B-v2-20240228-ctx4096.st

  4. 编译

    $ cargo build --release
    
  5. 编译完成后,运行

    $ cargo run --release
    
  6. 打开浏览器,访问 WebUI:http://localhost:65530(如果启用了 tls,则为 https://localhost:65530)

📒模型转换

目前仅支持 .st 扩展名的 Safetensors 模型。使用 PyTorch 保存的 .pth 格式模型需要在使用前进行转换。

  1. 下载 .pth 模型

  2. (推荐)运行 Python 脚本 convert_safetensors.py

    $ python assets/scripts/convert_safetensors.py --input /path/to/model.pth --output /path/to/model.st
    

    需要:Python,并已安装 torchsafetensors

  3. 如果不想安装 Python,在 Release 中可以找到名为 converter 的可执行文件,运行:

    $ ./converter --input /path/to/model.pth --output /path/to/model.st
    
  4. 如果您是从源码构建的,请运行:

    $ cargo run --release --package converter -- --input /path/to/model.pth --output /path/to/model.st
    
  5. 就像上述步骤一样,将 .st 格式的模型放入 assets/models/ 路径,并在 assets/configs/Config.toml 中修改模型路径。

📝支持的参数

  • --config:配置文件路径(默认:assets/configs/Config.toml
  • --ip:服务器绑定的 IP 地址
  • --port:运行端口

📙当前可用的 API

API 服务启动在端口 65530,数据输入和输出格式遵循 OpenAI API 规范。 请注意,某些 API(如 chatcompletions)具有用于高级功能的额外可选字段。有关 API 模式的详细信息,请访问 http://localhost:65530/api-docs。

  • /api/oai/v1/models
  • /api/oai/models
  • /api/oai/v1/chat/completions
  • /api/oai/chat/completions
  • /api/oai/v1/completions
  • /api/oai/completions
  • /api/oai/v1/embeddings
  • /api/oai/embeddings

以下是 Python 中调用 Ai00 API 的开箱即用示例:

import openai

class Ai00:
    def __init__(self, model="model", port=65530, api_key="JUSTSECRET_KEY") :
        openai.api_base = f"http://127.0.0.1:{port}/api/oai"
        openai.api_key = api_key
        self.ctx = []
        self.params = {
            "system_name": "System",
            "user_name": "User", 
            "assistant_name": "Assistant",
            "model": model,
            "max_tokens": 4096,
            "top_p": 0.6,
            "temperature": 1,
            "presence_penalty": 0.3,
            "frequency_penalty": 0.3,
            "half_life": 400,
            "stop": ['\x00','\n\n']
        }
        
    def set_params(self, **kwargs):
        self.params.update(kwargs)
        
    def clear_ctx(self):
        self.ctx = []
        
    def get_ctx(self):
        return self.ctx
    
    def continuation(self, message):
        response = openai.Completion.create(
            model=self.params['model'],
            prompt=message,
            max_tokens=self.params['max_tokens'],
            half_life=self.params['half_life'],
            top_p=self.params['top_p'],
            temperature=self.params['temperature'],
            presence_penalty=self.params['presence_penalty'],
            frequency_penalty=self.params['frequency_penalty'],
            stop=self.params['stop']
        )
        result = response.choices[0].text
        return result
    
    def append_ctx(self, role, content):
        self.ctx.append({
            "role": role,
            "content": content
        })
        
    def send_message(self, message, role="user"):
        self.ctx.append({
            "role": role,
            "content": message
        })
        result = openai.ChatCompletion.create(
            model=self.params['model'],
            messages=self.ctx,
            names={
                "system": self.params['system_name'],
                "user": self.params['user_name'],
                "assistant": self.params['assistant_name']
            },
            max_tokens=self.params['max_tokens'],
            half_life=self.params['half_life'],
            top_p=self.params['top_p'],
            temperature=self.params['temperature'],
            presence_penalty=self.params['presence_penalty'],
            frequency_penalty=self.params['frequency_penalty'],
            stop=self.params['stop']
        )
        result = result.choices[0].message['content']
        self.ctx.append({
            "role": "assistant",
            "content": result
        })
        return result
    
ai00 = Ai00()
ai00.set_params(
    max_tokens = 4096,
    top_p = 0.55,
    temperature = 2,
    presence_penalty = 0.3,
    frequency_penalty = 0.8,
    half_life = 400,
    stop = ['\x00','\n\n']
)
print(ai00.send_message("how are you?"))
print(ai00.send_message("me too!"))
print(ai00.get_ctx())
ai00.clear_ctx()
print(ai00.continuation("i like"))

BNF 采样

自 v0.5 版本起,Ai00 引入了一项独特的功能——BNF 采样。BNF 通过限制模型可选择的下一个标记,强制模型按照指定的格式(例如包含特定字段的 JSON 或 Markdown)进行输出。

以下是一个包含“name”、“age”和“job”字段的 JSON 的 BNF 示例:

start ::= json_object;
json_object ::= "{\n" object_members "\n}";
object_members ::= json_member | json_member ",\n" object_members;
json_member ::= "\t" json_key ": " json_value;
json_key ::= '"' "name" '"' | '"' "age" '"' | '"' "job" '"';
json_value ::= json_string | json_number;
json_string ::= '"'content'"';
content ::= #"\\w*";
json_number ::= positive_digit digits|'0';
digits ::= digit|digit digits;
digit ::= '0'|positive_digit;
positive_digit::="1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9";

📙WebUI 截图

聊天

续写

论文(并行推理演示)

📝待办事项清单

  • 支持 text_completionschat_completions
  • 支持 SSE 推送
  • 集成基础前端
  • 通过 batch serve 实现并行推理
  • 支持 int8 量化
  • 支持 NF4 量化
  • 支持 LoRA 模型
  • 支持微调的初始状态
  • 热加载和切换 LoRA 模型
  • 热加载和切换微调的初始状态
  • BNF 采样

👥加入我们

我们始终欢迎对改进项目感兴趣的人士。如果您对以下任何一项感兴趣,请加入我们!

  • 💀编写代码
  • 💬提供反馈
  • 🔆提出想法或需求
  • 🔍测试新功能
  • ✏翻译文档
  • 📣推广项目
  • 🏅任何其他对我们有帮助的事情

无论您的技能水平如何,我们都欢迎您加入。您可以通过以下方式加入我们:

  • 加入我们的 Discord 频道
  • 加入我们的 QQ 群
  • 在 GitHub 上提交问题或拉取请求
  • 在我们的网站上留下反馈

我们迫不及待地想与您合作,共同让这个项目变得更好!希望该项目能对您有所帮助!

致谢

感谢这些富有洞察力且杰出的个人,他们对本项目给予了支持,并无私奉献!

顾真牛
顾真牛

📖 💻 🖋 🎨 🧑‍🏫
研究社交
研究社交

💻 💡 🤔 🚧 👀 📦
josc146
josc146

🐛 💻 🤔 🔧
l15y
l15y

🔧 🔌 💻
Cahya Wirawan
Cahya Wirawan

🐛
yuunnn_w
yuunnn_w

📖 ⚠️
longzou
longzou

💻 🛡️
luoqiqi
luoqiqi

📖

星标数量随时间变化

星标数量随时间变化

版本历史

v0.6.22025/10/20
v0.6.12025/09/14
v0.6.02025/03/06
v0.5.142025/02/14
v0.5.132025/02/09
v0.5.122025/01/10
v0.5.112024/12/15
v0.5.92024/11/09
v0.5.82024/09/10
v0.5.72024/08/31
v0.5.62024/08/17
v0.5.52024/08/11
v0.5.42024/07/27
v0.5.32024/06/21
v0.5.22024/06/12
v0.5.12024/05/24
v0.5.02024/05/21
v0.4.92024/05/15
v0.4.82024/05/10
v0.4.72024/05/08

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

156.8k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.3k|★★☆☆☆|5天前
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|6天前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架