# AuraK

AuraK は、マルチテナント対応のインテリジェント AI ナレッジベースプラットフォームです。React + NestJS をベースにしたフルスタックの RAG (検索拡張生成) システムで、外部 API、RBAC、テナント分離をサポートします。

## ✨ 特徴

- 🔐 **ユーザーシステム**: ユーザー登録、ログイン、権限管理を完備
- 🤖 **マルチモデル対応**: OpenAI 互換インターフェース + Google Gemini ネイティブサポート
- 📚 **インテリジェント・ナレッジベース**: ドキュメントのアップロード、チャンク分割、ベクトル化、ハイブリッド検索
- 💬 **ストリーミング会話**: 処理状況と生成内容をリアルタイムに表示
- 🔍 **引用追跡**: 回答の根拠となるドキュメントのソースと関連セグメントを明確に表示
- 🌍 **多言語対応**: 日本語、中国語、英語のインターフェースおよびAI回答に対応
- 👁️ **ビジョン機能**: 画像処理をサポートするマルチモーダルモデルに対応
- ⚙️ **柔軟な設定**: ユーザー独自のAPIキーと推論パラメータのカスタマイズが可能
- 🎯 **デュアルモード処理**: 高速モード (Tika) + 高精度モード (Vision Pipeline)
- 💰 **コスト管理**: ユーザーの利用枠(クォータ)管理とコスト見積もり

## 🏗️ 技術スタック

### フロントエンド

- **フレームワーク**: React 19 + TypeScript + Vite
- **スタイリング**: Tailwind CSS
- **アイコン**: Lucide React
- **状態管理**: React Context

### バックエンド

- **フレームワーク**: NestJS + TypeScript
- **AI フレームワーク**: LangChain
- **データベース**: SQLite (メタデータ) + Elasticsearch (ベクトルストレージ)
- **ファイル処理**: Apache Tika + Vision Pipeline
- **認証**: JWT
- **ドキュメント変換**: LibreOffice + ImageMagick

## 🏢 内网部署

本系统支持在内网环境中部署。主要修改包括：

- **外部资源**: 已将 KaTeX CSS 从外部 CDN 移至本地资源
- **AI模型**: 支持配置内网AI模型服务，无需访问外部API
- **构建配置**: Dockerfiles 可配置使用内网镜像源

有关详细配置说明，请参阅 [内网部署指南](INTERNAL_DEPLOYMENT_GUIDE.md)。

## 🚀 クイックスタート

### 前提条件

- Node.js 18+
- Yarn
- Docker & Docker Compose

### 1. プロジェクトのクローン

```bash
git clone <repository-url>
cd simple-kb
```

### 2. 依存関係のインストール

```bash
yarn install
```

### 3. 基本サービスの起動

```bash
docker-compose up -d elasticsearch tika libreoffice
```

### 4. 環境変数の設定

```bash
# バックエンドの環境設定
cp server/.env.sample server/.env
# server/.env ファイルを編集（APIキーなどを設定）

# フロントエンドの環境設定
cp web/.env.example web/.env
# web/.env ファイルを編集（必要に応じてフロントエンド設定を変更）
```

設定の詳細については、`server/.env.sample` と `web/.env.example` ファイル内のコメントを参照してください。

### 5. 開発サーバーの起動

```bash
yarn dev
```

<http://localhost:5173> にアクセスして開始してください！

## 📖 利用ガイド

### 1. ユーザー登録/ログイン

- 初回利用時はアカウント登録が必要です。
- 各ユーザーは独立したナレッジベースとモデル設定を持ちます。

### 2. AIモデルの設定

- 「モデル管理」からAIモデルを追加します。
- OpenAI、DeepSeek、Claude などの互換インターフェースをサポートしています。
- Google Gemini ネイティブインターフェースをサポートしています。
- LLM、Embedding、Rerank モデルを設定可能です。

### 3. ドキュメントのアップロード

- PDF, Word, PPT, Excel など、多様なフォーマットに対応しています。
- 高速モード (テキストのみ) または高精度モード (画像・テキスト混合) を選択可能です。
- ドキュメントのチャンクサイズとオーバーラップを調整可能です。
- ベクトル化に使用する Embedding モデルを選択します。

### 4. インテリジェントQ&Aの開始

- アップロードしたドキュメントに基づいて質問応答を行います。
- 検索と生成のプロセスをリアルタイムで確認できます。
- 回答の出典や関連ドキュメントの断片を確認できます。

## 🔧 設定の説明

### モデル設定

- **LLM モデル**: 対話生成に使用 (例: GPT-4, Gemini-1.5-Pro)
- **Embedding モデル**: ドキュメントのベクトル化に使用 (例: text-embedding-3-small)
- **Rerank モデル**: 検索結果の再ランキングに使用 (オプション)

### 推論パラメータ

- **Temperature**: 回答のランダム性を制御 (0-1)
- **Max Tokens**: 最大出力長
- **Top K**: 検索するドキュメントセグメントの数
- **類似度しきい値**: 低い関連性のコンテンツをフィルタリング

## 📁 プロジェクト構造

```
simple-kb/
├── web/                 # フロントエンド・アプリケーション
│   ├── components/      # React コンポーネント
│   ├── services/        # API サービス
│   ├── contexts/        # React Context
│   └── utils/          # ユーティリティ関数
├── server/             # バックエンド・アプリケーション
│   ├── src/
│   │   ├── auth/       # 認証モジュール
│   │   ├── chat/       # チャットモジュール
│   │   ├── knowledge-base/ # ナレッジベースモジュール
│   │   ├── model-config/   # モデル設定モジュール
│   │   └── user/       # ユーザーモジュール
│   └── data/           # データストレージ
├── docs/               # プロジェクトドキュメント
└── docker-compose.yml  # Docker 設定
```

## 📚 ドキュメント

- [システム設計ドキュメント](docs/DESIGN.md)
- [現在の実装状況](docs/CURRENT_IMPLEMENTATION.md)
- [API ドキュメント](docs/API.md)
- [デプロイガイド](docs/DEPLOYMENT.md)
- [RAG 機能の実装](docs/rag_complete_implementation.md)

## 🐳 Docker デプロイ

### 開発環境

```bash
# 基本サービスの起動
docker-compose up -d elasticsearch tika

# ローカル開発
yarn dev
```

### 本番環境

```bash
# すべてのサービスをビルドして起動
docker-compose up -d
```

## 🤝 貢献ガイド

1. プロジェクトを Fork する
2. 機能ブランチを作成する (`git checkout -b feature/AmazingFeature`)
3. 変更をコミットする (`git commit -m 'Add some AmazingFeature'`)
4. ブランチにプッシュする (`git push origin feature/AmazingFeature`)
5. Pull Request を開く

## 📄 ライセンス

このプロジェクトは MIT ライセンスの下で提供されています。詳細は [LICENSE](LICENSE) ファイルをご覧ください。

## 🙏 謝辞

- [LangChain](https://langchain.com/) - AI アプリケーション開発フレームワーク
- [NestJS](https://nestjs.com/) - Node.js バックエンドフレームワーク
- [React](https://react.dev/) - フロントエンド UI フレームワーク
- [Elasticsearch](https://www.elastic.co/) - 検索および分析エンジン
- [Apache Tika](https://tika.apache.org/) - ドキュメント解析ツール

## 📞 サポート

質問や提案がある場合は、[Issue](../../issues) を送信するか、メンテナーに連絡してください。
