?报告错误
请求功能
?️报告漏洞
?️Wiki
支持AI跑步者
通过选择以下捐款选项之一来展示您对该项目的支持。
- 加密:0x02030569E866E22C9991F55DB04445EEAD2D646C8
- GitHub赞助商:https://github.com/sponsors/w4ffl35
- Patreon:https://www.patreon.com/c/w4ffl35
包装版本发布时通知通知
| 关键功能 |
|---|
| 实时对话 |
| – 三个语音引擎:Espeak,SpeechT5,OpenVoice – 自动语言检测(OpenVoice) – 与LLM的实时语音聊天 |
| ?可自定义的AI代理商 |
| – 自定义代理人的名称,情绪,个性 – 检索型发电(RAG) – 创建AI个性和心情 |
| 增强的知识检索 |
| – 文档/网站的抹布 – 使用本地数据丰富聊天 |
| ?️图像生成和操纵 |
| – 文本到图像(稳定扩散1.5,SDXL,Turbo) – 绘图工具和控制网 -Lora&Embeddings – 覆盖,支出,过滤器 |
| ?多语言功能 |
| – 部分多语言TTS/STT/接口 – 英语和日本GUI |
| 隐私优先网络浏览器 |
| – 内置的安全浏览器,带有截面配置文件 -HTTPS仅执行和严格证书验证 – 网络内容分析的抹布集成 – 文字提取和摘要工具 – 零持续跟踪或数据存储 |
| 隐私和安全 |
| – 在本地运行,没有外部API(默认) – 可自定义的LLM护栏和图像安全 – 禁用拥抱面遥测 – 限制网络访问 |
| ⚡绩效与实用程序 |
| – 快速一代(RTX 2080S上的〜2s) – 基于Docker的设置和GPU加速 – 主题(轻/黑/系统) -NSFW切换 – 扩展API – Python Library和API支持 |
?语言支持
| 语言 | TTS | LLM | stt | GUI |
|---|---|---|---|---|
| 英语 | ✅ | ✅ | ✅ | ✅ |
| 日本人 | ✅ | ✅ | ✅ | |
| 西班牙语 | ✅ | ✅ | ||
| 法语 | ✅ | ✅ | ||
| 中国人 | ✅ | ✅ | ||
| 韩国人 | ✅ | ✅ |
?请求语言支持
?安装快速启动
系统要求
| 规格 | 最低限度 | 受到推崇的 |
|---|---|---|
| 操作系统 | Ubuntu 22.04,Windows 10 | Ubuntu 22.04(Wayland) |
| 中央处理器 | Ryzen 2700K或Intel Core i7-8700k | Ryzen 5800X或Intel Core i7-11700K |
| 记忆 | 16 GB RAM | 32 GB RAM |
| GPU | NVIDIA RTX 3060或更高 | NVIDIA RTX 4090或更高 |
| 网络 | 宽带(用于下载模型) | 宽带(用于下载模型) |
| 贮存 | 22 GB(带模型),6 GB(无模型) | 100 GB或更高 |
?安装步骤
-
安装系统要求
sudo apt update && sudo apt upgrade -y sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git nvidia-cuda-toolkit pipewire libportaudio2 libxcb-cursor0 gnupg gpg-agent pinentry-curses espeak xclip cmake qt6-qpa-plugins qt6-wayland qt6-gtk-platformtheme mecab libmecab-dev mecab-ipadic-utf8 libxslt-dev mkcert sudo apt install espeak sudo apt install espeak-ng-espeak -
创建airunner目录airunner
sudo chown $USER:$USER ~/.local/share/ airunner \”>sudo mkdir ~ /.local/share/ airunner sudo chown $USER : $USER ~ /.local/share/ airunner
- 建议安装AI Runner -Python 3.13+必需的Pyenv和Venv(请参阅Wiki,有关更多信息)
pip install \" typing-extensions==4.13.2 \" pip install torch torchvision torchaudio --index-url https://download.py*t*or*ch.org/whl/cu128 pip install airunner [all_dev] -
跑步AI跑步者
airunner
有关更多选项,包括Docker,请参阅安装Wiki。
基本用法
- Run AI Runner : airunner
- 运行下载器: airunner -setup
- 构建模板: airunner -build -UI
?型号
|
这些是为AI跑步者供电的可选模型的尺寸。
堆AI跑步者使用以下堆栈
|
LLM供应商
?艺术模型默认情况下,AI Runner安装了必需的TTS/STT和最小LLM组件,但是AI ART模型必须由用户提供。 在您的本地AI跑步者数据目录下组织它们: airunner ~/.local/share/ airunner
├── art
│ └── models
│ ├── SD 1.5
│ │ ├── controlnet
│ │ ├── embeddings
│ │ ├── inpaint
│ │ ├── lora
│ │ └── txt2img
│ ├── Flux (not supported yet)
│ ├── SDXL 1.0
│ │ ├── controlnet
│ │ ├── embeddings
│ │ ├── inpaint
│ │ ├── lora
│ │ └── txt2img
│ └── SDXL Turbo
│ ├── controlnet
│ ├── embeddings
│ ├── inpaint
│ ├── lora
│ └── txt2img
可选的第三方服务
|
聊天机器人的情绪和对话摘要系统
- 默认情况下,聊天机器人的心情和对话摘要系统始终启用。每个机器人消息都会显示机器人的心情和表情符号。
- 当LLM更新机器人的心情或总结对话时,聊天提示窗口小部件中显示了加载旋转器和状态消息。一条新消息到达后,指示器就会消失。
- 该系统是自动的,不需要用户配置。
- 有关更多详细信息,请参阅LLM聊天提示窗口小部件。
- 现在,情绪和摘要引擎已完全集成到代理运行时。当代理更新情绪或总结对话时,它会通过可自定义的加载消息向UI发出信号。聊天提示窗口小部件将此消息显示为加载指示器。
- 有关集成详细信息,请参见src/ airunner /handlers/llm/agent/agents/base.py和src/ airunner /api/chatbot_services.py for api函数。
?聚合搜索工具
AI Runner包括一个汇总搜索工具,用于从统一接口查询多个在线服务。该工具可作为NodeGraphQt节点,LLM代理工具和Python API提供。
支持的搜索服务:
- DuckDuckgo(无需API密钥)
- Wikipedia(无需API密钥)
- ARXIV(无需API密钥)
- Google自定义搜索(需要Google_api_key和Google_cse_id)
- Bing Web搜索(需要Bing_subscription_key)
- newsapi(需要newsapi_key)
- stackexchange(可选的stackexchange_key,用于更高配额)
- GitHub存储库(可选的GitHub_Token,用于更高速率限制)
- OpenLibrary(无需API密钥)
API密钥设置:
- 在运行AI Runner之前,将所需的API键设置为环境变量。只需查询带有有效密钥的服务。
- 例子:
export GOOGLE_API_KEY=your_google_api_key export GOOGLE_CSE_ID=your_google_cse_id export BING_SUBSCRIPTION_KEY=your_bing_key export NEWSAPI_KEY=your_newsapi_key export STACKEXCHANGE_KEY=your_stackexchange_key export GITHUB_TOKEN=your_github_token
用法:
- 使用NodeGraphQT中的汇总搜索节点进行视觉工作流程。
- 调用LLM代理或Python代码的工具: airunner.components.tools import AggregatedSearchTool
results = await AggregatedSearchTool.aggregated_search(\”python\”, category=\”web\”)\”>from airunner . components . tools import AggregatedSearchTool results = await AggregatedSearchTool . aggregated_search ( \"python\" , category = \"web\" )
- 有关更多详细信息,请参见src/ airunner /tools/readme.md。
笔记:
- DuckDuckgo,Wikipedia,Arxiv和OpenLibrary不需要API键,并且可以在开箱即用。
- 为了获得最佳结果和全面的服务覆盖范围,请配置所有相关的API键。
为本地HTTP服务器启用HTTP
AI Runner的本地服务器为所有本地资源执行仅HTTPS的操作。 HTTP永远不会用于本地静态资产或API端点。在启动时,服务器记录有关HTTPS模式和使用证书/密钥的明确详细信息。设置了安全标头,仅允许GET/HEAD方法进一步硬化。
如何启用SSL/TLS(HTTPS)
-
自动证书生成(建议):
- 默认情况下,AI Runner将在不存在的情况下自动生成〜/.local/share/ airunner /certs的自签名证书。大多数用户不需要手动步骤。
- 如果您想提供自己的证书,请在AI跑步者基本路径下将CERT.PEM和键。
-
手动证书生成(可选):
- 您可以用以下方式手动生成自签名的证书
airunner -generate-cert - 这将在您当前目录中创建cert.pem和key.pem。如果您想使用它们,将它们移至AI Runner Certs目录。
- 您可以用以下方式手动生成自签名的证书
-
配置AI Runner以使用SSL:
- 该应用将自动使用CERTS目录中的证书。如果要覆盖,请设置环境变量: airunner_SSL_CERT=~/path/to/cert.pem
export airunner _SSL_KEY=~/path/to/key.pem
airunner \”>export airunner _SSL_CERT= ~ /path/to/cert.pem export airunner _SSL_KEY= ~ /path/to/key.pem airunner
- 如果提供两个文件,服务器将使用HTTP。
- 该应用将自动使用CERTS目录中的证书。如果要覆盖,请设置环境变量: airunner_SSL_CERT=~/path/to/cert.pem
-
通过https:// localhost访问应用程序:<port>
- 默认端口为5005(可在src / airunner / settings.py中配置)。
- 您的浏览器可能会警告自我签名的证书;您可以安全地绕过这一点,以进行本地开发。
安全说明
- 对于生产或远程访问,请使用受信任的CA的证书。
- 切勿共享您的私钥(key.pem)。
- 默认情况下,服务器仅绑定到127.0.0.1。
- 有关其他硬化,请参阅LOCAL_HTTP_SERVER.PY中的“安全指南”和“代码注释”。
?生成自签名证书( airunner -Gener-Cert)
您可以使用单个命令生成本地HTTP的自签名的SSL证书:
airunner -generate-cert
这将在您当前目录中创建cert.pem和key.pem。如上所述,将这些文件与本地HTTP服务器一起使用。
有关详细信息,请参见SSL/TLS部分。
值得信赖的本地HTTP的其他要求
- 对于经过浏览器信任的本地HTTPS体验(无警告),请安装MKCERT:
# On Ubuntu/Debian: sudo apt install libnss3-tools brew install mkcert # (on macOS, or use your package manager) mkcert -install
- 如果未安装MKCERT,AI Runner将归还给OpenSSL自签名证书,这将显示浏览器警告。
- 有关详细信息,请参见SSL/TLS部分。
命令行工具
AI Runner提供了多个用于开发,测试和维护的CLI命令。以下是所有可用命令的摘要:
| 命令 | 描述 |
|---|---|
| airunner | 启动AI Runner应用程序GUI。 |
| airunner -setup | 下载并设置所需的模型和数据。 |
| airunner -Build -UI | 从.UI模板再生Python UI文件。编辑任何.UI文件后运行。 |
| airunner -Compile -Cranslations | 编译翻译文件以进行国际化。 |
| airunner测试 | 使用Pytest运行完整的测试套件。 |
| airunner测试覆盖报告 | 生成测试覆盖报告。 |
| airunner -Docker | 为AI跑步者运行与Docker相关的构建和管理命令。 |
| airunner生成移民 | 生成一个新的ALEMBIC数据库迁移。 |
| airunner -Generate -Cert | 为本地HTTPS生成自签名的SSL证书。 |
| airunner -Mypy <文件名> | 运行带有项目标记的文件上的MyPy类型检查。 |
用法示例:
airunner
# Download models and set up data
airunner -setup
# Build UI Python files from .ui templates
airunner -build-ui
# Compile translation files
airunner -compile-translations
# Run all tests
airunner -tests
# Generate a test coverage report
airunner -test-coverage-report
# Run Docker build or management tasks
airunner -docker
# Generate a new Alembic migration
airunner -generate-migration
# Generate a self-signed SSL certificate
airunner -generate-cert
# Run mypy type checking on a file
airunner -mypy src/ airunner /components/document_editor/gui/widgets/document_editor_widget.py\”>
# Launch the app airunner # Download models and set up data airunner -setup # Build UI Python files from .ui templates airunner -build-ui # Compile translation files airunner -compile-translations # Run all tests airunner -tests # Generate a test coverage report airunner -test-coverage-report # Run Docker build or management tasks airunner -docker # Generate a new Alembic migration airunner -generate-migration # Generate a self-signed SSL certificate airunner -generate-cert # Run mypy type checking on a file airunner -mypy src/ airunner /components/document_editor/gui/widgets/document_editor_widget.py
有关每个命令的更多详细信息,请参见Wiki或使用-HELP运行命令。
斜线工具(聊天斜线命令)
AI Runner支持一组强大的聊天斜线命令,称为Slash工具,可让您直接从聊天提示符中触发特殊动作,工具或工作流程。这些命令以A /开头,可以在任何聊天对话中使用。
如何使用
- 在聊天提示符中键入 /查看可用命令(在UI中支持AutoComplete)。
- 每个SLASH命令映射到特定的工具,代理操作或工作流程。
- 可用命令的集合是可扩展的,可能包括自定义或扩展提供的工具。
当前的斜杠命令
| 削减 | 命令 | 动作类型 | 描述 |
|---|---|---|---|
| /一个 | 图像 | generate_image | 从提示中生成图像 |
| /b | 浏览器 | 浏览器 | 打开/导航到网页 |
| /c | 代码 | 代码 | 运行或生成代码(如果支持) |
| /s | 搜索 | 搜索 | 搜索网络或知识库 |
| /w | 工作流程 | 工作流程 | 运行自定义工作流(如果支持) |
笔记:
- 一些斜线工具(例如,用于浏览器的 /b和 /a的图像)返回立即确认消息(例如,“好,我已经导航到…”,“好,生成图像…”)。
- 其他(例如 /s用于搜索或用于工作流程的s)不要返回直接消息,而是显示加载指示器,直到结果准备就绪。
- 可用的Slash命令集在src / airunner / settings.py中的slash_commands中定义,将来可能会扩展。
有关支持的Slash命令的完整列表,请在聊天提示符中输入 /帮助,或查看副词-Instructions.md。
贡献
我们欢迎使用新功能,错误修复或文档改进请求。您还可以构建和共享扩展名来扩展AI Runner的功能。有关详细信息,请参见扩展Wiki。
查看贡献文档和开发Wiki页面以获取详细说明。
?测试和测试组织
AI Runner使用Pytest进行所有自动测试。测试覆盖范围是优先事项,尤其是用于公用事业模块。
测试目录结构
-
无头安全测试:
- 位于src/ airunner /utils/tests/
- 可以在任何环境(包括CI,无头服务器和开发人员机器)中运行
- 运行:
pytest src/ airunner /utils/tests/
-
显示率(QT/XVFB)测试:
- 位于src/ airunner /utils/tests/xvfb_required/
- 需要真正的QT显示环境(不能无头或使用Pytest-QT运行)
- 低级QT工作/信号/插槽逻辑的典型特征
- 运行: airunner/utils/tests/xvfb_required/
# Or for a single file:
xvfb-run -a pytest src/ airunner /utils/tests/xvfb_required/test_background_worker.py\”>xvfb-run -a pytest src/ airunner /utils/tests/xvfb_required/ # Or for a single file: xvfb-run -a pytest src/ airunner /utils/tests/xvfb_required/test_background_worker.py - 有关详细信息,请参见xvfb_required/ the readme。
CI/CD
- 默认情况下,仅在CI中进行无头安全测试。
- 显示率的测试旨在用于手动或特殊案例运行(例如,处理QT线程或背景工作代码时)。
- (可选)您可以通过为XVFB测试添加单独的作业/步骤来自动化CI中的此拆分。
一般测试指南
- 所有新的实用代码都必须伴随测试。
- 使用pytest,pytest-qt(用于GUI)和UnitTest.mock进行模拟依赖性。
- 有关编写和组织测试的更多详细信息,请参见项目编码指南以及SRC/ airunner / Utils/ Tests/ Folder。
开发与测试
- 遵循Copilot-Instructions.md以获取所有开发,测试和贡献指南。
- 始终在终端中使用airunner命令来运行应用程序。
- 始终在终端中运行测试(不是在工作区测试跑者中)。
- 使用PYTEST和PYTEST-COV进行运行测试和检查覆盖范围。
- UI更改必须在.UI文件中进行,并与airunner -Build -UI进行重建。
文档
- 有关建筑,用法和高级主题,请参见Wiki。
模块文档
- API服务层
- 主窗口模型负载平衡器
- FaceHugger Shield Suite
- NodeGraphQT供应商模块
- XVFB要求的测试
- ORM型号
- 地图
有关其他详细信息,请参阅Wiki。
nominatim地理编码API
如果您想完全离线使用OpenStreet Maps,则可以运行自己的本地nominatim实例。
NOMINATIM_PATH=/some/path sudo mkdir -p $NOMINATIM_PATH /nominatim_data sudo mkdir -p $NOMINATIM_PATH /nominatim_flatnode docker run -it \\ -e PBF_URL=https://download.ge**ofa*brik.de/north-america/us-latest.osm.pbf \\ -e REPLICATION_URL=https://download.ge*o*f*abrik.de/north-america/us-updates/ \\ -p 8080:8080 \\ -v nominatim-data:/var/lib/postgresql/data \\ --shm-size=2g \\ --name nominatim \\ mediagis/nominatim:5.1
-
启动现有容器:
docker start nominatim
-
使用日志:
docker start nominatim && docker logs -f nominatim -
停止现有容器:
docker stop nominatim
如果您使用完整的美国地图,服务器将花费几个小时才能设置。如果您想加快该过程,则可以使用较小的区域。
服务器运行后,您可以在http:// localhost:8080/。确保设置airunner_nominatim_url环境变量以指向您的本地nominatim实例:
airunner_NOMINATIM_URL=http://loca*l*hos*t:8080/
## Sponsorship
If you find this project useful, please consider sponsoring its development. Your support helps cover the costs of infrastructure, development, and maintenance.
You can sponsor the project on [GitHub Sponsors](https://*gith**ub.com/sponsors/Capsize-Games).
Thank you for your support!
### Past Sponsors
**[<image src=\”image.png\” alt=\”Open Core Ventures Catalyst Program\” style=\”max-width: 50px; height: auto;\” /> Open Core Ventures Catalyst Program](https://www.o*pencoreve*n*tures.com/)**\”>
export airunner_NOMINATIM_URL=http://loca*l*hos*t:8080/ # # Sponsorship If you find this project useful, please consider sponsoring its development. Your support helps cover the costs of infrastructure, development, and maintenance. You can sponsor the project on [GitHub Sponsors](https://*gith**ub.com/sponsors/Capsize-Games). Thank you for your support ! # ## Past Sponsors ** [ < image src = \" image.png \" alt = \" Open Core Ventures Catalyst Program \" style = \" max-width: 50px; height: auto; \" / > Open Core Ventures Catalyst Program](https://www.openc*oreven*tur*es.com/) **
