LangBotはフロントエンドとバックエンドに分かれています。フロントエンドはVite + React Router + shadcnを使用して開発され、バックエンドはQuart(Flaskの非同期版)を使用して開発されています。Documentation Index
Fetch the complete documentation index at: https://docs.langbot.app/llms.txt
Use this file to discover all available pages before exploring further.
バックエンド
コードはpkgディレクトリにあり、ルートディレクトリのmain.pyファイルによって起動されます。
依存関係をインストールします。依存関係の管理にはuvを使用します。
data/config.yamlファイルに自動的に生成されます。
フロントエンド
コードはwebディレクトリにあり、Node.jsとpnpmが必要です。
.env.exampleを.envにコピーして、値を入力します。
- Linuxおよびその他の環境での使用
- Windows環境での使用
http://127.0.0.1:3000にアクセスして、スタンドアロンフロントエンドページを表示します。
本番環境では、フロントエンドは静的ファイルにプリコンパイルされ、バックエンドによって提供され、フロントエンドは同じドメインのバックエンドアドレスに自動的にアクセスします。
コードフォーマット
リポジトリにはlintとformatのチェックワークフローが含まれており、コードをプッシュすると自動的にチェックされます。pre-commitを設定して、コードをローカルで事前にチェックしてください。APIドキュメント
各インターフェースを開発する前に、APIFoxでAPIドキュメントを作成します。APIドキュメント(中国語)を参照してください。データベースマイグレーション
LangBotはAlembicを使用してデータベースマイグレーションを管理しており、SQLiteとPostgreSQLの両方をシームレスにサポートします。データベース固有の分岐コードは不要です。マイグレーションファイルの場所
新しいマイグレーションの作成
autogenerate を使用してマイグレーションスクリプトを自動生成することを推奨します。ORMモデルとデータベーススキーマの差分を比較して生成します:src/langbot/pkg/persistence/alembic/versions/ に作成されます。生成されたスクリプトを確認・編集し、変更が正しいことを確認してからコミットしてください。
autogenerateは列の追加/削除、テーブルの変更、型の変更などを自動検出できます。ただし、データマイグレーション(JSONフィールドの内容変更など)は、生成されたスクリプトに手動でコードを追加する必要があります。
NNNN_description.py に従ってください:
マイグレーションパターン
スキーマ変更(列の追加/削除、テーブル作成)
スキーマ変更(列の追加/削除、テーブル作成)
env.pyでrender_as_batch=Trueが設定されているため、AlembicはSQLiteのALTER TABLE制限を自動的に処理します(一時テーブルによる再構築)。データベースタイプによる分岐は不要です。データマイグレーション(データの読み取りと変更)
データマイグレーション(データの読み取りと変更)
動作の仕組み
マイグレーションはLangBot起動時に自動的に実行されます。手動コマンドは不要です:- 初回起動時、ベースラインバージョンが自動的にスタンプされます(既存データベースのマーキング)
- 以降の起動時、未適用のすべてのマイグレーションが適用されます(
alembic upgrade head)
CIテスト
リポジトリにはtest-migrations.ymlワークフローが含まれており、persistence/関連ファイルが変更された際に、SQLiteとPostgreSQLの両方でマイグレーションスクリプトが自動テストされます。
