msaSDK - FastAPI ベースのマイクロサービス アーキテクチャ開発キット
CRUD およびダッシュボードを使用して PoC、MVP、API を迅速かつ一貫して構築します。
FastAPI、SQLModel、SQLAlchemy、Amis、その他多くの防弾ライブラリ上に構築します。
ドキュメント: MSA SDK ドキュメント (http://msa.u2d.ai/)
接続された分散アプリケーションをより迅速に構築: Dapr の準備完了。
一貫性: SDK は、場合によっては数十または数百のマイクロ サービスを使用して、バージョン管理を容易にし、安定した Dapr Basis を提供します。
高パフォーマンス: FastAPI に基づいています。すべてのメリットをお楽しみください。
統合スケジューラ: 自然言語のタイミングと依存関係を使用してスケジューラ タスクを定義します。
統合されたダッシュボード UI : CRUD フォームを備えた管理者およびオプションの認証が有効なダッシュボード。
統合 CRUD : SQLModel と SQLAlchemy に基づいて CRUD ルーターと管理ダッシュボード フォームを生成します。
統合された抽象ファイルシステム: S3、GCS、Azure Datalake、ローカル FS、Youtube などの使用を可能にする、Agnostic Abstract Filesystem API。
統合された justpy WEB UI : justpy UI Web フレームワークが MSAAPI に統合され、justpy Web ページ機能へのルートを簡単に追加できます。
ストレージ バックエンドと統合された Dict : Redis などのバックエンド ストレージで Dict を使用します。
統合されたシグナル: シグナルとタスクを使用および処理します。
統合機能管理: 条件付きの機能切り替え管理。
ファストAPI
SQLModel と SQLAlchemy および Pydantic を組み合わせ、そのすべての機能を備えています。
msaUtils : プロファイラー、スケジューラー、Sysinfo、Healtcheck、エラー処理などの FastAPI に基づくマイクロサービス用の一般的なユーティリティ。
msaJustPyUI : justpy UI Web フレームワークを msaAppService に統合するために、FastAPI は JustPy バージョンを適応させました。これにより、justpy Web ページ機能へのルートを簡単に追加できます。
msaCRUD : SQLModel/SQLAlchemy/FastAPI - DB オブジェクト CRUD/API 自動化
msaFeature : 条件付きの機能切り替え管理
msaServer : FastAPI ベースのアプリ用の Uvicorn/Gunicorn のヘルパーおよびラッパー
msaSignal : Starlette/FastAPI のシグナル/イベント。
msaDocModels : # MSA Document Pydantic モデルとスキーマ。処理されたドキュメントのパーサー、NLP、NLU、および AI の結果を保存するために使用されます。
msaStorageDict : redis や Zookeeper などのストレージ バックエンドを使用した辞書
# -*- エンコーディング: utf-8 -*-"""Copyright (c) 2022 - U2D.ai / S.Welcker"""from入力 import オプション、Listfrom sqlmodel import SQLModelfrom msaSDK.admin.utils.fields import Fieldfrom msaSDK .models.service import get_msa_app_settingsfrom msaSDK.service import MSAAppasync def test_timer_min():app.logger.info("msaSDK テスト タイマーの非同期 1 分ごと")def test_timer_five_sec():app.logger.info("msaSDK テスト タイマーの同期 5 秒")class TestArticle(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: Optional[int] = フィールド (デフォルト = なし、 Primary_key=True、nullable=False)title: str = Field(title='ArticleTitle', max_length=200)description: Optional[str] = Field(default='', title='ArticleDescription', max_length=400)status: bool = Field(None, title='status')content: str = Field(title='ArticleContent')class TestCategory(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: Optional[int] = Field(default=None、primary_key=True、nullable=False)title: str = Field(title='ArticleTitle'、max_length=200) )説明: オプション[str] = フィールド(デフォルト=''、タイトル='記事説明'、最大長=400)ステータス: bool = Field(なし、title='status')content: str = Field(title='ArticleContent')get_msa_app_settings.cache_clear()settings = get_msa_app_settings()settings.title = "u2d.ai - MSA/SDK MVP"settings.version = "0.0.1"settings.debug = Trueapp = MSAApp(設定=設定、 auto_mount_site=True、sql_models=[TestArticle, TestCategory]、contact={"name": "msaSDK"、"url": "http://u2d.ai"、"email": "[email protected]"}、 License_info={"名前": "MIT", "url": "https://opensource.org/licenses/MIT", })app.scheduler.task("1 分ごと", func=test_timer_min )app.scheduler.task("5 秒ごと", func=test_timer_five_sec )app.logger.info("初期化 " + settings.title + " " + settings.version)@app.on_event("startup")async def startup():app.logger.info("msaSDK 自身の起動 MSAUIEvent")#app.mount_site()@app.on_event("shutdown")async def shutdown():app.logger.info("msaSDK 自身のシャットダウン MSAUIEvent" )if __name__ == '__main__':pass
ブラウザでhttp://127.0.0.1:8090/admin/
を開きます。
ブラウザでhttp://127.0.0.1:8090/admin/auth/form/login
を開きます。
ブラウザでhttp://127.0.0.1:8090/#/admin/docs
を開きます。
ブラウザでhttp://127.0.0.1:8090/#/admin/profiler
を開きます。
msaSDK
MIT
オープンソースをベースにしており、商用利用も無料ですが、msaSDK に関する著作権情報をどこかに表示/一覧表示してください。
mkdocs と mkdocsstring を使用します。コード参照とナビゲーション エントリは、 mkdocs
serve
またはbuild
の実行中に、トリガーされた Python スクリプト /docs/gen_ref_pages.py によって仮想的に作成されます。
PDF エクスポートは主に weasyprint を使用しています。ここでエラーが発生した場合は、ご容赦ください。そこのドキュメントを確認してください。インストールは msaSDK の一部であるため、これで問題ありません。
これで、以下を使用してドキュメントをテストおよび表示できるようになりました。
mkdocs serve
静的サイトを構築する:
mkdocs build
建てる:
python setup.py sdist
pypi に公開します。
twine upload dist/*