|
@@ -0,0 +1,183 @@
|
|
|
+# Attu
|
|
|
+
|
|
|
+[](https://badges.aleen42.com/src/typescript.svg)
|
|
|
+[](https://hub.docker.com/r/zilliz/attu/tags)
|
|
|
+
|
|
|
+Attu 是一个全方位的 Milvus 管理工具。使用 Attu,您可以显著降低管理 Milvus 的成本。
|
|
|
+
|
|
|
+<img src="./.github/images/screenshot.png" width="800" alt="attu home view" />
|
|
|
+
|
|
|
+## 安装指南
|
|
|
+
|
|
|
+在开始之前,请确保您已在 [Zilliz Cloud](https://cloud.zilliz.com/signup) 或 [您自己的服务器](https://milvus.io/docs/install_standalone-docker.md) 上安装了 Milvus。
|
|
|
+
|
|
|
+### 兼容性
|
|
|
+
|
|
|
+| Milvus 版本 | 推荐的 Attu 版本 |
|
|
|
+| ----------- | -------------------------------------------------------- |
|
|
|
+| 2.4.x | [v2.4.4](https://github.com/zilliztech/attu/releases/tag/v2.4.4) |
|
|
|
+| 2.3.x | [v2.3.5](https://github.com/zilliztech/attu/releases/tag/v2.3.5) |
|
|
|
+| 2.2.x | [v2.2.8](https://github.com/zilliztech/attu/releases/tag/v2.2.8) |
|
|
|
+| 2.1.x | [v2.2.2](https://github.com/zilliztech/attu/releases/tag/v2.2.2) |
|
|
|
+
|
|
|
+### 从 Docker 运行 Attu
|
|
|
+
|
|
|
+以下是运行 Attu 容器的步骤:
|
|
|
+
|
|
|
+```bash
|
|
|
+docker run -p 8000:3000 -e MILVUS_URL={milvus server IP}:19530 zilliz/attu:v2.4
|
|
|
+```
|
|
|
+
|
|
|
+确保 Attu 容器可以访问 Milvus IP 地址。启动容器后,在您的浏览器中输入 `http://{ Attu IP }:8000` 以查看 Attu GUI。
|
|
|
+
|
|
|
+#### 运行 Attu Docker 的可选环境变量
|
|
|
+
|
|
|
+| 参数 | 示例 | 必填 | 描述 |
|
|
|
+| :---------------- | :------------------- | :--: | --------------------------------------- |
|
|
|
+| MILVUS_URL | 192.168.0.1:19530 | 否 | 可选,Milvus 服务器 URL |
|
|
|
+| ATTU_LOG_LEVEL | info | 否 | 可选,设置 Attu 的日志级别 |
|
|
|
+| ROOT_CERT_PATH | /path/to/root/cert | 否 | 可选,根证书的路径 |
|
|
|
+| PRIVATE_KEY_PATH | /path/to/private/key | 否 | 可选,私钥的路径 |
|
|
|
+| CERT_CHAIN_PATH | /path/to/cert/chain | 否 | 可选,证书链的路径 |
|
|
|
+| SERVER_NAME | your_server_name | 否 | 可选,您的服务器名称 |
|
|
|
+| SERVER_PORT | Server listen port | 否 | 可选,默认 3000 |
|
|
|
+
|
|
|
+> 请注意,`MILVUS_URL` 应为 Attu Docker 容器可访问的地址,因此 "127.0.0.1" 或 "localhost" 将无法使用。
|
|
|
+
|
|
|
+使用以下命令运行带有这些环境变量的 Docker 容器:
|
|
|
+
|
|
|
+#### Attu SSL 示例
|
|
|
+
|
|
|
+```bash
|
|
|
+docker run -p 8000:3000 \
|
|
|
+-v /your-tls-file-path:/app/tls \
|
|
|
+-e ATTU_LOG_LEVEL=info \
|
|
|
+-e ROOT_CERT_PATH=/app/tls/ca.pem \
|
|
|
+-e PRIVATE_KEY_PATH=/app/tls/client.key \
|
|
|
+-e CERT_CHAIN_PATH=/app/tls/client.pem \
|
|
|
+-e SERVER_NAME=your_server_name \
|
|
|
+zilliz/attu:dev
|
|
|
+```
|
|
|
+
|
|
|
+#### 自定义服务器端口示例
|
|
|
+
|
|
|
+_此命令允许您使用主机网络运行 Docker 容器,指定服务器监听的自定义端口_
|
|
|
+
|
|
|
+```bash
|
|
|
+docker run --network host \
|
|
|
+-v /your-tls-file-path:/app/tls \
|
|
|
+-e ATTU_LOG_LEVEL=info \
|
|
|
+-e SERVER_NAME=your_server_name \
|
|
|
+-e SERVER_PORT=8080 \
|
|
|
+zilliz/attu:dev
|
|
|
+```
|
|
|
+
|
|
|
+### 在 Kubernetes 中运行 Attu
|
|
|
+
|
|
|
+在开始之前,请确保您已在 [K8's 集群](https://milvus.io/docs/install_cluster-milvusoperator.md) 中安装并运行了 Milvus。请注意,Attu 仅支持 Milvus 2.x。
|
|
|
+
|
|
|
+以下是运行 Attu 容器的步骤:
|
|
|
+
|
|
|
+```bash
|
|
|
+kubectl apply -f https://raw.githubusercontent.com/zilliztech/attu/main/attu-k8s-deploy.yaml
|
|
|
+```
|
|
|
+
|
|
|
+确保 Attu pod 可以访问 Milvus 服务。在提供的示例中,这将直接连接到 `my-release-milvus:19530`。根据 Milvus 服务名称更改此设置。实现这一目标的更灵活方法是引入 `ConfigMap`。详见此 [示例]("https://raw.githubusercontent.com/zilliztech/attu/main/examples/attu-k8s-deploy-ConfigMap.yaml")。
|
|
|
+
|
|
|
+### 在 nginx 代理后运行 Attu
|
|
|
+
|
|
|
+[在 nginx 代理后运行 Attu](https://github.com/zilliztech/attu/blob/main/doc/use-attu-behind-proxy.md)
|
|
|
+
|
|
|
+### 安装桌面应用程序
|
|
|
+
|
|
|
+如果您更喜欢使用桌面应用程序,可以下载 [Attu 的桌面版本](https://github.com/zilliztech/attu/releases/)。
|
|
|
+
|
|
|
+### 本地构建 Docker 镜像
|
|
|
+
|
|
|
+- 开发版:`yarn run build:dev`
|
|
|
+- 发布版:`yarn run build:release`
|
|
|
+
|
|
|
+## 常见问题
|
|
|
+
|
|
|
+- 无法登录系统
|
|
|
+ > 确保 Milvus 服务器的 IP 地址可以从 Attu 容器访问。[#161](https://github.com/zilliztech/attu/issues/161)
|
|
|
+- Mac M 芯片安装应用失败:attu.app 已损坏,无法打开。
|
|
|
+ ```shell
|
|
|
+ sudo xattr -rd com.apple.quarantine /Applications/attu.app
|
|
|
+ ```
|
|
|
+- 待补充
|
|
|
+
|
|
|
+## 更多截图
|
|
|
+
|
|
|
+| create collection | collection tree |
|
|
|
+| ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
|
+| <img src="./.github/images/create_collection.png" width="800" alt="attu create collection dialog" /> | <img src="./.github/images/collections.png" alt="attu" width="800" alt="attu collections" /> |
|
|
|
+
|
|
|
+| collection overview | data view |
|
|
|
+| -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
|
|
|
+| <img src="./.github/images/collection_overview.png" alt="attu" width="800" alt="attu collection view" /> | <img src="./.github/images/data_preview.png" alt="attu" width="800" alt="attu data view" /> |
|
|
|
+
|
|
|
+| vector search | system view |
|
|
|
+| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
|
|
+| <img src="./.github/images/vector_search.png" width="800" alt="attu vector search" /> | <img src="./.github/images/system_view.png" width="800" alt="attu system view" /> |
|
|
|
+
|
|
|
+## ✨ 代码贡献
|
|
|
+
|
|
|
+感谢您对 Attu 的贡献兴趣!以下是本地构建 Attu 以贡献代码、测试最新功能或试用开放 PR 的方法:
|
|
|
+
|
|
|
+### 构建服务器
|
|
|
+
|
|
|
+1. Fork 并克隆 Attu 仓库。
|
|
|
+2. 通过在终端中运行 `cd server` 进入服务器目录。
|
|
|
+3. 运行 `yarn install` 安装依赖。
|
|
|
+4. 运行 `yarn start` 启动开发模式的服务器。
|
|
|
+5. 运行 `git checkout -b my-branch` 创建新分支以提交 PR。
|
|
|
+
|
|
|
+### 构建客户端
|
|
|
+
|
|
|
+1. Fork 并克隆 Attu 仓库。
|
|
|
+2. 通过在终端中运行 `cd client` 进入客户端目录。
|
|
|
+3. 运行 `yarn install` 安装依赖。
|
|
|
+4. 运行 `yarn start` 启动开发模式的服务器。
|
|
|
+5. 运行 `git checkout -b my-branch` 创建新分支以提交 PR。
|
|
|
+
|
|
|
+### 提交 Pull Request
|
|
|
+
|
|
|
+1. 做出更改并确保测试通过。
|
|
|
+2. 提交更改并推送到您的 Fork。
|
|
|
+3. 创建一个 Pull Request 目标 Attu 的 main 分支。
|
|
|
+
|
|
|
+无论大小,我们都感谢您对 Attu 的贡献。感谢您对项目的支持!
|
|
|
+
|
|
|
+#### ❓ 有任何问题或困难?
|
|
|
+
|
|
|
+如果您遇到任何错误或希望请求新功能,请创建一个 [GitHub issue](https://github.com/zilliztech/attu/issues/new/choose)。在提交新问题之前,检查是否已有其他人创建了相同问题。
|
|
|
+
|
|
|
+### 有用的示例
|
|
|
+
|
|
|
+[Milvus Typescript 示例](https://github.com/zilliztech/zilliz-cloud-typescript-example):此仓库提供了一些基于 Next.js 的简单 React 应用程序。
|
|
|
+
|
|
|
+| 名称 | 演示 | 模型 |
|
|
|
+| -------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ | --------------------- |
|
|
|
+| [semantic-search-example](https://github.com/zilliztech/zilliz-cloud-typescript-example/tree/master/semantic-search-example) | https://zilliz-semantic-search-example.vercel.app | all-MiniLM-L6-v2 |
|
|
|
+| [semantic-image-search](https://github.com/zilliztech/zilliz-cloud-typescript-example/tree/master/semantic-image-search) | | clip-vit-base-patch16 |
|
|
|
+| [semantic-image-search
|
|
|
+
|
|
|
+-client](https://github.com/zilliztech/zilliz-cloud-typescript-example/tree/master/semantic-image-search-client) | https://zilliz-semantic-image-search-client.vercel.app | clip-vit-base-patch16 |
|
|
|
+
|
|
|
+### 有用的链接
|
|
|
+
|
|
|
+以下是一些有助于您入门 Milvus 的资源:
|
|
|
+
|
|
|
+- [Milvus 文档](https://milvus.io/docs):在这里,您可以找到有关如何使用 Milvus 的详细信息,包括安装说明、教程和 API 文档。
|
|
|
+- [Milvus Python SDK](https://github.com/milvus-io/pymilvus):Python SDK 允许您使用 Python 进行 Milvus 交互。它提供了一个简单直观的界面来创建和查询向量。
|
|
|
+- [Milvus Java SDK](https://github.com/milvus-io/milvus-sdk-java):Java SDK 类似于 Python SDK,但专为 Java 开发人员设计。它也提供了一个简单直观的界面来创建和查询向量。
|
|
|
+- [Milvus Go SDK](https://github.com/milvus-io/milvus-sdk-go):Go SDK 提供了 Milvus 的 Go API。如果您是 Go 开发人员,这是适合您的 SDK。
|
|
|
+- [Milvus Node SDK](https://github.com/milvus-io/milvus-sdk-node):Node SDK 提供了 Milvus 的 Node.js API。如果您是 Node.js 开发人员,这是适合您的 SDK。
|
|
|
+- [Feder](https://github.com/zilliztech/feder):Feder 是一个 JavaScript 工具,旨在帮助理解嵌入向量。
|
|
|
+
|
|
|
+## 社区
|
|
|
+
|
|
|
+💬 加入我们充满活力的 Milvus 社区,在那里您可以分享知识、提问并参与有意义的对话。这不仅仅是编码,更是与志同道合的人们交流。点击下面的链接立即加入!
|
|
|
+
|
|
|
+<a href="https://discord.com/invite/8uyFbECzPX"><img style="display:block; margin: '8px';" src="https://assets-global.website-files.com/6257adef93867e50d84d30e2/636e0b5061df29d55a92d945_full_logo_blurple_RGB.svg" alt="license"/></a>
|