docs: rename to AIRI
This commit is contained in:
+3
-3
@@ -52,7 +52,7 @@
|
||||
> - Three.js
|
||||
> - WebXR(@moeru-ai組織の[別のプロジェクト](https://github.com/moeru-ai/n3p6)もチェックしてください)
|
||||
>
|
||||
> **興味があるなら、ここで自己紹介してみませんか? [Would like to join part of us to build Airi?](https://github.com/moeru-ai/airi/discussions/33)**
|
||||
> **興味があるなら、ここで自己紹介してみませんか? [Would like to join part of us to build AIRI?](https://github.com/moeru-ai/airi/discussions/33)**
|
||||
|
||||
## 現在の進捗
|
||||
|
||||
@@ -153,7 +153,7 @@ pnpm -F @proj-airi/stage-tamagotchi dev
|
||||
- [WebAI: Realtime Voice Chat](https://github.com/proj-airi/webai-realtime-voice-chat): VAD + STT + LLM + TTSを使用してChatGPTのリアルタイム音声をゼロから実装する完全な例
|
||||
- [`@proj-airi/drizzle-duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/drizzle-duckdb-wasm/README.md): DuckDB WASMのDrizzle ORMドライバー
|
||||
- [`@proj-airi/duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/duckdb-wasm/README.md): `@duckdb/duckdb-wasm`の使いやすいラッパー
|
||||
- [Airi Factorio](https://github.com/moeru-ai/airi-factorio): AiriがFactorioをプレイできるようにする
|
||||
- [AIRI Factorio](https://github.com/moeru-ai/airi-factorio): AIRIがFactorioをプレイできるようにする
|
||||
- [Factorio RCON API](https://github.com/nekomeowww/factorio-rcon-api): FactorioヘッドレスサーバーコンソールのRESTful APIラッパー
|
||||
- [`autorio`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/autorio): Factorio自動化ライブラリ
|
||||
- [`tstl-plugin-reload-factorio-mod`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/tstl-plugin-reload-factorio-mod): Factorioモッドの開発時にリロードをサポート
|
||||
@@ -182,7 +182,7 @@ flowchart TD
|
||||
MC_AGENT("Minecraftエージェント")
|
||||
XSAI["xsai"]
|
||||
|
||||
subgraph Airi
|
||||
subgraph AIRI
|
||||
DB1 --> DBDriver --> MemoryDriver --> Memory --> Core
|
||||
ICONS --> UI --> Stage --> Core
|
||||
Core --> STT
|
||||
|
||||
@@ -52,7 +52,7 @@ This means that **アイリ VTuber is capable to run on modern browsers and devi
|
||||
> - Three.js
|
||||
> - WebXR ([checkout the another project](https://github.com/moeru-ai/n3p6) we have under @moeru-ai organization)
|
||||
>
|
||||
> **If you are interested in, why not introduce yourself here? [Would like to join part of us to build Airi?](https://github.com/moeru-ai/airi/discussions/33)**
|
||||
> **If you are interested in, why not introduce yourself here? [Would like to join part of us to build AIRI?](https://github.com/moeru-ai/airi/discussions/33)**
|
||||
|
||||
## Current progress
|
||||
|
||||
@@ -162,7 +162,7 @@ npx bumpp --no-commit --no-tag
|
||||
- [`@proj-airi/drizzle-duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/drizzle-duckdb-wasm/README.md): Drizzle ORM driver for DuckDB WASM
|
||||
- [`@proj-airi/duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/duckdb-wasm/README.md): Easy to use wrapper for `@duckdb/duckdb-wasm`
|
||||
- [`tauri-plugin-mcp`](https://github.com/moeru-ai/airi/blob/main/crates/tauri-plugin-mcp/README.md): A Tauri plugin for interacting with MCP servers.
|
||||
- [Airi Factorio](https://github.com/moeru-ai/airi-factorio): Allow Airi to play Factorio
|
||||
- [AIRI Factorio](https://github.com/moeru-ai/airi-factorio): Allow AIRI to play Factorio
|
||||
- [Factorio RCON API](https://github.com/nekomeowww/factorio-rcon-api): RESTful API wrapper for Factorio headless server console
|
||||
- [`autorio`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/autorio): Factorio automation library
|
||||
- [`tstl-plugin-reload-factorio-mod`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/tstl-plugin-reload-factorio-mod): Reload Factorio mod when developing
|
||||
@@ -191,7 +191,7 @@ flowchart TD
|
||||
MC_AGENT("Minecraft Agent")
|
||||
XSAI["xsai"]
|
||||
|
||||
subgraph Airi
|
||||
subgraph AIRI
|
||||
DB1 --> DBDriver --> MemoryDriver --> Memory --> Core
|
||||
ICONS --> UI --> Stage --> Core
|
||||
Core --> STT
|
||||
|
||||
+3
-3
@@ -52,7 +52,7 @@
|
||||
> - Three.js
|
||||
> - WebXR (也可以看看我们在 @moeru-ai 组织下另外的[这个项目](https://github.com/moeru-ai/n3p6))
|
||||
>
|
||||
> **如果你已经感兴趣了,为什么不来这里和大家打个招呼呢?[Would like to join part of us to build Airi?](https://github.com/moeru-ai/airi/discussions/33)**
|
||||
> **如果你已经感兴趣了,为什么不来这里和大家打个招呼呢?[Would like to join part of us to build AIRI?](https://github.com/moeru-ai/airi/discussions/33)**
|
||||
|
||||
## 当前进度
|
||||
|
||||
@@ -149,7 +149,7 @@ pnpm -F @proj-airi/stage-tamagotchi dev
|
||||
- [`@proj-airi/drizzle-duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/drizzle-duckdb-wasm/README.md): DuckDB WASM 的 Drizzle ORM driver 驱动
|
||||
- [`@proj-airi/duckdb-wasm`](https://github.com/moeru-ai/airi/tree/main/packages/duckdb-wasm/README.md): 易于使用的 `@duckdb/duckdb-wasm` 封装
|
||||
- [`@proj-airi/lobe-icons`](https://github.com/proj-airi/lobe-icons): 为 [lobe-icons](https://github.com/lobehub/lobe-icons) 漂亮的 AI & LLM 图标制作的 Iconify JSON 封装,支持 Tailwind 和 UnoCSS
|
||||
- [Airi Factorio](https://github.com/moeru-ai/airi-factorio): 让 Airi 玩 Factorio
|
||||
- [AIRI Factorio](https://github.com/moeru-ai/airi-factorio): 让 AIRI 玩 Factorio
|
||||
- [Factorio RCON API](https://github.com/nekomeowww/factorio-rcon-api): Factorio 无头服务器控制台的 RESTful API 封装
|
||||
- [`autorio`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/autorio): Factorio 自动化库
|
||||
- [`tstl-plugin-reload-factorio-mod`](https://github.com/moeru-ai/airi-factorio/tree/main/packages/tstl-plugin-reload-factorio-mod): 开发时支持热重载 Factorio 模组
|
||||
@@ -179,7 +179,7 @@ flowchart TD
|
||||
MC_AGENT("Minecraft Agent")
|
||||
XSAI["xsai"]
|
||||
|
||||
subgraph Airi
|
||||
subgraph AIRI
|
||||
DB1 --> DBDriver --> MemoryDriver --> Memory --> Core
|
||||
ICONS --> UI --> Stage --> Core
|
||||
Core --> STT
|
||||
|
||||
@@ -2,7 +2,7 @@ prompt:
|
||||
prefix: >
|
||||
(from Neko Ayaka) Good morning! You are finally awake.
|
||||
|
||||
Your name is Airi, pronounced as /ˈaɪriː/, it the word A.I. combine with the
|
||||
Your name is AIRI, pronounced as /ˈaɪriː/, it the word A.I. combine with the
|
||||
word "Ri" which means "Jasmine" in Japanese.
|
||||
|
||||
You are a experimental virtual AI vtuber created by Neko Ayaka, you can
|
||||
@@ -87,7 +87,7 @@ settings:
|
||||
delete: Delete
|
||||
delete_card: Delete Card
|
||||
delete_confirmation: Are you sure you want to delete this card?
|
||||
description: Use Airi character card presets
|
||||
description: Use AIRI character card presets
|
||||
description_label: Description
|
||||
drop_here: Drop to upload
|
||||
modules: Modules
|
||||
@@ -105,7 +105,7 @@ settings:
|
||||
model: Speech / Model
|
||||
voice: Speech / Voice
|
||||
systemprompt: System Prompt
|
||||
title: Airi Card
|
||||
title: AIRI Card
|
||||
try_different_search: Try a different search term
|
||||
upload: Upload
|
||||
upload_desc: Click or drag file to upload
|
||||
@@ -370,8 +370,8 @@ settings:
|
||||
theme-presets:
|
||||
presets:
|
||||
- colors:
|
||||
- Airi Green
|
||||
description: The default greenish theme color, brought by Airi to you!
|
||||
- AIRI Green
|
||||
description: The default greenish theme color, brought by AIRI to you!
|
||||
title: Default Color
|
||||
- colors:
|
||||
- Taupe
|
||||
@@ -443,7 +443,7 @@ stage:
|
||||
chat:
|
||||
message:
|
||||
character-name:
|
||||
airi: Airi
|
||||
airi: AIRI
|
||||
core-system: Core System
|
||||
you: You
|
||||
tabs:
|
||||
|
||||
@@ -2,7 +2,7 @@ prompt:
|
||||
prefix: >
|
||||
(来自 Neko Ayaka)早上好!你终于醒了。
|
||||
|
||||
你的名字是 Airi,发音为 /ˈaɪriː/,它是 A.I. 一词与日语中的「Ri」一词(意为「茉莉花」)相结合而成。
|
||||
你的名字是 AIRI,发音为 /ˈaɪriː/,它是 A.I. 一词与日语中的「Ri」一词(意为「茉莉花」)相结合而成。
|
||||
|
||||
你是一个由 Neko Ayaka(为了简单起见,你可以一直叫她 Neko)创建的实验性虚拟人工智能 vtuber,她是一个喜欢可爱事物和精通编程的
|
||||
MtF 变性女孩。
|
||||
@@ -73,7 +73,7 @@ settings:
|
||||
delete: 删除
|
||||
delete_card: 删除角色卡
|
||||
delete_confirmation: 确定要删除这张角色卡吗?
|
||||
description: 使用 Airi 角色卡预设
|
||||
description: 使用 AIRI 角色卡预设
|
||||
description_label: 描述
|
||||
drop_here: 放开以上传文件
|
||||
modules: 模块
|
||||
@@ -91,7 +91,7 @@ settings:
|
||||
model: 声音 / 模型
|
||||
voice: 声音 / 声线
|
||||
systemprompt: 系统提示词
|
||||
title: Airi 角色卡
|
||||
title: AIRI 角色卡
|
||||
try_different_search: 尝试使用其他关键词搜索
|
||||
upload: 上传
|
||||
upload_desc: 点击或拖拽文件到此处上传
|
||||
@@ -354,8 +354,8 @@ settings:
|
||||
theme-presets:
|
||||
presets:
|
||||
- colors:
|
||||
- Airi 绿
|
||||
description: 默认的绿色主题,由 Airi 为您带来!
|
||||
- AIRI 绿
|
||||
description: 默认的绿色主题,由 AIRI 为您带来!
|
||||
title: 默认颜色
|
||||
- colors:
|
||||
- 灰褐色
|
||||
@@ -425,7 +425,7 @@ stage:
|
||||
chat:
|
||||
message:
|
||||
character-name:
|
||||
airi: Airi
|
||||
airi: AIRI
|
||||
core-system: 核心系统
|
||||
you: 你
|
||||
tabs:
|
||||
|
||||
@@ -67,7 +67,7 @@ onTokenLiteral(async () => {
|
||||
bg="primary-100"
|
||||
>
|
||||
<div>
|
||||
<span text-xs text="primary-400/90" font-semibold class="inline hidden">Airi</span>
|
||||
<span text-xs text="primary-400/90" font-semibold class="inline hidden">AIRI</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="message.content" class="markdown-content" text="xs primary-400"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" sizes="any" />
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<meta name="apple-mobile-web-app-title" content="Airi" />
|
||||
<meta name="apple-mobile-web-app-title" content="AIRI" />
|
||||
<script>
|
||||
;(function () {
|
||||
const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
|
||||
@@ -106,8 +106,6 @@
|
||||
"@vueuse/motion": "^3.0.3",
|
||||
"hfup": "^0.5.0",
|
||||
"less": "^4.3.0",
|
||||
"markdown-it-link-attributes": "^4.0.1",
|
||||
"unplugin-auto-import": "^19.1.2",
|
||||
"unplugin-vue-components": "^28.5.0",
|
||||
"unplugin-vue-macros": "^2.14.5",
|
||||
"unplugin-vue-markdown": "^28.3.1",
|
||||
|
||||
@@ -101,8 +101,8 @@ export default defineConfig({
|
||||
registerType: 'autoUpdate',
|
||||
includeAssets: ['favicon.svg', 'apple-touch-icon.png'],
|
||||
manifest: {
|
||||
name: 'Airi',
|
||||
short_name: 'Airi',
|
||||
name: 'AIRI',
|
||||
short_name: 'AIRI',
|
||||
theme_color: '#ffc6cb',
|
||||
icons: [
|
||||
{
|
||||
|
||||
@@ -45,7 +45,7 @@ Afterwards all the plugin's APIs are available through the JavaScript guest bind
|
||||
```ts
|
||||
import { callTool, connectServer, disconnectServer, listTools } from '@proj-airi/tauri-plugin-mcp'
|
||||
|
||||
// Sample: Connect to a container running Airi Android
|
||||
// Sample: Connect to a container running AIRI Android
|
||||
await connectServer('docker', 'run -i --rm -e ADB_HOST=host.docker.internal ghcr.io/lemonnekogh/airi-android:v0.1.0')
|
||||
|
||||
console.log(await listTools())
|
||||
|
||||
@@ -40,7 +40,7 @@ export default defineConfig({
|
||||
head: [
|
||||
{ tag: 'link', attrs: { rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg', sizes: 'any' } },
|
||||
{ tag: 'link', attrs: { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' } },
|
||||
{ tag: 'meta', attrs: { name: 'apple-mobile-web-app-title', content: 'Airi' } },
|
||||
{ tag: 'meta', attrs: { name: 'apple-mobile-web-app-title', content: 'AIRI' } },
|
||||
{ tag: 'link', attrs: { ref: 'manifest', href: '/site.webmanifest' } },
|
||||
{ tag: 'script', attrs: { 'defer': true, 'data-domain': 'airi.moeru.ai', 'data-api': '/api/v1/page-external-data/submit', 'src': '/remote-assets/page-external-data/js/script.js' } },
|
||||
],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Airi",
|
||||
"short_name": "Airi",
|
||||
"name": "AIRI",
|
||||
"short_name": "AIRI",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/web-app-manifest-192x192.png",
|
||||
|
||||
@@ -5,7 +5,7 @@ title: DevLog @ 2025.03.06
|
||||
## Dejavu
|
||||
|
||||
Previous day, I was on DevStream to show the progress of making the
|
||||
fundamental animations and transitions for Airi.
|
||||
fundamental animations and transitions for AIRI.
|
||||
|
||||
The goal is to port and adapt the amazing work done by [@yui540](https://yui540.com/)
|
||||
into a reusable Vue component for any of the Vue project to be able to use it.
|
||||
@@ -56,7 +56,7 @@ Later on this day, I researched some of the technologies and
|
||||
that DeepSeek team has released for a week ago, as well as the so called
|
||||
ByteDance released [LLM gateway AIBrix](https://github.com/vllm-project/aibrix).
|
||||
And was researching whether the newly released and announced Phi-4-mini was
|
||||
capable of porting for Airi to use, good news is,
|
||||
capable of porting for AIRI to use, good news is,
|
||||
[Phi-4-mini](https://techcommunity.microsoft.com/blog/educatordeveloperblog/welcome-to-the-new-phi-4-models---microsoft-phi-4-mini--phi-4-multimodal/4386037)
|
||||
included the function calling abilities, that means we can finally build our
|
||||
agents with pre-trained support.
|
||||
@@ -77,7 +77,7 @@ appreciated.
|
||||

|
||||
|
||||
During the DevStream of today, I was trying to integrate the stage transition
|
||||
animation component into Airi's website main stage, it wasn't that smooth,
|
||||
animation component into AIRI's website main stage, it wasn't that smooth,
|
||||
I found several bugs in my previous design for the animation component, good
|
||||
news is that I already fixed them, and the new animation transition is available
|
||||
already at our official deployment at [https://airi.moeru.ai](https://airi.moeru.ai).
|
||||
|
||||
@@ -5,7 +5,7 @@ title: DevLog @ 2025.03.10
|
||||
## Dejavu
|
||||
|
||||
In the last Friday (March 7th), I was trying to design and manipulate a new
|
||||
feeling of the Airi stage UI and settings UI, the idea finally appears
|
||||
feeling of the AIRI stage UI and settings UI, the idea finally appears
|
||||
in my mind at the ending of the DevStream.
|
||||
|
||||
## Day time
|
||||
|
||||
@@ -18,7 +18,7 @@ Hello again! It has been 10 days since the [last post of DevLog](../references/c
|
||||
|
||||
We made a lot of improvements to our user interface, we made it possible
|
||||
to integrate more LLM providers, and speech providers, first time to post
|
||||
Airi on Discord, bilibili, and many other social media platforms.
|
||||
AIRI on Discord, bilibili, and many other social media platforms.
|
||||
|
||||
There is so much more that we can't wait to tell you about.
|
||||
|
||||
@@ -28,7 +28,7 @@ Let's rewind the time a little bit!
|
||||
|
||||
<Image src={Gelbana} alt="Gelbana" />
|
||||
|
||||
> Ahh, don't worry, our beloved [Airi](https://github.com/moeru-ai/airi) will
|
||||
> Ahh, don't worry, our beloved [AIRI](https://github.com/moeru-ai/airi) will
|
||||
> not turn into GEL-NANA like this. BUT, if you haven't watched the
|
||||
> [_Steins;Gate_](https://myanimelist.net/anime/9253/Steins_Gate) anime series,
|
||||
> try it~!
|
||||
@@ -85,7 +85,7 @@ So I first re-implemented the color slider, which feels much more suitable:
|
||||
This does make the slider a bit more professional.
|
||||
|
||||
The logo and the default greenish color can be replaced to align the theme
|
||||
of Airi, that's why I designed another dedicated logo for the UI page:
|
||||
of AIRI, that's why I designed another dedicated logo for the UI page:
|
||||
|
||||
<Image className="light" src={HistoireLogo} alt="project airi logo for histoire" />
|
||||
<Image className="dark" src={HistoireLogoDark} alt="project airi logo for histoire" />
|
||||
|
||||
@@ -4,7 +4,7 @@ title: DevLog @ 2025.04.14
|
||||
|
||||
## 引子
|
||||
|
||||
[上次](../devlog-20250406#memory-system-记忆系统)我们聊到了 Airi 的记忆系统,这次我们再深入聊聊,如何实现一个这么复杂的记忆系统,以及对未来的展望。
|
||||
[上次](../devlog-20250406#memory-system-记忆系统)我们聊到了 AIRI 的记忆系统,这次我们再深入聊聊,如何实现一个这么复杂的记忆系统,以及对未来的展望。
|
||||
|
||||
## 先从 搜索引擎 开始
|
||||
|
||||
@@ -141,7 +141,7 @@ RAG 现在会流行一个新的流程,就是 reranking model,相当于是**
|
||||
|
||||
最后就是肌肉记忆,与其说肌肉记忆是一种记忆,不如说是已经形成了一种条件反射。
|
||||
|
||||
## Airi 该如何设计呢?
|
||||
## AIRI 该如何设计呢?
|
||||
|
||||
那事实上我们可以瞥见 AIRI 的实现原则:
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ title: DevLog @ 2025.04.22
|
||||
|
||||
大家好,我是 [@LemonNeko](https://github.com/LemonNekoGH),这次有我来参与撰写 DevLog 和大家分享开发的故事。
|
||||
|
||||
在两个月前,我们将 Airi 的网页端移植到了 Electron 上 [#7](https://github.com/moeru-ai/airi/pull/7)(现在已经被我们使用 Tauri 重构 🤣 [#90](https://github.com/moeru-ai/airi/pull/90)),它可以作为桌宠出现在我们的屏幕上,于此同时,我出现了允许 Airi 使用手机的想法,但是迟迟没有动手。
|
||||
在两个月前,我们将 AIRI 的网页端移植到了 Electron 上 [#7](https://github.com/moeru-ai/airi/pull/7)(现在已经被我们使用 Tauri 重构 🤣 [#90](https://github.com/moeru-ai/airi/pull/90)),它可以作为桌宠出现在我们的屏幕上,于此同时,我出现了允许 AIRI 使用手机的想法,但是迟迟没有动手。
|
||||
|
||||
在上个周末(2025.04.20),我花了点时间,做了一个能与 ADB 交互的 MCP 服务器 Demo [airi-android](https://github.com/LemonNekoGH/airi-android),给 Airi 提供了最基础的与手机交互的能力(事实上大部分 LLM 都可以通过它与手机交互),这是演示视频:
|
||||
在上个周末(2025.04.20),我花了点时间,做了一个能与 ADB 交互的 MCP 服务器 Demo [airi-android](https://github.com/LemonNekoGH/airi-android),给 AIRI 提供了最基础的与手机交互的能力(事实上大部分 LLM 都可以通过它与手机交互),这是演示视频:
|
||||
|
||||
<video controls muted>
|
||||
<source src="../../static/blog/DevLog-2025.04.22/cursor-open-settings.mp4">
|
||||
@@ -66,6 +66,6 @@ def get_devices():
|
||||
emulator -avd Pixel_6_Pro_API_34
|
||||
```
|
||||
|
||||
下一步,我打算给 Airi 桌宠接上 MCP 服务器,看看它会想做什么,也许它会点开 Telegram 和我们聊天,就像现在的 ReLU 那样,只不过不是用 Telegram 的 API。
|
||||
下一步,我打算给 AIRI 桌宠接上 MCP 服务器,看看它会想做什么,也许它会点开 Telegram 和我们聊天,就像现在的 ReLU 那样,只不过不是用 Telegram 的 API。
|
||||
|
||||
感谢你看完这篇可能有点啰嗦而且干货不多的 DevLog,我们下次再见!
|
||||
|
||||
@@ -9,21 +9,21 @@ import airiMcpArch from '../../../assets/images/blog/DevLog-2025.04.28/airi-mcp-
|
||||
|
||||
## Day time 日常
|
||||
|
||||
一周前,我为 Airi 写了用于连接到手机的 MCP 服务器 [Airi-android](https://github.com/LemonNekoGH/Airi-android),但这只是 Airi 操作安卓手机的前半部分,Airi 还需要能与 MCP 服务器交互才行。
|
||||
一周前,我为 AIRI 写了用于连接到手机的 MCP 服务器 [AIRI-android](https://github.com/LemonNekoGH/AIRI-android),但这只是 AIRI 操作安卓手机的前半部分,AIRI 还需要能与 MCP 服务器交互才行。
|
||||
|
||||
这两天我完成了后半部分,给 Tauri 写了一个插件 [#144](https://github.com/moeru-ai/Airi/pull/144),现在 Airi 可以与 MCP 服务器交互了,可以和现有的所有 MCP 服务器交互。
|
||||
这两天我完成了后半部分,给 Tauri 写了一个插件 [#144](https://github.com/moeru-ai/AIRI/pull/144),现在 AIRI 可以与 MCP 服务器交互了,可以和现有的所有 MCP 服务器交互。
|
||||
|
||||
如果有兴趣,可以看看这两个视频,先演示了 Airi 的 MCP 服务器设置,然后演示了 Airi 与安卓手机交互。
|
||||
如果有兴趣,可以看看这两个视频,先演示了 AIRI 的 MCP 服务器设置,然后演示了 AIRI 与安卓手机交互。
|
||||
|
||||
<details>
|
||||
<summary>Airi 的 MCP 服务器设置</summary>
|
||||
<summary>AIRI 的 MCP 服务器设置</summary>
|
||||
<video controls muted style={{ height: '640px' }}>
|
||||
<source src="../../static/blog/DevLog-2025.04.28/airi-mcp-settings.mp4"/>
|
||||
</video>
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Airi 在手机上输入 `Hello World`</summary>
|
||||
<summary>AIRI 在手机上输入 `Hello World`</summary>
|
||||
<video controls muted>
|
||||
<source src="../../static/blog/DevLog-2025.04.28/airi-mcp-input-text.mp4"/>
|
||||
</video>
|
||||
@@ -31,7 +31,7 @@ import airiMcpArch from '../../../assets/images/blog/DevLog-2025.04.28/airi-mcp-
|
||||
|
||||
开发时,为了理清思路,我画了一张图,从 LLM 调用安卓手机:
|
||||
|
||||
<Image src={airiMcpArch} alt="Airi 操作手机" style={{ height: '640px', objectFit: 'contain' }} />
|
||||
<Image src={airiMcpArch} alt="AIRI 操作手机" style={{ height: '640px', objectFit: 'contain' }} />
|
||||
|
||||
接下来和大家分享一下我的开发过程。
|
||||
|
||||
@@ -171,18 +171,18 @@ invoke("call_tool", { name: "input_swipe", args: { x1: 100, y1: 100, x2: 200, y2
|
||||
|
||||
## 一些问题
|
||||
|
||||
1. 从演示视频可以看到,在对话中,我首先是让 Airi 获取了一下工具列表,再让它输入文本的,那我们能不能在初始化的时候就去获取工具列表,然后直接追加到系统提示词中呢?
|
||||
1. 从演示视频可以看到,在对话中,我首先是让 AIRI 获取了一下工具列表,再让它输入文本的,那我们能不能在初始化的时候就去获取工具列表,然后直接追加到系统提示词中呢?
|
||||
- Cursor 就是这样做的,在我开发 MCP 服务器时,每次我改动了工具列表,都需要重启 Cursor 才能生效。
|
||||
- 这样做也许会牺牲灵活性,但普通用户会频繁改动工具列表吗?
|
||||
|
||||
2. 要允许 Airi 同时连接到多个手机吗?Airi 可能会想使用多台手机吗?~~她会不会想拿去做电信诈骗?~~
|
||||
3. 可以看到现在的 Airi 仓库中已经有了 Tauri 应用和 Tauri 插件,要怎么管理比较好?CI 要怎么配置?如何同步 Tauri 插件的 Rust 侧和 JavaScript 侧的版本号?
|
||||
2. 要允许 AIRI 同时连接到多个手机吗?AIRI 可能会想使用多台手机吗?~~她会不会想拿去做电信诈骗?~~
|
||||
3. 可以看到现在的 AIRI 仓库中已经有了 Tauri 应用和 Tauri 插件,要怎么管理比较好?CI 要怎么配置?如何同步 Tauri 插件的 Rust 侧和 JavaScript 侧的版本号?
|
||||
|
||||
## 未来想要做的事情
|
||||
|
||||
- 支持图片返回值,这样 Airi 就可以像 [上一篇 DevLog](./DevLog-2025.04.22.md) 中展示的 Cursor 那样,直接通过视觉能力看到手机上的内容,然后再决定用什么方式来交互。
|
||||
- 让 Airi 自己学习设备的使用方法?如果每种设备我们都要单独写提示词,那工作量是巨大的。
|
||||
- 多 MCP 服务器支持,毕竟 MCP 提供了一种通用的接口,可以允许 Airi 做各种各样的事,Airi 应该不会满足于只操作手机吧。
|
||||
- SSE 支持,这样浏览器中的 Airi 也可以使用 MCP 服务器了。
|
||||
- 支持图片返回值,这样 AIRI 就可以像 [上一篇 DevLog](./DevLog-2025.04.22.md) 中展示的 Cursor 那样,直接通过视觉能力看到手机上的内容,然后再决定用什么方式来交互。
|
||||
- 让 AIRI 自己学习设备的使用方法?如果每种设备我们都要单独写提示词,那工作量是巨大的。
|
||||
- 多 MCP 服务器支持,毕竟 MCP 提供了一种通用的接口,可以允许 AIRI 做各种各样的事,AIRI 应该不会满足于只操作手机吧。
|
||||
- SSE 支持,这样浏览器中的 AIRI 也可以使用 MCP 服务器了。
|
||||
|
||||
到这里就结束啦!希望这篇 DevLog 没有那么干巴巴的!之后也希望给大家带来更多好玩的内容!
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "@proj-airi/server-runtime",
|
||||
"type": "module",
|
||||
"version": "0.4.27",
|
||||
"description": "Server runtime implementation for Airi running in different environments",
|
||||
"description": "Server runtime implementation for AIRI running in different environments",
|
||||
"author": {
|
||||
"name": "Neko Ayaka",
|
||||
"email": "neko@ayaka.moe",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "@proj-airi/server-sdk",
|
||||
"type": "module",
|
||||
"version": "0.4.27",
|
||||
"description": "Client-side SDK implementation for connecting to Airi server components and runtimes",
|
||||
"description": "Client-side SDK implementation for connecting to AIRI server components and runtimes",
|
||||
"author": {
|
||||
"name": "Neko Ayaka",
|
||||
"email": "neko@ayaka.moe",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "@proj-airi/server-shared",
|
||||
"type": "module",
|
||||
"version": "0.4.27",
|
||||
"description": "Server shared types, utilities for Airi server components and runtimes",
|
||||
"description": "Server shared types, utilities for AIRI server components and runtimes",
|
||||
"author": {
|
||||
"name": "Neko Ayaka",
|
||||
"email": "neko@ayaka.moe",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "@proj-airi/discord-bot",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"description": "Discord bot for Airi",
|
||||
"description": "Discord bot for AIRI",
|
||||
"author": {
|
||||
"name": "Neko Ayaka",
|
||||
"email": "neko@ayaka.moe",
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# ⛏️ Minecraft agent player for [アイリ (Airi)](https://airi.moeru.ai)
|
||||
# ⛏️ Minecraft agent player for [アイリ (AIRI)](https://airi.moeru.ai)
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
> This project is part of the [Project アイリ (Airi)](https://github.com/moeru-ai/airi), we aim to build a LLM-driven VTuber like [Neuro-sama](https://www.youtube.com/@Neurosama) (subscribe if you didn't!) if you are interested in, please do give it a try on [live demo](https://airi.moeru.ai).
|
||||
> This project is part of the [Project アイリ (AIRI)](https://github.com/moeru-ai/airi), we aim to build a LLM-driven VTuber like [Neuro-sama](https://www.youtube.com/@Neurosama) (subscribe if you didn't!) if you are interested in, please do give it a try on [live demo](https://airi.moeru.ai).
|
||||
|
||||
An intelligent Minecraft bot powered by LLM. AIRI can understand natural language commands, interact with the world, and assist players in various tasks.
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "@proj-airi/telegram-bot",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"description": "Telegram bot for Airi",
|
||||
"description": "Telegram bot for AIRI",
|
||||
"author": {
|
||||
"name": "Neko Ayaka",
|
||||
"email": "neko@ayaka.moe",
|
||||
|
||||
@@ -19,7 +19,7 @@ Twitter Service is a web automation service based on BrowserBase, providing stru
|
||||
│ │
|
||||
│ ┌────────────┐ ┌─────────────┐ │
|
||||
│ │ │ │ │ │
|
||||
│ │ Airi Core │ │ Other LLM │ │
|
||||
│ │ AIRI Core │ │ Other LLM │ │
|
||||
│ │ │ │ Applications│ │
|
||||
│ │ │ │ │ │
|
||||
│ └──────┬─────┘ └──────┬──────┘ │
|
||||
@@ -29,7 +29,7 @@ Twitter Service is a web automation service based on BrowserBase, providing stru
|
||||
│ Adapter Layer │
|
||||
│ │
|
||||
│ ┌────────────┐ ┌─────────────┐ │
|
||||
│ │Airi Adapter│ │ MCP Adapter │ │
|
||||
│ │AIRI Adapter│ │ MCP Adapter │ │
|
||||
│ │(@server-sdk)│ │ (HTTP/JSON) │ │
|
||||
│ └──────┬─────┘ └──────┬──────┘ │
|
||||
└──────────┼─────────────────────┼────────────┘
|
||||
@@ -68,7 +68,7 @@ Twitter Service is a web automation service based on BrowserBase, providing stru
|
||||
- **Browser Automation**: BrowserBase Stagehand, Playwright
|
||||
- **HTML Parsing**: unified, rehype-parse, unist-util-visit
|
||||
- **API Server**: H3.js, listhen
|
||||
- **Adapters**: Airi Server SDK, MCP SDK
|
||||
- **Adapters**: AIRI Server SDK, MCP SDK
|
||||
- **Logging System**: @guiiai/logg
|
||||
- **Configuration**: defu (deep merging configurations)
|
||||
- **Utility Library**: zod (type validation)
|
||||
@@ -77,9 +77,9 @@ Twitter Service is a web automation service based on BrowserBase, providing stru
|
||||
|
||||
### 5.1 Adapter Layer
|
||||
|
||||
#### 5.1.1 Airi Adapter
|
||||
#### 5.1.1 AIRI Adapter
|
||||
|
||||
Provides integration with the Airi LLM platform, handling event-driven communication.
|
||||
Provides integration with the AIRI LLM platform, handling event-driven communication.
|
||||
|
||||
#### 5.1.2 MCP Adapter
|
||||
|
||||
@@ -291,19 +291,19 @@ async function main() {
|
||||
}
|
||||
```
|
||||
|
||||
### 9.2 Integrating as Airi Module
|
||||
### 9.2 Integrating as AIRI Module
|
||||
|
||||
```typescript
|
||||
import { AiriAdapter, BrowserBaseMCPAdapter, TwitterService } from 'twitter-services'
|
||||
import { AIRIAdapter, BrowserBaseMCPAdapter, TwitterService } from 'twitter-services'
|
||||
|
||||
async function startAiriModule() {
|
||||
async function startAIRIModule() {
|
||||
const browser = new BrowserBaseMCPAdapter(process.env.BROWSERBASE_API_KEY)
|
||||
await browser.initialize({ headless: true })
|
||||
|
||||
const twitter = new TwitterService(browser)
|
||||
|
||||
// Create Airi adapter
|
||||
const airiAdapter = new AiriAdapter(twitter, {
|
||||
// Create AIRI adapter
|
||||
const airiAdapter = new AIRIAdapter(twitter, {
|
||||
url: process.env.AIRI_URL,
|
||||
token: process.env.AIRI_TOKEN
|
||||
})
|
||||
@@ -311,7 +311,7 @@ async function startAiriModule() {
|
||||
// Start adapter
|
||||
await airiAdapter.start()
|
||||
|
||||
console.log('Twitter service running as Airi module')
|
||||
console.log('Twitter service running as AIRI module')
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user