msaSDK - ชุดพัฒนาสถาปัตยกรรมไมโครเซอร์วิสที่ใช้ FastAPI
เพื่อสร้าง PoC, MVP, API ด้วย CRUD และแดชบอร์ดอย่างรวดเร็วและสม่ำเสมอ
สร้างบน FastAPI, SQLModel, SQLAlchemy, Amis และไลบรารี่กันกระสุนอื่นๆ อีกมากมาย
เอกสารประกอบ : เอกสาร MSA SDK (http://msa.u2d.ai/)
สร้างแอปพลิเคชันแบบกระจายที่เชื่อมต่อเร็วขึ้น : พร้อมสำหรับ Dapr
ความสม่ำเสมอ : ด้วย Micro Services บางครั้ง 10 หรือ 100 SDK ช่วยให้ควบคุมเวอร์ชันได้ง่ายและให้ Dapr Basis ที่เสถียร
ประสิทธิภาพสูง : อิงตาม FastAPI เพลิดเพลินไปกับสิทธิประโยชน์ทั้งหมด
Integrated Scheduler : กำหนดงานของ Scheduler ด้วยการกำหนดเวลาและการขึ้นต่อกันของภาษาธรรมชาติ
UI แดชบอร์ดแบบรวม : แดชบอร์ดที่เปิดใช้งานผู้ดูแลระบบและตัวเลือกการรับรองความถูกต้องด้วยแบบฟอร์ม CRUD
CRUD แบบรวม : สร้างเราเตอร์ CRUD และฟอร์มแดชบอร์ดผู้ดูแลระบบตาม SQLModel และ SQLAlchemy
ระบบไฟล์นามธรรมแบบรวม : Agnostic Abstract Filesystem API ซึ่งอนุญาตให้ใช้ S3, GCS, Azure Datalake, FS ในพื้นที่ของคุณ, Youtube เป็นต้น
integrated justpy WEB UI : รวม justpy UI Web Framework เข้ากับ MSAAPI ซึ่งอนุญาตให้เพิ่มเส้นทางไปยังฟังก์ชัน justpy webpages ได้อย่างง่ายดาย
Integrated Dict พร้อม Storage Backend : ใช้ Dict's กับที่เก็บข้อมูลแบ็กเอนด์เช่น Redis
สัญญาณรวม : ใช้และจัดการสัญญาณและงาน
การจัดการคุณสมบัติแบบรวม : การจัดการสวิตช์คุณสมบัติพร้อมเงื่อนไข
FastAPI
SQLModel รวมกับ SQLAlchemy และ Pydantic พร้อมฟีเจอร์ทั้งหมด
msaUtils : ยูทิลิตี้ทั่วไปสำหรับไมโครเซอร์วิสที่ใช้ FastAPI เช่น Profiler, Scheduler, Sysinfo, Healtcheck, การจัดการข้อผิดพลาด ฯลฯ
msaJustPyUI : FastAPI ปรับเวอร์ชัน JustPy สำหรับการรวม justpy UI Web Framework เข้ากับ msaAppService ซึ่งอนุญาตให้เพิ่มเส้นทางไปยังฟังก์ชัน justpy เว็บเพจได้อย่างง่ายดาย
msaCRUD : SQLModel/SQLAlchemy/FastAPI - DB Object CRUD/API อัตโนมัติ
msaFeature : การจัดการสวิตช์ฟีเจอร์ตามเงื่อนไข
msaServer : ตัวช่วยเหลือและ Wrapper รอบ Uvicorn/Gunicorn สำหรับแอปที่ใช้ FastAPI
msaSignal : สัญญาณ/เหตุการณ์สำหรับ Starlette/FastAPI
msaDocModels : # MSA Document Pydantic Models และ Schemas ใช้เพื่อจัดเก็บผลลัพธ์ Parser, NLP, NLU และ AI สำหรับเอกสารที่ประมวลผล
msaStorageDict : เขียนตามคำบอกด้วย Storage Backend เช่น redis หรือ Zookeeper
# -*- การเข้ารหัส: utf-8 -*-"""ลิขสิทธิ์ (c) 2022 - U2D.ai / S.Welcker"""จากการพิมพ์การนำเข้า ตัวเลือก รายการจาก sqlmodel นำเข้า SQLModelfrom msaSDK.admin.utils.fields นำเข้า Fieldfrom msaSDK .models.service นำเข้า get_msa_app_settingsfrom msaSDK.service นำเข้า MSAAppasync def test_timer_min():app.logger.info("msaSDK Test Timer Async ทุกนาที")def test_timer_five_sec():app.logger.info("msaSDK Test Timer Sync 5 วินาที")คลาส TestArticle(SQLModel, table=True):__table_args__ = {'extend_existing': True}id: ตัวเลือก[int] = ฟิลด์(ค่าเริ่มต้น=ไม่มี, primary_key=True, nullable=False)title: str = Field(title='ArticleTitle', max_length=200)description: ตัวเลือก[str] = Field(default='', title='ArticleDescription', max_length=400)status: bool = ฟิลด์ (ไม่มี ชื่อ = 'สถานะ') เนื้อหา: str = ฟิลด์ (ชื่อ = 'เนื้อหาบทความ') คลาส 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] = ฟิลด์(ค่าเริ่มต้น='', title='ArticleDescription', max_length=400)status: bool = Field(None, 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 (settings=settings, auto_mount_site=True, sql_models=[TestArticle, TestCategory], contact={"name": "msaSDK", "url": "http://u2d .ai", "อีเมล": "[email protected]"}, License_info={"name": "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 ปิด ():app.logger.info("msaSDK การปิดระบบของตัวเอง MSAUIEvent")ถ้า __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 การอ้างอิงโค้ดและรายการ nav ได้รับการสร้างขึ้นโดยสคริปต์ python ที่ทริกเกอร์ /docs/gen_ref_pages.py ในขณะที่ mkdocs
serve
หรือ build
ถูกดำเนินการ
การส่งออก PDF ใช้ weasyprint เป็นหลัก หากคุณพบข้อผิดพลาดที่นี่ โปรด ตรวจสอบเอกสารที่นั่น การติดตั้งเป็นส่วนหนึ่งของ msaSDK ดังนั้นจึงน่าจะเป็นเรื่องปกติ
ขณะนี้เราสามารถทดสอบและดูเอกสารของเราโดยใช้:
mkdocs serve
สร้างไซต์แบบคงที่:
mkdocs build
สร้าง:
python setup.py sdist
เผยแพร่ไปที่ pypi:
twine upload dist/*