Synaplan
기업을 위한 오픈소스 AI 플랫폼
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기A working model of a defense hardware manufacturer, from purchase order to fielded unit. SQLMesh, Iceberg, Flyte, DuckDB.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A working model of a defense hardware manufacturer, from purchase order to fielded unit, and four questions it answers:
The write-up, with interactive figures, is at zainhameedo.com/materiel.
The company and its data are synthetic. The generator (generate.py) simulates realistic mechanics: late parts stall builds, bad lots fail inspection, fielded units fail and wait on spares. It also plants one causal effect, a 35% cut in defect rates for suppliers enrolled in a development program, so the analysis can be checked against a known answer.
source extracts ──► Iceberg ──► SQLMesh ───────────────────────────► export ──► web page
(10 tables) snapshots staging ─► entities ─► analysis JSON
views product exposure
part part risk
supplier readiness
order line quality panel ──► Poisson DiD
build (statsmodels)
fielded unit
repair
└───────────────────────────── one Flyte workflow ─────────────────────────────┘
| Layer | What it does |
|---|---|
lake.py | Lands each source table as an Apache Iceberg table (local SQLite catalog standing in for Glue/S3) and points a DuckDB view at its current snapshot. |
transform/models/staging | Typed, renamed views over the sources, with key and validity audits. |
transform/models/core | One definition of each thing the business talks about, with relationships and derived facts: is this order late, is this unit down, how many sources does this part have. |
transform/models/analysis | Supplier exposure, part risk, build performance, fleet readiness, and the supplier quality panel. |
causal.py | Naive comparisons vs. difference-in-differences (Poisson, supplier and month fixed effects, clustered SEs), an event study and a placebo. |
pipeline.py | The Flyte workflow: land, test, plan and audit, export. |
22 models, 33 audits run on every build, SQLMesh unit tests for the logic that is easiest to get wrong (lateness of open orders, repair intervals clipped to months), and pytest checks that the estimator recovers the planted effect and finds none in the placebo.
Requires uv.
uv sync
uv run pyflyte run src/materiel/pipeline.py pipeline # land, transform, export (~30s)
uv run pytest -q # estimator tests
cd transform && uv run sqlmesh test # model unit tests
Explore the models with cd transform && uv run sqlmesh ui, or query the warehouse directly:
cd transform && uv run sqlmesh fetchdf "select * from analysis.part_risk order by risk_score desc limit 10"
Locally everything runs on DuckDB over a directory. With real systems behind it, the catalog becomes Glue, the warehouse S3, and SQLMesh runs on Athena; only lake.py's catalog and transform/config.py's gateway change. Sources would land incrementally, and the larger fact models (order lines, work orders) would become incremental by time.