1 个不稳定版本
0.0.0 | 2021年6月29日 |
---|
#5 在 #xayn
2KB
xain_ai
已不再积极维护。部分代码已复制到 xayn_discovery_engine 并将在那里进一步开发。
Xayn-AI
模型
要下载模型,请使用 download_data.sh
脚本。
工具
为了生成包含资产元数据的代码,您需要安装 gomplate
。
构建
要构建库,您只需在项目的根目录中运行 cargo build
。
要生成 Dart ffi,您需要在 bindings/dart
目录中运行 flutter pub get
和 flutter pub run ffigen
。
在 Dart 代码更改后更新非 ffi 自动生成的 Dart 代码,您需要运行 flutter pub run build_runner build
。
项目提供了一个可以运行的 Makefile.toml
,使用 cargo make
。您可以使用以下方式安装 cargo make:
cargo install --version 0.35.0 cargo-make
所有上述操作都可以通过 cargo make build
自动完成。
要为移动目标构建库,您可以使用
cargo make build-mobile
在 Linux 上,这将仅构建 Android 库,而在 Mac 上将同时构建 Android 和 iOS。
要为 Web 构建库,您可以使用
cargo make build-web
或
DISABLE_WASM_THREADS=1 cargo make build-web
构建一个不需要浏览器支持 SharedArrayBuffer
和 Atomics
的版本。
Android
为了在Android上构建,需要以下目标
rustup target add \
aarch64-linux-android \
armv7-linux-androideabi \
x86_64-linux-android \
i686-linux-android
还需要 cargo-ndk
cargo install --version 2.4.1 cargo-ndk
您还需要安装Android NDK,并可能需要设置 ANDROID_NDK_HOME
环境变量。如果您通过AndroidStudio安装Android NDK,则需要将 ANDROID_NDK_HOME
设置为类似于 ~/Android/Sdk/ndk/<ndk-version>
的值,例如 /home/user/Android/Sdk/ndk/22.1.7171670/
。
iOS
为了在iOS上构建,需要以下目标
rustup target add \
aarch64-apple-ios \
x86_64-apple-ios
WASM
先决条件
- wasm-pack
cargo install --version 0.10.1 wasm-pack
以下所有 wasm-pack
命令都需要在 xayn-ai-ffi-wasm/
目录下运行。
构建WASM模块
wasm-pack build
运行WASM测试
浏览器
wasm-pack test --firefox --chrome --safari --headless
注意
在 Safari
中,您首先需要通过 safaridriver --enable
启用WebDriver支持,然后才能运行测试。
nodejs
wasm-pack test --node -- --no-default-features --features=node
Flutter示例
在移动设备/模拟器上运行
cargo make build-mobile
cd bindings/dart/example
flutter run
在Chrome中运行
cargo make build-web
cargo make serve-web
# Then open http://127.0.0.1:8000/ in a browser.
flutter run
不能使用,因为它没有设置正确的头信息,即使设置了正确的头信息,它也没有以正确的方式提供正确的文件。
(至少现在,flutter run
还可以与 DISABLE_WASM_THREADS=1
一起使用,这在未来不能保证,但它可能很有用,因为 flutter run
提供了热重载和更好的调试性。)
提示: 已有某些情况下,由于某些原因,当从 DISABLE_WASM_THREADS=0
切换到 DISABLE_WASM_THREADS=1
时,genesis.js
并未更新,不清楚是什么原因导致的,因为它不可重现,但不同的开发者都观察到了这种情况。如果发生这种情况,请运行 cargo make clean-non-rust
。
在发布仓库的分支上运行
bindings/dart/example/pubspec.yaml
xayn_ai_ffi_dart:
- path: '../'
+ git:
+ url: [email protected]:xaynetwork/xayn_ai_release.git
+ ref: <branch>
bindings/dart/example/lib/data_provider/web.dart
- const _baseAssetUrl = 'assets';
+ const _baseAssetUrl = 'https://ai-assets.xaynet.dev';
然后像上面一样使用 cargo make build-web
和 cargo make serve-web
。
如果flutter analyze失败,那么很可能本地版本和发布仓库中使用的分支不兼容。
许可证
该仓库包含以下目录中的其他软件代码,这些代码根据其自身的许可证授权
rubert-tokenizer/*
: Apache2 (LICENSE)
Xayn-ai及其组件,除非另有说明,否则均受
- AGPL-3.0 (LICENSE) 许可。