畀想睇 source 嘅人
MIT 開源,行喺你自己部機。
呢頁一次過講清楚 Unhinted 用咩砌、條 pipeline 點行、點樣自己 deploy。安裝細節、config 同 ADR 都喺 repo 度,呢度唔重複。
用咩砌
後端 FastAPI(Python),前端 React 單頁 app,資料庫 PostgreSQL 加 pgvector。Agent loop 用 LangGraph 編排,所有 model 呼叫行 LiteLLM。
- FastAPI
- REST API 同 agent session,SSE 串流
- React
- 對話式改稿嘅單頁 app
- PostgreSQL + pgvector
- 資料、向量、產品 embedding 一個 DB
- LangGraph
- 由揀角度到起稿嘅 agent loop
- LiteLLM
- Model-agnostic,換 provider 唔使改 code
由熱話到出街
- 1
定時搵熱話
Scheduler 每個鐘頭 ingest 香港熱話(Google Trends HK);想做多啲 research,可以配 Tavily。
- 2
LLM 淨係管起稿
揀角度、寫 caption、跟你改 —— 呢個 loop 先行 LangGraph。起稿之前,本機 embedding(FastEmbed)會先過濾唔關事嘅嘢。
- 3
發佈係普通程式
你撳 Confirm,後端先行一條正常嘅 HTTP publish flow。LLM 由頭到尾掂唔到「發佈」制,冇得自己出街。
Model 任你配
預設行 OpenAI,但任何 OpenAI-compatible endpoint 都接得 —— OpenRouter、DeepSeek、Azure、local gateway 都得。Model 分平、中、強三級,image model 另外配。
每個組織可以帶自己嘅 LLM API key(BYOK),喺資料庫以 Fernet 加密存放;冇嘅話,就用環境變數嘅 fallback key。
一個 Compose 起喺自己部機
All-in-one package 包埋 pgvector Postgres,起好開 localhost:8484,第一次有 setup wizard 帶你行。已經有 Postgres?有 external-db 嘅 compose 檔。
媒體檔案預設落地本機 disk,之後想搬去 S3-compatible 儲存都得,唔使停機。發佈用嘅 Instagram 連接預設係你自己嘅 Meta app(BYO app),唔經我哋。
curl -LO https://github.com/brandon-wsc/unhinted-marketing/releases/latest/download/compose.yaml
docker compose -f compose.yaml up -d
# → http://localhost:8484講明先
而家仲係 pre-release(beta):發佈目標暫時淨係 Instagram,預設 publish adapter 係 stub —— 接咗 Meta app 先會真係出得街。
成個 repo MIT 授權。見到唔順眼嘅嘢,開 issue 或者 PR 都得。