Files
cmhub/docs/current-state.md
T

110 lines
17 KiB
Markdown
Raw Normal View History

2026-07-01 17:42:10 +08:00
# 蠖灘燕螳樒鴫迥カ諤�
> 譛ャ譁�弍蜿ッ隕�尠逧�ス灘燕蠢ォ辣ァ�瑚ョー蠖穂サ」遐∽ク惹ササ蜉。逵区攸逧�鴫螳樒憾諤�シ悟クョ蜉ゥ AI coding agent 驕ソ蜈榊宵逵玖ョ。蛻定€悟ソス逡・莉灘コ鍋鴫迥カ縲�
> 蜴�彰謇ァ陦梧オ∵ーエ霑ス蜉�蛻ー [`../progress.md`](../progress.md)�御ク崎ヲ∝惠譛ャ譁�㍾螟咲サエ謚、螳梧紛謇ァ陦梧律蠢励€�
## 閨瑚エ」霎ケ逡�
- [`06-tasks.md`](06-tasks.md)�壻ササ蜉。逵区攸�檎サエ謚、莉サ蜉。迥カ諤√€∽セ晁オ門柱鬪梧噺隕∫せ縲�
- [`../progress.md`](../progress.md)�壽鴬陦梧オ∵ーエ�悟宵霑ス蜉�隶ー蠖墓ッ剰スョ謇ァ陦後€�ェ瑚ッ√€�仆蝪槫柱蜀ウ遲悶€�
- `current-state.md`�壼ス灘燕蠢ォ辣ァ�悟庄隕�尠譖エ譁ー蠖灘燕逶ョ蠖輔€∝ス灘燕蜻ス莉、縲∝キイ螳梧�鞫倩ヲ∝柱荳倶ク€豁・縲�
## 蠖灘燕蠢ォ辣ァ
2026-07-03 09:07:21 +08:00
- 譌・譛滂シ�2026-07-03
2026-07-03 14:49:45 +08:00
- 髦カ谿オ�啀hase 5 蜷主床荳主書蟶�シ娜hase 3 蟇ケ螟� API 荳主�蛟シ蟾イ螳梧�蛻ー T-306�訓hase 4 逕ィ謌キ遶ッ T-501 豕ィ蜀� / 逋サ蠖包シ�llauth�峨€ゝ-502 API Key 閾ェ蜉ゥ邂。逅�。オ縲ゝ-503 荳ェ莠コ荳ュ蠢� / 隶ー蠖暮。オ荳� T-504 蜈�€シ鬘オ蟾イ螳梧��御ク倶ク€豁・ T-401 霑占是蜷主床螳悟埋
2026-07-03 11:27:45 +08:00
- 謚€譛ッ譬茨シ夂ウサ扈� Python 3.12.3 + Django 5.2.15 + DRF 3.16.1 + django-allauth 65.18.0 + PyMySQL 1.1.3 + cryptography 46.0.7 + requests 2.34.2 + django-admin�娥ySQL 8.4 蟾イ謗・蜈・ settings�悟ケカ謾ッ謖� `MYSQL_CONNECT_TIMEOUT` / `MYSQL_READ_TIMEOUT` / `MYSQL_WRITE_TIMEOUT`�帷畑謌キ遶ッ蟾イ逕ィ Django 讓。譚ソ SSR + Bootstrap + allauth 關ス蝨ー豕ィ蜀檎匳蠖包シ幄ッヲ隗� `03-tech-stack.md`
2026-07-03 14:49:45 +08:00
- 逕滉コァ莉」遐�シ壼キイ譛画怙蟆� Django 蟾・遞矩ェィ譫カ�啻manage.py`縲~config/`�婬-002 蟾イ蛻帛サコ `apps/users|portal|billing|ai|api`�婬-003 蟾イ謚願�螳壻ケ� `User` 豕ィ蜀瑚ソ� django-admin�婬-004 蟾イ螳梧� email 蜚ッ荳€諤ァ縲(nit 迚域悽譁ュ險€縲∥pp 鬘コ蠎上€~.env.example` 荳� `pyproject.toml`�婬-101 蟾イ譁ー蠅� `apps/ai/providers/`��rovider 謗・蜿」縲∵ウィ蜀瑚。ィ縲…hat/gemini/images/images_edits 騾る�蝎ィ�会シ婬-102 蟾イ譁ー蠅� `AiModel` / `ModelAlias`縲:ernet 蜉�蟇�ッ�徴蟄伜お縲∝悪蜷崎ァ」譫舌€∥dmin 驟咲スョ鬘オ縲~import_ai_models` 蟇シ蜈・蜻ス莉、�婬-103 蟾イ譁ー蠅� `AiConfigAuditLog` 螳。隶。陦ィ縲∥dmin 蜿ェ隸サ鬘オ髱「蜥悟錘蜿ー菫晏ュ�/蛻�髯、螳。隶。 hook�婬-104/T-105 蟾イ螳梧�蠖募宛 title/image smoke 荳主ョ。譬ク菫ョ陦・�婬-201 蟾イ譁ー蠅� `UserWallet` / `ApiKey`縲~PointsLedger` / `CallRecord`縲∝ッケ蠎� admin 荳手ソ∫ァサ�婬-202 蟾イ譁ー蠅� `PricingRule` / `ExchangeRate`縲~apps.billing.pricing` 隶。雍ケ隶。邂怜�謨ー縲∥dmin 驟咲スョ鬘オ荳手ソ∫ァサ�婬-203 蟾イ譁ー蠅� `apps.billing.services`�悟ョ樒鴫蟷カ蜿大ョ牙�鬚�殴縲∵�蜉溽。ョ隶、荳主ケらュ牙、ア雍・騾€轤ケ�婬-204 蟾イ譁ー蠅� `billing.0003_pointsledger_unique_ledger_change_type_per_call`�檎畑 MySQL 蜿ッ關ス蝨ー逧� `ref_call + change_type` 螟榊粋蜚ッ荳€郤ヲ譚溷�蠎暮亟驥榊、� refund�婬-301 蟾イ譁ー蠅� `apps.api.authentication.ApiKeyAuthentication` 荳� `ExternalApiView`�婬-302 蟾イ譁ー蠅樒函謌先磁蜿」郛匁賜縲∝コ丞�蛹門勣縲∝崟迚�悽蝨ー蟄伜お蜥� `/api/v1/generate/title|image` 霍ッ逕ア�婬-303 蟾イ譁ー蠅� `apps.billing.services.get_balance_snapshot()` 荳� `/api/v1/balance` 菴咎「晄衍隸「謗・蜿」�婬-304 蟾イ譁ー蠅� `RechargeOrder`縲∝�蛟シ蝗櫁ー�ェ檎ュセ騾る�蝎ィ縲∝ケらュ牙�雍ヲ譛榊苅縲∝セョ菫。/謾ッ莉伜ョ晏屓隹�キッ逕ア荳手ソ∫ァサ `billing.0004_rechargeorder_and_more`�婬-305 蟾イ譁ー蠅� `create_recharge_order()`縲∝セョ菫。/謾ッ莉伜ョ晄沖遐∽ク句黒 mock/SDK 蜈・蜿」縲~/api/v1/recharge/create` 荳� `/api/v1/recharge/status`�婬-306 蟾イ譁ー蠅� `apps.api.throttles`縲~apps.api.exceptions`縲~REST_FRAMEWORK` 螳牙�鮟倩ョ、隶、隸√€∫函謌�/隶、隸∝、ア雍・髯先オ√€~image_url` SSRF 髦イ謚、荳主桃蠎泌、ァ蟆丈ク企剞縲∝�蛟シ蜊慕ャ秘≡鬚昜ク企剞�婬-501 蟾イ謗・蜈・ allauth�梧眠蠅� portal 霍ッ逕ア縲∵ウィ蜀碁€る�蝎ィ縲∫匳蠖�/豕ィ蜀�/逋サ蜃コ讓。譚ソ蜥梧怙蟆� dashboard�梧ウィ蜀梧�蜉溷�蟒コ 0 轤ケ髓ア蛹�ク比ク榊�襍�轤ケ豬∵ーエ�婬-502 蟾イ譁ー蠅� `/apikeys`縲、PI Key 蛻帛サコ陦ィ蜊輔€∝�陦ィ鬘オ蜥悟唖髯、�亥衰髞€�牙勘菴懶シ檎函謌仙錘譏取枚蜿ェ譏セ遉コ荳€谺。�悟�陦ィ蜿ェ譏セ遉コ prefix�婬-503 蟾イ謇ゥ螻� `/dashboard` 荳コ荳ェ莠コ荳ュ蠢�ア�€サ�悟ケカ譁ー蠅� `/records/recharge` 蜈�€シ隶ー蠖穂ク� `/records/usage` 豸郁エケ隶ー蠖包シ悟宵隸サ螻慕、コ蠖灘燕逕ィ謌キ謨ー謐ョ�婬-504 蟾イ譁ー蠅� `/recharge` 鬘オ髱「縲~RechargeCreateForm`縲∝�蛟シ蟇シ闊ェ蜈・蜿」蜥瑚スョ隸「閼壽悽�碁。オ髱「蛻帛サコ pending 隶「蜊輔€∝ア慕、コ莠檎サエ遐∫・ィ謐ョ縲∬スョ隸「 `/api/v1/recharge/status`�瑚ョ「蜊� paid 蜷主姐譁ー菴咎「�
- 豬玖ッ包シ啜-504 蟾イ鬪瑚ッ�シ啻./init.ps1` 蠑€蟾・蜑埼€夊ソ�シ嫣py -3.12 -m py_compile apps\portal\forms.py apps\portal\views.py apps\portal\urls.py apps\portal\tests.py` 騾夊ソ�シ嫣py -3.12 manage.py check` 騾夊ソ�シ嫣py -3.12 manage.py makemigrations --check --dry-run` 譌�蜿伜喧�嫣py -3.12 -m compileall apps config` 騾夊ソ�シ嫣py -3.12 manage.py test apps.portal --noinput --keepdb --verbosity 2` 騾夊ソ�シ�19 tests OK�会シ嫣py -3.12 manage.py test apps.users apps.portal apps.api --noinput --keepdb --verbosity 2` 騾夊ソ�シ�60 tests OK�会シ嫣./init.ps1` 謾カ蟆セ騾夊ソ�シ嫣git diff --check` 騾夊ソ�シ井サ� Windows CRLF 謠千、コ�峨€よオ玖ッ�/霑∫ァサ髦カ谿オ莉肴怏 allauth `account.EmailAddress` 譚。莉カ蜚ッ荳€郤ヲ譚溷惠 MySQL 荳贋ク榊庄蛻帛サコ逧� `models.W036` 隴ヲ蜻奇シ帶悽鬘ケ逶ョ逕ィ謌キ雍ヲ譛ャ蜚ッ荳€諤ァ逕ア `user.email` 蜚ッ荳€郤ヲ譚滓価諡�€�
2026-07-02 11:07:44 +08:00
- 謨ー謐ョ�哂I 荳頑クク隹�畑荳取ィ。蝙矩�鄂ョ蜿り€� `D:\chengma\cmbot`��src/services/ai_text_service.py`縲~ai_image_service.py`縲~config/ai_models.json`�会シ帷悄螳� `ai_models.json` 荳肴署莠、�碁怙騾夊ソ� `import_ai_models` 蜻ス莉、蜉�蟇�ッシ蜈・
2026-07-01 18:01:23 +08:00
- 譬�㊥蜷ッ蜉ィ霍ッ蠕�シ啗indows 逕ィ `./init.ps1`�婉nix/WSL 逕ィ `./init.sh`
- 譬�㊥鬪瑚ッ∬キッ蠕�シ啗indows 逕ィ `py -3.12 manage.py check` / `py -3.12 manage.py test`
2026-07-01 17:42:10 +08:00
- 隶セ隶。蝓コ郤ソ��**閾ェ蜉ゥ逕ィ謌キ遶ッ + 蟇ケ螟� API + 霑占是蜷主床**荳牙粋荳€蜊穂ス難シ帷畑謌キ讓。蝙� `User`(auth)/`UserWallet`(轤ケ謨ー�碁煤 wallet 謇」轤ケ)/`ApiKey`(1:N�悟嶋蟶悟ュ伜お)�帛ッケ螟紋ク、謗・蜿」 + **閭ス蜉帛悪蜷� + Provider 騾る�蝎ィ**�亥庄謠呈渠萓帛コ泌膚�会シ幄�蜉ゥ謇ォ遐∝�蛟シ�帶ウィ蜀御ク埼€∫せ謨ー縲りッヲ隗� `04-architecture.md` 荳� 2026-06-29 / 2026-07-01 逧� `progress.md` 蜀ウ遲�
2026-07-03 11:27:45 +08:00
- 驟咲スョ蝓コ郤ソ�夊ソ占。檎識蠅�序驥城寔荳ュ隗� `docs/env.md`�帷悄螳槫ッ�徴/謾ッ莉伜�隸∽ク榊セ怜�蜈・莉」遐∵�譁�。」譬キ萓九€Bllauth 驍ョ邂ア鬪瑚ッ∝書菫。逕ア `DJANGO_EMAIL_BACKEND` / `DJANGO_DEFAULT_FROM_EMAIL` 謗ァ蛻カ�梧悽蝨ー鮟倩ョ、 console backend�檎函莠ァ髴€驟咲スョ逵溷ョ樣ぐ莉カ譛榊苅縲ょ�蛟シ隶「蜊募惠蛻帛サコ譌カ髞∝ョ壽ア�紫荳朱「�ョ。轤ケ謨ー�悟屓隹��雍ヲ菴ソ逕ィ隶「蜊募€シ�御ク肴潔譁ー豎�紫驥咲ョ励€よ髪莉伜屓隹�ク惹ク句黒逕ア `PAYMENT_CALLBACK_MODE` 謗ァ蛻カ�壽悽蝨ー/豬玖ッ募庄逕ィ HMAC `mock`�檎函莠ァ蠎比クコ `sdk`�帑コ檎サエ遐∵悽蝨ー譛画譜譛滓署遉コ逕ア `PAYMENT_QR_EXPIRES_MINUTES` 謗ァ蛻カ縲5-306 襍キ蟇ケ螟� API 螳牙�驟咲スョ蛹�性 `API_GENERATE_THROTTLE_RATE`縲~API_AUTH_FAILURE_THROTTLE_RATE`縲~IMAGE_URL_MAX_BYTES`縲~IMAGE_URL_MAX_REDIRECTS`縲~IMAGE_URL_CONNECT_TIMEOUT_SECONDS`縲~IMAGE_URL_READ_TIMEOUT_SECONDS`縲~RECHARGE_MAX_AMOUNT_CNY`縲�
2026-07-03 10:34:37 +08:00
- 蠖灘燕 blocker�啜-306 荳顔コソ蜑� SSRF 鬟朱勦蟾イ菫ョ螟搾シ幄ソ懃ィ� MySQL 霑樊磁莉榊庄閭ス蠕域�謌夜龍豁�カ�慮�悟ョ梧紛豬玖ッ暮怙鬚�蕗霎�柄譌カ髣エ蟷カ莨伜�逕ィ `--keepdb` 荳イ陦瑚キ代€ょセョ菫。/謾ッ莉伜ョ晉悄螳槫膚謌キ蟇�徴/隸∽ケヲ荳守函莠ァ SDK 萓晁オ紋サ榊セ�署萓�/螳芽」�シ帷悄螳� AI 荳頑クク smoke 髴€隕∝�驟咲スョ `AI_KEY_ENCRYPTION_KEY` 蟷カ蟇シ蜈・ AiModel/ModelAlias縲ょ崟迚�酔豁・逵溷ョ櫁€玲慮鬟朱勦莉肴悴騾€�悟キイ逋サ隶ー蛻ー T-403縲�
2026-07-01 17:42:10 +08:00
## 蠖灘燕逶ョ蠖戊ヲ∫せ
| 霍ッ蠕� | 迥カ諤� | 隸エ譏� |
| --- | --- | --- |
| `docs/` | 蟾イ譛� | 蜈ィ螂� harness 譁�。」 |
| `AGENTS.md` / `CLAUDE.md` | 蟾イ譛� | 莉灘コ鍋コァ蜈・蜿」 |
| `progress.md` | 蟾イ譛� | 謇ァ陦梧オ∵ーエ�悟キイ隶ー蠖募、夊スョ譁�。」蜀ウ遲厄シ帛錘扈ュ莉サ蜉。扈ァ扈ュ霑ス蜉� |
2026-07-02 10:17:10 +08:00
| `init.sh` / `init.ps1` | 蟾イ譛� | 蜷ッ蜉ィ鬪瑚ッ∝�蜿」�悟キイ蝗コ螳夂ウサ扈� Python 3.12 蜻ス莉、�悟ケカ譬。鬪瑚ァ」驥雁勣迚域悽 `>=3.12,<3.14` |
2026-07-03 11:27:45 +08:00
| `requirements.txt` / `pyproject.toml` | 蟾イ譛� | `requirements.txt` 邂。霑占。御セ晁オ厄シ嫣pyproject.toml` 關ス蝨ー `requires-python`�婬-101 譁ー蠅� `requests`�婬-102 菴ソ逕ィ譌「譛� `cryptography` 蛛� Fernet 蜉�蟇�シ婬-501 譁ー蠅� `django-allauth` |
2026-07-01 18:01:23 +08:00
| `config/`��jango 蟾・遞具シ� | 蟾イ譛� | T-001 蛻帛サコ�悟性 settings / urls / wsgi / asgi |
2026-07-03 14:49:45 +08:00
| `apps/`��sers/portal/billing/ai/api�� | 蟾イ譛� | T-002 蛻帛サコ�嫣apps/users` 蟾イ螳壻ケ芽�螳壻ケ� `User`�婬-003 蟾イ豕ィ蜀� admin 荳� admin smoke test�婬-004 蟾イ扈� `User.email` 蜉�蜚ッ荳€郤ヲ譚滂シ婬-101 蟾イ譁ー蠅� `apps/ai/providers`�婬-102 蟾イ譁ー蠅� `apps/ai/security.py`縲~aliases.py`縲~importers.py`縲[anagement command 荳� `ai.0001_initial` 霑∫ァサ�婬-103 蟾イ譁ー蠅� `apps/ai/audit.py` 荳� `ai.0002_aiconfigauditlog` 霑∫ァサ�婬-104/T-105 蟾イ譁ー蠅� `smoke_ai_generation` 蠖募宛 title/image smoke 蜻ス莉、�婬-201 蟾イ蝨ィ users 關ス `UserWallet` / `ApiKey`�悟惠 billing 關ス `PointsLedger` / `CallRecord`�婬-202 蟾イ蝨ィ billing 關ス `PricingRule` / `ExchangeRate` 荳� `pricing.py`�婬-203/T-303/T-304/T-305 蟾イ蝨ィ `apps/billing/services.py` 關ス謇」轤ケ/騾€轤ケ縲∽ス咎「晏ソォ辣ァ縲∝�蛟シ蜈・雍ヲ荳主�蛟シ荳句黒�婬-304/T-305 蟾イ蝨ィ `apps/billing/payment_gateways.py` 關ス蝗櫁ー�ェ檎ュセ縲[ock 荳句黒荳� SDK 蜈・蜿」�婬-301~T-306 蟾イ蝨ィ api 關ス驩エ譚�€∫函謌先磁蜿」郛匁賜縲∝コ丞�蛹門勣縲∝崟迚�ュ伜お縲∽ス咎「晄衍隸「縲∝�蛟シ蝗櫁ー�€∝�蛟シ荳句黒/迥カ諤∵衍隸「縲~image_url` SSRF 髦イ謚、縲∫函謌�/隶、隸�剞豬∽ク守サ滉ク€ 429 髞呵ッッ蜩榊コ費シ婬-501 蟾イ蝨ィ portal 關ス allauth 豕ィ蜀�/逋サ蠖�/逋サ蜃コ霍ッ逕ア縲∵ィ。譚ソ縲∥dapter 荳� dashboard�婬-502 蟾イ蝨ィ portal 關ス `/apikeys`縲、PI Key 蛻帛サコ陦ィ蜊輔€∝�陦ィ讓。譚ソ荳主唖髯、�亥衰髞€�牙勘菴懶シ婬-503 蟾イ蝨ィ portal 關ス荳ェ莠コ荳ュ蠢�ア�€サ縲∝�蛟シ隶ー蠖募柱豸郁エケ隶ー蠖暮。オ�婬-504 蟾イ蝨ィ portal 關ス `/recharge` 蜈�€シ鬘オ縲∝�蛟シ陦ィ蜊輔€∽コ檎サエ遐∫・ィ謐ョ螻慕、コ蜥檎憾諤∬スョ隸「 |
2026-07-01 18:01:23 +08:00
| `manage.py` | 蟾イ譛� | T-001 蛻帛サコ |
2026-07-01 17:42:10 +08:00
| `tests/` | 蠕�サコ | 髫丞推莉サ蜉。陦・蜈� |
## 莉サ蜉。逵区攸迥カ諤�
莉サ蜉。迥カ諤∽サ・ [`06-tasks.md`](06-tasks.md) 荳コ蜃�シ悟紙蜿イ謇ァ陦瑚ョー蠖戊ァ� [`../progress.md`](../progress.md)縲�
2026-07-03 14:49:45 +08:00
- 蟾イ螳梧��啜-001 蛻晏ァ句喧 Django + DRF 鬘ケ逶ョ鬪ィ譫カ�婬-002 蟒コ遶� apps 逶ョ蠖輔€∬�螳壻ケ� User 荳朱�鄂ョ�婬-003 謗・騾� django-admin 荳取怙蟆乗オ玖ッ包シ婬-004 Phase 0 鬪ィ譫カ螳。譬ク菫ョ陦・�婬-101 Provider 騾る�蝎ィ螻� + 遘サ讀� cmbot 隹�畑�婬-102 AiModel + ModelAlias 讓。蝙� + 蛻ォ蜷崎ァ」譫撰シ婬-103 驟咲スョ蜿俶峩螳。隶。�婬-104 霍鷹€壻ク€谺。蠖募宛譬�「倡函謌撰シ婬-105 Phase 1 AI 螻ょョ。譬ク菫ョ陦・�婬-201 User / UserWallet / ApiKey / PointsLedger / CallRecord 讓。蝙具シ婬-202 PricingRule / ExchangeRate 讓。蝙� + 隶。雍ケ隶。邂暦シ婬-203 蟷カ蜿大ョ牙�謇」轤ケ / 騾€轤ケ�婬-204 Phase 2 隶。雍ケ譬ク蠢�ョ。譬ク蜉�蝗コ�婬-301 API Key 驩エ譚�シ婬-302 逕滓�譬�「� / 蝗セ迚�磁蜿」�婬-303 菴咎「晄衍隸「謗・蜿」�婬-304 蜈�€シ蝗櫁ー�シ婬-305 謇ォ遐∝�蛟シ荳句黒 + 霓ョ隸「�婬-306 Phase 3 蟇ケ螟� API 螳牙�蜉�蝗コ�婬-501 豕ィ蜀� / 逋サ蠖包シ�llauth�会シ婬-502 API Key 閾ェ蜉ゥ邂。逅�。オ�婬-503 荳ェ莠コ荳ュ蠢� / 隶ー蠖暮。オ�婬-504 蜈�€シ鬘オ�域沖遐� + 霓ョ隸「蛻ー雍ヲ�峨€�
2026-07-01 17:42:10 +08:00
- 豁」蝨ィ霑幄。鯉シ壽裏縲�
2026-07-03 10:34:37 +08:00
- 蠖灘燕 blocker�夊ソ懃ィ� MySQL 霑樊磁蠖灘燕荳咲ィウ螳壽�蠕域��帶髪莉伜膚謌キ逵溷ョ槫ッ�徴/隸∽ケヲ荳守函莠ァ SDK 萓晁オ紋サ榊セ�署萓幢シ帷悄螳� AI 荳頑クク smoke 莉埼怙驟咲スョ蟇�徴蜥梧ィ。蝙区焚謐ョ蜷取鴬陦後€�
2026-07-03 14:49:45 +08:00
- 荳倶ク€荳ェ蜿ッ鬚�叙莉サ蜉。��**T-401 霑占是蜷主床螳悟埋**縲�
2026-07-01 17:42:10 +08:00
## 蠖灘燕蜿ッ霑占。悟�螳ケ
```bash
2026-07-01 18:01:23 +08:00
# Windows PowerShell
py -3.12 -m pip install -r requirements.txt
py -3.12 manage.py check
py -3.12 manage.py test
py -3.12 manage.py runserver
2026-07-02 11:07:44 +08:00
py -3.12 manage.py import_ai_models path\to\ai_models.json --create-default-aliases
2026-07-02 13:58:34 +08:00
py -3.12 manage.py smoke_ai_generation title --recorded
2026-07-02 14:47:22 +08:00
py -3.12 manage.py smoke_ai_generation image --recorded
2026-07-01 18:01:23 +08:00
# Unix / WSL
python3.12 -m pip install -r requirements.txt
python3.12 manage.py check
python3.12 manage.py test
python3.12 manage.py runserver
2026-07-02 11:07:44 +08:00
python3.12 manage.py import_ai_models path/to/ai_models.json --create-default-aliases
2026-07-02 13:58:34 +08:00
python3.12 manage.py smoke_ai_generation title --recorded
2026-07-02 14:47:22 +08:00
python3.12 manage.py smoke_ai_generation image --recorded
2026-07-01 17:42:10 +08:00
```
2026-07-03 08:36:30 +08:00
蠖灘燕蟇ケ螟� API��
2026-07-02 22:41:37 +08:00
- `POST /api/v1/generate/title`
- `POST /api/v1/generate/image`
2026-07-03 08:36:30 +08:00
- `GET /api/v1/balance`
2026-07-03 09:34:07 +08:00
- `POST /api/v1/recharge/create`�育畑謌キ遶ッ session + CSRF��
- `GET /api/v1/recharge/status`�育畑謌キ遶ッ session��
2026-07-03 09:07:21 +08:00
- `POST /api/v1/recharge/callback/wechat`
- `POST /api/v1/recharge/callback/alipay`
2026-07-02 22:41:37 +08:00
2026-07-03 11:27:45 +08:00
蠖灘燕逕ィ謌キ遶ッ鬘オ髱「��
- `GET/POST /signup`
- `GET/POST /login`
- `GET/POST /logout`
- `GET /dashboard`
2026-07-03 14:49:45 +08:00
- `GET/POST /recharge`
2026-07-03 11:51:46 +08:00
- `GET/POST /apikeys`
- `POST /apikeys/<id>/delete`
2026-07-03 14:00:00 +08:00
- `GET /records/recharge`
- `GET /records/usage`
2026-07-03 11:27:45 +08:00
2026-07-03 14:49:45 +08:00
蠖灘燕鬪ィ譫カ蜿ッ霑占。後€5-002 蟾イ蝨ィ鬥匁ャ。霑∫ァサ蜑榊�蟒コ閾ェ螳壻ケ� User�悟ケカ謖� `env.md` 謗・蜈・ MySQL 8.4 / utf8mb4�幄ソ懃ィ� MySQL 蟾イ螳梧� Django 蛻晏ァ玖ソ∫ァサ縲5-003 蟾イ謗・騾� django-admin�梧オ玖ッ募庄蛻帛サコ/髞€豈� `test_cmhub` 豬玖ッ募コ難シ帛ス灘燕霑懃ィ� MySQL 蟇ケ鬚醍ケ∝サコ蠎�/髞€蠎謎サ榊庄閭ス髣エ豁�カ�慮�悟ソ�ヲ∵慮逕ィ `--keepdb` 荳比クイ陦瑚キ第オ玖ッ輔€5-004 蟾イ蠎皮畑 `users.0002_alter_user_email`�形user.email` 蟾イ譛牙髪荳€邏「蠑輔€5-101 逧� AI provider 螻ょ宵蛛� HTTP 隹�畑荳主桃蠎碑ァ」譫撰シ婬-102 蟾イ謚� provider 霑占。碁�鄂ョ謗・蛻ー謨ー謐ョ蠎� `AiModel` / `ModelAlias`�形resolve_alias()` 豈乗ャ。譟・蠖灘燕 active 驟咲スョ蟷カ謖� `text` / `image` 閭ス蜉帶�。鬪後€5-103 蟾イ陦・ `AiConfigAuditLog`�径dmin 菫晏ュ�/蛻�髯、 `AiModel` / `ModelAlias` 譌カ隶ー蠖� actor縲∥ction縲》arget縲…hanged_fields縲…hanges縲…reated_at�悟ッ�徴蜿ェ隶ー蠖� empty/set 迥カ諤√€5-104/T-105 蟾イ逕ィ荳エ譌カ蝗樊サ夐�鄂ョ霍鷹€壼ス募宛譬�「伜柱蠖募宛蝗セ迚�函謌舌€5-201 蟾イ關ス蝨ー髓ア蛹�€、PI Key縲∫せ謨ー豬∵ーエ蜥瑚ー�畑隶ー蠖包シ哂PI Key 譏取枚蜿ェ蝨ィ蛻帛サコ helper 霑泌屓�悟コ灘�蜿ェ蟄� hash/prefix�佞allRecord 蜿ェ蟄� `result_ref`/`result_summary`�梧イ。譛� provider raw 蟄玲ョオ縲5-202 蟾イ關ス蝨ー `PricingRule` / `ExchangeRate`�夊ョ。雍ケ謖� `operation_type + alias + resolution` 譟・ active 隗���御シ伜�邊セ遑ョ蛻�セィ邇�シ悟�蝗樣€€鮟倩ョ、莉キ�帷シコ隗��謚� `NoPricingRuleError(code="no_pricing_rule")`�幃≡鬚晄困轤ケ謨ー謖牙ス灘燕 active 豎�紫蜷台ク句叙謨エ縲5-203 蟾イ關ス蝨ー `precharge_call()` / `mark_call_success()` / `refund_call_points()`�夐「�殴髞�蝶蛹�。鯉シ御ス咎「昜ク崎カウ荳榊�隹�畑/豬∵ーエ�帛、ア雍・騾€轤ケ髞∬ー�畑隶ー蠖募ケカ蟷らュ牙� refund 豬∵ーエ縲5-204 蟾イ螳梧�螟榊粋蜚ッ荳€郤ヲ譚溷刈蝗コ�悟ケカ蜿門セ嶺ク€谺。螳梧紛 `manage.py test` 蜊墓ャ。蜈ィ扈ソ縲5-301 蟾イ關ス蝨ー `Authorization: Bearer <API_KEY>` 驩エ譚�シ壽�蜉溷錘 `request.user` 荳コ謇€螻樒畑謌キ縲~request.auth` 荳コ `ApiKey`�檎シコ螟ア/譌�謨� Key 霑泌屓 401�檎畑謌キ謌� Key 遖∫畑霑泌屓 403�悟、夜Κ API 荳肴磁蜿� Web session縲5-302 蟾イ關ス蝨ー逕滓�謗・蜿」�夊ッキ豎ょ悪蜷崎ァ」譫仙錘謖芽ァ��隶。雍ケ�碁「�殴謌仙粥謇崎ー�畑 Provider�梧�蜉溽。ョ隶、隹�畑隶ー蠖包シ形AiProviderError` / `AiCapabilityError` 遲牙、ア雍・霍ッ蠕�シ夐€€轤ケ�帛崟迚�サ捺棡菫晏ュ伜芦譛ャ蝨ー media 蟷カ霑泌屓 URL縲5-303 蟾イ關ス蝨ー菴咎「晄衍隸「謗・蜿」�啻GET /api/v1/balance` 扈ァ謇ソ螟夜Κ API Key 驩エ譚�シ瑚ッサ蜿� billing 菴咎「晏ソォ辣ァ蟷カ霑泌屓 `user` 荳� `points_balance`�梧オ玖ッ戊ヲ�尠菴咎「昜ク取オ∵ーエ邏ッ蜉�荳€閾エ縲5-304 蟾イ關ス蝨ー蜈�€シ蝗櫁ー�シ啻RechargeOrder` 菫晏ュ倅ク句黒髞∝ョ夂噪驥鷹「�/豎�紫/轤ケ謨ー�悟セョ菫。/謾ッ莉伜ョ晏屓隹��鬪檎ュセ蜀肴潔隶「蜊募ケらュ牙�雍ヲ�碁㍾螟榊屓隹�ク埼㍾螟榊刈轤ケ�碁≡鬚昜ク堺ク€閾エ荳榊�雍ヲ�帑クサ蜉ィ譟・蜊募�蠎募庄隹�畑 `query_and_apply_recharge_payment(order_no, query_func)` 螟咲畑蜷御ク€蜈・雍ヲ霍ッ蠕�€5-305 蟾イ關ス蝨ー謇ォ遐∽ク句黒荳手スョ隸「�夂畑謌キ遶ッ session 逋サ蠖募錘蜿ッ `POST /api/v1/recharge/create` 蛻帛サコ pending 隶「蜊募ケカ諡ソ蛻ー mock/SDK 莠檎サエ遐∫・ィ謐ョ�形GET /api/v1/recharge/status` 蜿ェ霑泌屓譛ャ莠コ隶「蜊募ケカ蝨ィ pending 譌カ蟆晁ッ穂クサ蜉ィ譟・蜊戊。・蜈・雍ヲ�妁PI Key 荳崎�隹�畑霑吩ク、荳ェ逕ィ謌キ遶ッ謗・蜿」縲5-306 蟾イ關ス蝨ー蟇ケ螟� API 螳牙�蜉�蝗コ�啻image_url` 荳玖スス蝨ィ謇」轤ケ蜑榊★蜊剰ョョ逋ス蜷榊黒縲∝�鄂大慍蝮€譬。鬪後€�㍾螳壼髄騾占キウ譬。鬪悟柱蜩榊コ泌、ァ蟆丈ク企剞�侫RF 蜈ィ螻€鮟倩ョ、荳榊�髫仙シ丞星逕ィ Session/Basic�帷函謌先磁蜿」謖� Key 髯先オ�シ瑚ョ、隸∝、ア雍・謖� IP 髯先オ�シ帛�蛟シ荳句黒譛牙黒隨秘≡鬚昜ク企剞縲5-501 蟾イ關ス蝨ー allauth 豕ィ蜀� / 逋サ蠖包シ啻ACCOUNT_EMAIL_VERIFICATION="mandatory"`�梧ウィ蜀梧�蜉溷�蟒コ 0 轤ケ髓ア蛹�€∽ク榊�轤ケ謨ー豬∵ーエ�帶悴鬪瑚ッ�ぐ邂ア荳崎�蟒コ遶狗匳蠖� session縲5-502 蟾イ關ス蝨ー API Key 閾ェ蜉ゥ邂。逅�シ啻/apikeys` 逋サ蠖戊ョソ髣ョ�檎函謌仙錘螳梧紛譏取枚蜿ェ譏セ遉コ荳€谺。�悟�陦ィ蜿ェ譏セ遉コ prefix�御ク肴仞遉コ hash 謌門紙蜿イ譏取枚�帛唖髯、荳コ蜷企楳 `revoked`�悟衰髞€蜷主、夜Κ API 霑泌屓 403縲5-503 蟾イ關ス蝨ー荳ェ莠コ荳ュ蠢�ク手ョー蠖暮。オ�啻/dashboard` 螻慕、コ蜑ゥ菴咏せ謨ー縲∝�蛟シ諤サ鬚昴€∝�雍ヲ轤ケ謨ー縲∝〝豸郁€礼せ謨ー蜥梧怙霑題ョー蠖包シ嫣/records/recharge` 螻慕、コ蠖灘燕逕ィ謌キ蜈�€シ隶「蜊包シ嫣/records/usage` 螻慕、コ蠖灘燕逕ィ謌キ consume/refund 轤ケ謨ー豬∵ーエ蟷カ蜈ウ閨碑ー�畑菫。諱ッ�帶園譛蛾。オ髱「蝮�宵隸サ荳泌宵譟・譛ャ莠コ縲5-504 蟾イ關ス蝨ー蜈�€シ鬘オ�啻/recharge` GET 螻慕、コ菴咎「昴€∝�蛟シ�
2026-07-01 17:42:10 +08:00
## 蠑€蟋狗シ也�∝燕譽€譟・
1. 隸サ莉灘コ鍋コァ `AGENTS.md` / `CLAUDE.md`縲�
2. 隸サ `docs/00-ai-start-here.md`縲�
3. 隸サ `docs/05-coding-rules.md`�亥ー、蜈カ隨ャ 8 闃りオ�≡螳牙��峨€�
2026-07-03 14:49:45 +08:00
4. 蝨ィ `docs/06-tasks.md` 鬚�叙隨ャ荳€荳ェ `TODO` 荳比セ晁オ門插 `DONE` 逧�ササ蜉。�亥ス灘燕荳コ T-401�峨€�
2026-07-01 17:42:10 +08:00
5. 蟆�ッ・莉サ蜉。迥カ諤∵隼荳コ `DOING`縲�
## 扈エ謚、隗��
莉」遐∫憾諤∝序蛹匁慮蜷梧ュ・譖エ譁ー譛ャ譁�シ壽眠蠅�/遘サ蜉ィ蜈・蜿」譁�サカ縲∝�蟋句喧譯�楔謌匁ィ。蝮励€∽ササ蜉。迥カ諤∝序蛹悶€∵眠蠅槫庄霑占。悟多莉、縲∝書邇ー譁�。」荳惹サ」遐∽ク堺ク€閾エ縲�
- 莉サ蜉。迥カ諤∝序蛹門酔豁・ [`06-tasks.md`](06-tasks.md)縲�
- 豈剰スョ謇ァ陦瑚ョー蠖輔€�ェ瑚ッ∝多莉、縲�仆蝪槭€∝�遲冶ソス蜉�蛻ー [`../progress.md`](../progress.md)縲�
- 譛ャ譁�サカ蜿ェ菫晉蕗蠖灘燕蠢ォ辣ァ�御ク堺ソ晉蕗螳梧紛蜴�彰縲�