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-06 08:56:30 +08:00
|
|
|
- 譌・譛滂シ�2026-07-06
|
2026-07-06 23:18:08 +08:00
|
|
|
- 髦カ谿オ�啀hase 6 蠅槫シコ��VP 蜷趣シ会シ娜hase 3 蟇ケ螟� API 荳主�蛟シ蟾イ螳梧�蛻ー T-306�訓hase 4 逕ィ謌キ遶ッ T-501 豕ィ蜀� / 逋サ蠖包シ�llauth�峨ゝ-502 API Key 閾ェ蜉ゥ邂。逅�。オ縲ゝ-503 荳ェ莠コ荳ュ蠢� / 隶ー蠖暮。オ縲ゝ-504 蜈�シ鬘オ荳� T-505 逕ィ謌キ遶ッ螳。譬ク莨伜喧蟾イ螳梧��訓hase 5 T-401 霑占是蜷主床螳悟埋縲ゝ-402 MVP 螳梧紛鬪梧噺荳� T-403 驛ィ鄂イ / 霑占。梧枚譯」蟾イ螳梧��訓hase 6 T-601 蜿ッ逕ィ蛻ォ蜷榊書邇ー縲ゝ-602 django-admin 荳ュ譁�喧隨ャ 1-3 螻ゅゝ-603 django-admin 蟄玲ョオ郤ァ荳ュ譁�喧縲ゝ-604 荳ュ譁�撫諢溯ッ肴悽蝨ー霑�サ、縲ゝ-605 蜈埼ぐ邂ア鬪瑚ッ∫ュ也払關ス蝨ー縲ゝ-606 蜈ャ蠑鬥夜。オ + 螳「謌キ遶ッ荳玖スス蜈・蜿」蟾イ螳梧��帛錘扈ュ蜿ッ扈ァ扈ュ螟�炊逵溷ョ樊髪莉伜屓隹�芦雍ヲ髣ュ邇ッ縲∝ョ「謌キ遶ッ荳玖スス蛹�書蟶��逵溷ョ槫崟迚�玲慮鬪瑚ッ�
|
2026-07-06 14:57:25 +08:00
|
|
|
- 謚譛ッ譬茨シ夂ウサ扈� Python 3.12.3 + Django 5.2.15 + DRF 3.16.1 + django-allauth 65.18.0 + PyMySQL 1.1.3 + cryptography 49.0.0 + requests 2.34.2 + ahocorapy 1.6.2 + wechatpayv3 2.0.2 + python-alipay-sdk 3.4.0 + django-admin�娥ySQL 8.4 蟾イ謗・蜈・ settings�悟ケカ謾ッ謖� `MYSQL_CONNECT_TIMEOUT` / `MYSQL_READ_TIMEOUT` / `MYSQL_WRITE_TIMEOUT`�帷畑謌キ遶ッ蟾イ逕ィ Django 讓。譚ソ SSR + Bootstrap + allauth 關ス蝨ー豕ィ蜀檎匳蠖包シ帷函莠ァ驛ィ鄂イ蜿」蠕�クコ VPS / 螳晏。� + Nginx + Gunicorn(gthread) + systemd�幄ッヲ隗� `03-tech-stack.md` 荳� `deployment.md`
|
2026-07-06 23:18:08 +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 蜷主姐譁ー菴咎「晢シ婬-505 蟾イ謚� Bootstrap 5 CSS 荳� qrcode.js vendoring 蛻ー `apps/portal/static/portal/vendor/`�碁。オ髱「荳榊�萓晁オ� jsdelivr�悟ケカ謚雁�蛟シ隶ー蠖� / 豸郁エケ隶ー蠖墓隼荳コ Django `Paginator` 蛻�。オ�婬-401 蟾イ譁ー蠅� `adjust_wallet_points()` 謇句キ・隹�せ譛榊苅縲�蝶蛹� admin 荳鍋畑隹�せ陦ィ蜊穂ク取ィ。譚ソ�悟錘蜿ー蜿ッ邂。逅�/譽邏「逕ィ謌キ縲�蝶蛹�、PI Key�郁┳謨擾シ峨∬ョ。雍ケ隗��縲∵ア�紫縲∝�蛟シ隶「蜊輔∫せ謨ー豬∵ーエ蜥瑚ー�畑隶ー蠖包シ梧オ∵ーエ/隶「蜊�/隹�畑隶ー蠖穂ソ晄戟蜿ェ隸サ�婬-402 蟾イ譁ー蠅� `docs/mvp-acceptance.md`�梧潔 P0 鬪梧噺遏ゥ髦オ隶ー蠖� MVP 螳梧紛鬪梧噺扈楢ョコ縲∵オ玖ッ戊ッ∵紺蜥悟キイ遏・髯仙宛�婬-403 蟾イ譁ー蠅� `docs/deployment.md` 荳� `requirements-production.txt`�悟ケカ蝨ィ settings 荳ュ陦・鮨� `STATIC_ROOT`縲~CSRF_TRUSTED_ORIGINS`縲∝�莠ォ `CACHES`縲?TTPS cookie縲}roxy SSL 荳� HSTS 邇ッ蠅�序驥乗髪謖�シ婬-601 蟾イ譁ー蠅� `apps.ai.catalog.get_public_model_catalog()`縲~GET /api/v1/models` 荳� portal `/models` 蜿ェ隸サ鬘オ髱「�悟宵螻慕、コ active 蜿ッ隹�畑蛻ォ蜷阪∬�蜉帙∵弍蜷ヲ髴隕∝次蝗セ蜥檎せ謨ー蜊穂サキ�御ク崎ァ」蟇� provider key�御ク肴垓髴イ蠎募ア� SKU / URL / key / `extra_body`�婬-604 蟾イ譁ー蠅� `apps.moderation`縲~SensitiveWord` 讓。蝙�/admin/霑∫ァサ縲〔eyword provider縲∝ス剃ク蛹也ョ。郤ソ蜥悟�莠ォ cache 迚域悽螟ア謨茨シ檎函謌先磁蜿」蟾イ謾ケ荳コ prompt 蜈亥ョ。蜀崎ッサ蜿門崟迚�/隶。雍ケ/謇」轤ケ/隹�ク頑クク�婬-606 蟾イ譁ー蠅槫�蠑鬥夜。オ `/`縲~DownloadRelease` 讓。蝙�/admin/霑∫ァサ縲�
|
2026-07-04 10:47:35 +08:00
|
|
|
- 逕ィ謌キ遶ッ蟇シ闊ェ�夐。カ驛ィ蟇シ闊ェ active 迥カ諤∝キイ菫ョ螟搾シ形portal/base.html` 蝓コ莠� `request.resolver_match.url_name` 鬮倅コョ蠖灘燕鬘オ髱「蜈・蜿」�悟ケカ逕ィ `aria-current="page"` 譬�ョー�帙悟�蛟シ縲堺ク榊�蝨ィ髱槫�蛟シ鬘オ蝗コ螳壽キア濶イ鬮倅コョ縲�
|
2026-07-04 10:14:16 +08:00
|
|
|
- 豬玖ッ包シ啜-601 蟾イ鬪瑚ッ�シ啻.\init.ps1` 騾夊ソ�シ�ython 3.12.3�御セ晁オ門キイ貊。雜ウ�形manage.py check` 0 issues�梧遠蜊ー蜷ッ蜉ィ蜻ス莉、�会シ嫣py -3.12 -m py_compile apps\ai\catalog.py apps\api\views.py apps\api\urls.py apps\api\tests.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` 譌�蜿伜喧�嫣git diff --check` 騾夊ソ�シ嫣py -3.12 manage.py test apps.api.tests.ModelsCatalogApiTests apps.portal.tests.PortalAccountFlowTests.test_models_page_requires_session_login apps.portal.tests.PortalAccountFlowTests.test_models_page_lists_public_aliases_prices_and_unpriced_state --keepdb --noinput --verbosity 2` 鬥匁ャ。霑占。梧慮 3 譚。 API 豬玖ッ募キイ騾夊ソ�シ継ortal `setUpClass` 髦カ谿オ蝗�霑懃ィ� MySQL 霑樊磁 43.128.3.240 雜�慮荳ュ譁ュ�幃囂蜷� `Test-NetConnection 43.128.3.240 -Port 3306` 譏セ遉コ `TcpTestSucceeded=True`�悟黒迢ャ驥崎キ台ク、譚。 portal 豬玖ッ暮夊ソ�シ�2 tests OK縲5-403 蟾イ鬪瑚ッ�シ啻./init.ps1` 蠑蟾・蜑埼夊ソ�シ嫣py -3.12 manage.py check` 騾夊ソ�シ嫣py -3.12 manage.py makemigrations --check --dry-run` 譌�蜿伜喧�嫣py -3.12 manage.py findstatic portal/vendor/bootstrap/bootstrap.min.css portal/vendor/qrcode/qrcode.js --verbosity 1` 謇セ蛻ー荳、荳ェ譛ャ蝨ー static 譁�サカ�嫣py -3.12 manage.py check --deploy` 蝨ィ蠖灘燕蠑蜿� `.env` 荳倶サ�冠鬚�悄螳牙�驟咲スョ隴ヲ蜻奇シ御クエ譌カ豕ィ蜈・逕滉コァ蝙句ョ牙�邇ッ蠅�序驥擾シ亥性 HSTS includeSubDomains/preload�牙錘騾夊ソ�シ�0 issues�嫣py -3.12 manage.py collectstatic --dry-run --noinput` 騾夊ソ�シ碁「�悄謾カ髮� 169 荳ェ static 譁�サカ�嫣py -3.12 manage.py createcachetable --dry-run cmhub_cache` 騾夊ソ�シ瑚セ灘� MySQL cache 陦ィ DDL�嫣py -3.12 -m compileall config` 騾夊ソ�シ帛ー晁ッ� `py -3.12 manage.py test apps.api --noinput --keepdb --verbosity 2` 譌カ 25 譚。逕ィ萓句キイ騾夊ソ�シ形GenerateApiTests` 14 譚。蝗�霑懃ィ� MySQL 霑樊磁驥咲スョ/莠句苅荳ュ譁ュ陲ォ隶ー ERROR�碁囂蜷� `Test-NetConnection 43.128.3.240 -Port 3306` 遶ッ蜿」蜿ッ霎セ�悟黒迢ャ驥崎キ� `py -3.12 manage.py test apps.api.tests.GenerateApiTests --noinput --keepdb --verbosity 2` 騾夊ソ�シ�14 tests OK縲よオ玖ッ�/霑∫ァサ髦カ谿オ莉肴怏 allauth `account.EmailAddress` 譚。莉カ蜚ッ荳郤ヲ譚溷惠 MySQL 荳贋ク榊庄蛻帛サコ逧� `models.W036` 隴ヲ蜻奇シ帶悽鬘ケ逶ョ逕ィ謌キ雍ヲ譛ャ驍ョ邂ア蜚ッ荳諤ァ逕ア `user.email` 蜚ッ荳郤ヲ譚滓価諡��
|
2026-07-06 23:18:08 +08:00
|
|
|
- 譛譁ー鬪瑚ッ�シ啜-606 蜈ャ蠑鬥夜。オ + 螳「謌キ遶ッ荳玖スス蜈・蜿」蟾イ鬪瑚ッ� `.\init.ps1` 騾夊ソ�シ�ython 3.12.3�御セ晁オ門キイ貊。雜ウ�形manage.py check` 0 issues�梧遠蜊ー蜷ッ蜉ィ蜻ス莉、�会シ嫣py -3.12 -m py_compile apps\portal\models.py apps\portal\admin.py apps\portal\views.py apps\portal\urls.py apps\portal\tests.py` 騾夊ソ�シ嫣py -3.12 manage.py check` 騾夊ソ�シ�0 issues�嫣py -3.12 manage.py makemigrations --check --dry-run` 騾夊ソ�シ君o changes detected�嫣py -3.12 manage.py migrate portal` 蟾イ蠎皮畑 `portal.0001_initial` 蛻ー蠖灘燕謨ー謐ョ蠎難シ嫣py -3.12 manage.py shell -c "... Client().get('/') ..."` 霑泌屓 `STATUS=200`縲�ヲ夜。オ譬�ッ�柱荳玖スス蛹コ譬�ッ�插蟄伜惠�嫣py -3.12 manage.py findstatic portal/brand.css portal/vendor/bootstrap/bootstrap.min.css portal/vendor/qrcode/qrcode.js --verbosity 1` 蝮�伽蛻ー�嫣py -3.12 manage.py test apps.portal.tests.PortalAccountFlowTests.test_homepage_is_public_and_shows_anonymous_onboarding_without_release apps.portal.tests.PortalAccountFlowTests.test_homepage_shows_current_download_release apps.portal.tests.PortalAccountFlowTests.test_homepage_shows_dashboard_entry_for_authenticated_user apps.portal.tests.PortalAccountFlowTests.test_download_release_only_keeps_one_current_per_platform apps.portal.tests.PortalAccountFlowTests.test_authenticated_nav_highlights_current_page_only --noinput --verbosity 2` 騾夊ソ�シ�5 tests OK縲Apy -3.12 manage.py test apps.portal.tests.PortalAccountFlowTests --keepdb --noinput --verbosity 2` 蟾イ驥崎キ托シ悟屏霑懃ィ� MySQL `43.128.3.240` 蝨ィ豬玖ッ募コ楢ソ∫ァサ髦カ谿オ霑樊磁雜�慮��2003 / WinError 10060�我クュ譁ュ�御ク肴弍譁ュ險螟ア雍・�帶焚謐ョ蠎捺△螟榊錘髴陦・霍� portal 謨エ扈��
|
2026-07-06 14:02:48 +08:00
|
|
|
- 譛譁ー鬪瑚ッ�シ啜-605 蜈埼ぐ邂ア鬪瑚ッ∫ュ也払蟾イ鬪瑚ッ� `py -3.12 -m py_compile config\settings.py apps\portal\tests.py` 騾夊ソ�シ嫣py -3.12 manage.py check` 騾夊ソ�シ�0 issues�嫣py -3.12 manage.py makemigrations --check --dry-run` 騾夊ソ�シ君o changes detected�帶峩譁ー蜷守噪豕ィ蜀� / 逋サ蠖慕岼譬�オ玖ッ� 3 tests OK�嫣py -3.12 manage.py test apps.portal --keepdb --noinput --verbosity 2` 騾夊ソ�シ�26 tests OK�嫣git diff --check` 騾夊ソ�シ御サ� Windows CRLF 謠千、コ縲ょ�驥� `py -3.12 manage.py test --keepdb --noinput --verbosity 2` 蟾イ蟆晁ッ包シ悟書邇ー 131 tests�瑚キ大芦 95 tests 蜷手ソ懃ィ� MySQL `43.128.3.240` 蜃コ邇ー霑樊磁雜�慮 / WinError 10051�梧怙扈� 22 errors�幃囂蜷� `Test-NetConnection 43.128.3.240 -Port 3306` 譏セ遉コ `TcpTestSucceeded=True`�悟黒迢ャ螟崎キ大、ア雍・襍キ轤ケ逧� billing 蛻�サ�慮 17 譚。荳壼苅逕ィ萓� OK�悟ケカ蜿第殴轤ケ逕ィ萓区悽菴捺遠蜊ー `ok` 蜷主惠豬玖ッ募コ� flush 髦カ谿オ蜀肴ャ。蝗� MySQL 霑樊磁雜�慮 / WinError 10060 隶ー ERROR縲らサ楢ョコ�啜-605 逶ク蜈ウ豬玖ッ募キイ騾夊ソ�シ悟�驥丞黒谺。扈ソ蜿苓ソ懃ィ� MySQL 遞ウ螳壽ァ髦サ蝪槭�
|
2026-07-06 14:57:25 +08:00
|
|
|
- 譛譁ー鬪瑚ッ�シ啜-604 荳ュ譁�撫諢溯ッ肴悽蝨ー霑�サ、蟾イ鬪瑚ッ� `py -3.12 -m py_compile config\settings.py apps\api\generation.py apps\api\tests.py apps\moderation\apps.py apps\moderation\models.py apps\moderation\normalization.py apps\moderation\policy.py apps\moderation\services.py apps\moderation\signals.py apps\moderation\versioning.py apps\moderation\providers\base.py apps\moderation\providers\keyword.py apps\moderation\tests.py` 騾夊ソ�シ嫣py -3.12 manage.py check` 騾夊ソ�シ�0 issues�嫣py -3.12 manage.py makemigrations --check --dry-run` 騾夊ソ�シ君o changes detected�嫣py -3.12 manage.py test apps.moderation --keepdb --noinput --verbosity 2` 騾夊ソ�シ�7 tests OK�帶眠蠅樒函謌先磁蜿」逶ョ譬�オ玖ッ� 2 tests OK�嫣py -3.12 manage.py test apps.api.tests.GenerateApiTests --keepdb --noinput --verbosity 2` 騾夊ソ�シ�16 tests OK縲よオ玖ッ墓悄莉�ソ晉蕗 allauth 蝨ィ MySQL 譚。莉カ蜚ッ荳郤ヲ譚滉ク顔噪譌「譛� `models.W036` 隴ヲ蜻翫�
|
2026-07-06 17:38:56 +08:00
|
|
|
- 譛譁ー鬪瑚ッ�シ啜-603 django-admin 蟄玲ョオ郤ァ荳ュ譁�喧蟾イ謾カ蟆セ�壻ココ蟾・遑ョ隶、 `/admin/` 蟄玲ョオ譬�ュセ荳ュ譁�喧�嫣py -3.12 manage.py check` 騾夊ソ�シ�0 issues�嫣py -3.12 manage.py makemigrations --check --dry-run` 騾夊ソ�シ君o changes detected�嫣py -3.12 manage.py test apps.users.tests apps.billing.tests.BillingAdminTests apps.ai.tests.AiModelAdminTests apps.ai.tests.AiConfigAuditAdminTests --keepdb --noinput --verbosity 2` 騾夊ソ�シ�15 tests OK縲よオ玖ッ墓悄莉�ソ晉蕗 allauth 蝨ィ MySQL 譚。莉カ蜚ッ荳郤ヲ譚滉ク顔噪譌「譛� `models.W036` 隴ヲ蜻翫�
|
2026-07-06 17:08:15 +08:00
|
|
|
- 郤ソ荳� AI 譬�「倡函謌千シコ髯キ蟾イ菫ョ螟搾シ�2026-07-06 逕ィ蠖灘燕郤ソ荳� `AI_KEY_ENCRYPTION_KEY` 驥肴眠蟇シ蜈・ `/secure/cmhub/ai_models.json`�御ソョ螟� `title-standard` 蟇ケ蠎� `AiModel.api_key_encrypted` 譌�豕戊ァ」蟇�噪髣ョ鬚倥るェ瑚ッ�シ啻python3.12 manage.py check` 騾夊ソ�シ嫣python3.12 manage.py smoke_ai_generation title` 逵溷ョ櫁ー�畑謌仙粥�形model_used=gpt-5.5`�瑚玲慮郤ヲ 16.9s�瑚ソ泌屓 3 荳ェ譬�「假シ帷畑 `api_key.txt` 隨ャ莠御クェ Key 隹� `POST https://cm.833729.com/api/v1/generate/title` 謌仙粥霑泌屓 5 荳ェ譬�「假シ形points_cost=1`�御ス咎「昜サ� 1010 謇」蛻ー 1009縲�
|
2026-07-04 16:43:57 +08:00
|
|
|
- 郤ソ荳顔Ο菫ョ鬪瑚ッ�シ啻/admin/billing/exchangerate/` 500 譬ケ蝗�譏ッ `ExchangeRateAdmin.date_hierarchy` 隗ヲ蜿� MySQL `CONVERT_TZ`�瑚檎函莠ァ MySQL 譛ェ蜉�霓ス譌カ蛹コ陦ィ�轡jango 謚� `ValueError: Database returned an invalid datetime value`�帛キイ遘サ髯、 `apps.billing.admin` 荳ュ 4 荳ェ DateTime `date_hierarchy`�御ソ晉蕗 `list_filter` 譌・譛溽ュ幃峨るェ瑚ッ� `py -3.12 -m py_compile apps\billing\admin.py apps\billing\tests.py`縲~py -3.12 manage.py check`縲~py -3.12 manage.py test apps.billing.tests.BillingAdminTests.test_exchange_rate_changelist_renders_when_rates_exist --keepdb --noinput --verbosity 2` 蝮�夊ソ��
|
2026-07-06 08:56:30 +08:00
|
|
|
- Mock 謾ッ莉俶署遉コ�啻PAYMENT_CALLBACK_MODE=mock` 譌カ�檎畑謌キ遶ッ `/recharge` 逧�セ�髪莉倩ョ「蜊募玄蝓滉シ壽仞遉コ驢堤岼豬玖ッ墓ィ。蠑乗署遉コ�瑚ッエ譏惹コ檎サエ遐∝宵逕ィ莠手#隹�ョ「蜊募�蟒コ縲�。オ髱「貂イ譟灘柱迥カ諤∬スョ隸「�御ク崎�菴ソ逕ィ蠕ョ菫。謌匁髪莉伜ョ晉悄螳樔サ俶ャセ�嫣sdk` 讓。蠑丈ク肴仞遉コ隸・謠千、コ縲るェ瑚ッ� `py -3.12 -m py_compile apps\portal\views.py apps\portal\tests.py`縲~py -3.12 manage.py check`縲~py -3.12 manage.py test apps.portal.tests.PortalAccountFlowTests.test_recharge_page_post_creates_pending_order_without_crediting_wallet_or_ledger apps.portal.tests.PortalAccountFlowTests.test_recharge_page_does_not_show_mock_notice_in_sdk_mode --keepdb --noinput --verbosity 2` 蝮�夊ソ��
|
|
|
|
|
- 蠕ョ菫。豁」蠑丈ク句黒辜ュ菫ョ�夂コソ荳雁セョ菫。 Native 荳句黒螟ア雍・譬ケ蝗�譏ッ `wechatpayv3` SDK 髴隕∵仞蠑� `pay_type=WeChatPayType.NATIVE`�御ク疲�蜉溷桃蠎比クコ `(status_code, json_string)` tuple 閠碁撼 dict�帛キイ蜈シ螳ケ tuple/json 蜩榊コ泌ケカ隕�尠荳句黒荳惹クサ蜉ィ譟・蜊輔らコソ荳顔畑菫ョ螟榊錘逧� `_create_wechat_payment_order_with_sdk()` 蛻帛サコ 1 蛻�ッ頑妙鬚�髪莉倩ッキ豎ゑシ檎。ョ隶、霑泌屓 `weixin://wxpay/bizpayurl` 逾ィ謐ョ縲ょ嘗�嗔ending 隶「蜊穂クサ蜉ィ譟・蜊募シょクク荳榊�隶ゥ `/api/v1/recharge/status` 霑泌屓 500�瑚梧弍菫晄戟蠖灘燕隶「蜊慕憾諤∬ソ泌屓 200縲�
|
|
|
|
|
- 謾ッ莉伜ョ昜クエ譌カ荳狗コソ�夂コソ荳頑髪莉伜ョ晞「�ク句黒霑泌屓 `isv.illegal-client-ip`�亥ス灘燕隹�畑 IP 荳榊惠謾ッ莉伜ョ晏庄菫。蜷榊黒荳ュ�会シ碁怙蝨ィ謾ッ莉伜ョ晏シ謾セ蟷ウ蜿ー謚� VPS 蜃コ蜿」 IP `43.128.3.240` 蜉�蜈・蜿ッ菫。 IP 蜷主�諱「螟阪ょ屏豁、逕ィ謌キ遶ッ `/recharge` 陦ィ蜊墓嘯譌カ蜿ェ螻慕、コ蟷カ謗・蜿怜セョ菫。謾ッ莉假シ帛コ募ア� API縲∵ィ。蝙区椢荳セ縲∝屓隹�ク取髪莉伜ョ� SDK 霍ッ蠕�ソ晉蕗荳榊唖縲�
|
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-06 14:57:25 +08:00
|
|
|
- 驟咲スョ蝓コ郤ソ�夊ソ占。檎識蠅�序驥城寔荳ュ隗� `docs/env.md`�帷悄螳槫ッ�徴/謾ッ莉伜�隸∽ク榊セ怜�蜈・莉」遐∵�譁�。」譬キ萓九ら畑謌キ遶ッ豕ィ蜀檎ュ也払蝗コ螳壻クコ `ACCOUNT_EMAIL_VERIFICATION="none"`�壼�驍ョ邂ア鬪瑚ッ√∵ウィ蜀悟叉蜿ッ逕ィ縲�ぐ邂ア莉榊ソ�。ォ荳泌髪荳�嫣DJANGO_EMAIL_BACKEND` / `DJANGO_DEFAULT_FROM_EMAIL` 莉�畑莠主錘扈ュ蟇��∵伽蝗槭�夂衍謌匁△螟埼ぐ邂ア鬪瑚ッ∫ュ蛾ぐ莉カ閭ス蜉幢シ御ク堺ス應クコ蠖灘燕豕ィ蜀檎匳蠖募燕鄂ョ譚。莉カ縲ょ�蛟シ隶「蜊募惠蛻帛サコ譌カ髞∝ョ壽ア�紫荳朱「�ョ。轤ケ謨ー�悟屓隹��雍ヲ菴ソ逕ィ隶「蜊募シ�御ク肴潔譁ー豎�紫驥咲ョ励よ髪莉伜屓隹�ク惹ク句黒逕ア `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`縲5-403 襍キ逕滉コァ髱呎√∝�莠ォ cache 荳� HTTPS 螳牙�驟咲スョ蛹�性 `STATIC_URL`縲~STATIC_ROOT`縲~DJANGO_CACHE_BACKEND`縲~DJANGO_CACHE_LOCATION`縲~DJANGO_CSRF_TRUSTED_ORIGINS`縲~DJANGO_SESSION_COOKIE_SECURE`縲~DJANGO_CSRF_COOKIE_SECURE`縲~DJANGO_SECURE_SSL_REDIRECT`縲~DJANGO_SECURE_PROXY_SSL_HEADER`縲~DJANGO_SECURE_HSTS_SECONDS`縲5-604 襍キ蜀�ョケ螳牙�驟咲スョ蛹�性 `MODERATION_ENABLED`縲~MODERATION_PROVIDER=keyword`縲~MODERATION_FAIL_CLOSED`縲~MODERATION_BLOCK_ON_REVIEW`縲~MODERATION_CACHE_VERSION_KEY`�帷函莠ァ螟� worker 荳句ソ�。サ菴ソ逕ィ蜈ア莠ォ cache 謇ソ霓ス謨乗─隸咲沿譛ャ蜿キ縲�
|
2026-07-06 17:38:56 +08:00
|
|
|
- 蠖灘燕 blocker�壼セョ菫。豁」蠑丈ク句黒蟾イ閭ス霑泌屓莠檎サエ遐�シ御ス�コソ荳雁セョ菫。蝗櫁ー�崟蜃コ邇ー `PaymentVerificationError`�御サ埼怙蜊慕峡菫ョ螟榊ケカ螳梧�窶應サ俶ャセ蜷手�蜉ィ蜈・雍ヲ窶晞溜邇ッ鬪梧噺�帶髪莉伜ョ晄△螟堺セ晁オ門シ謾セ蟷ウ蜿ー謚� `43.128.3.240` 蜉�蜈・蜿ッ菫。 IP縲らコソ荳顔悄螳樊��「倡函謌仙キイ霍鷹壼ケカ鬪瑚ッ∵殴轤ケ�帛崟迚�酔豁・逵溷ョ櫁玲慮鬟朱勦莉肴悴騾�卦-403 蟾イ蝨ィ `deployment.md` 譏守。ョ荳顔コソ蜑榊ソ�。サ隶ー蠖慕悄螳槫崟迚� smoke 閠玲慮�帶悴霍鷹壼燕蜿ェ閭ス謖我ソ晏ョ郁カ�慮蜀�オ具シ御ク崎�螢ー遘ー蟾イ鬪瑚ッ√�
|
2026-07-01 17:42:10 +08:00
|
|
|
|
|
|
|
|
## 蠖灘燕逶ョ蠖戊ヲ∫せ
|
|
|
|
|
|
|
|
|
|
| 霍ッ蠕� | 迥カ諤� | 隸エ譏� |
|
|
|
|
|
| --- | --- | --- |
|
2026-07-03 17:53:49 +08:00
|
|
|
| `docs/` | 蟾イ譛� | 蜈ィ螂� harness 譁�。」�婬-403 譁ー蠅� `deployment.md` |
|
2026-07-01 17:42:10 +08:00
|
|
|
| `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 17:53:49 +08:00
|
|
|
| `requirements.txt` / `requirements-production.txt` / `pyproject.toml` | 蟾イ譛� | `requirements.txt` 邂。譛ャ蝨ー/蝓コ遑霑占。御セ晁オ厄シ嫣requirements-production.txt` 霑ス蜉� Linux 逕滉コァ Gunicorn�嫣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-06 23:18:08 +08:00
|
|
|
| `apps/`��sers/portal/billing/ai/api/moderation�� | 蟾イ譛� | 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` 關ス謇」轤ケ/騾轤ケ縲∽ス咎「晏ソォ辣ァ縲∝�蛟シ蜈・雍ヲ荳主�蛟シ荳句黒�婬-401 蟾イ蝨ィ `apps/billing/services.py` 關ス `adjust_wallet_points()`�悟惠 `apps/users/admin.py` 荳� `apps/users/templates/admin/users/userwallet/adjust_points.html` 關ス髓ア蛹�焔蟾・隹�せ蜈・蜿」�婬-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` 蜈�シ鬘オ縲∝�蛟シ陦ィ蜊輔∽コ檎サエ遐∫・ィ謐ョ螻慕、コ蜥檎憾諤∬スョ隸「�婬-505 蟾イ蝨ィ portal 關ス譛ャ蝨ー vendor static 荳手ョー蠖募�鬘オ�婬-601 蟾イ蝨ィ `apps/ai/catalog.py` 關ス蜈ャ蠑讓。蝙狗岼蠖包シ悟惠 api 關ス `/api/v1/models`�悟惠 portal 關ス `/models` 鬘オ髱「蜥悟ッシ闊ェ蜈・蜿」�婬-604 蟾イ蝨ィ moderation 關ス `SensitiveWord`縲〔eyword matcher縲∝ス剃ク蛹悶∝�莠ォ cache 迚域悽螟ア謨井ク� admin�婬-606 蟾イ蝨ィ portal 關ス蜈ャ蠑鬥夜。オ縲~DownloadRelease`縲∽ク玖スス迚域悽 admin縲~brand.css` 荳朱ヲ夜。オ讓。譚ソ |
|
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-06 23:18:08 +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 蜈�シ鬘オ�域沖遐� + 霓ョ隸「蛻ー雍ヲ�会シ婬-505 Phase 4 逕ィ謌キ遶ッ螳。譬ク莨伜喧�婬-401 霑占是蜷主床螳悟埋�婬-402 螳梧紛鬪梧噺 MVP�婬-403 驛ィ鄂イ / 霑占。梧枚譯」�婬-601 蜿ッ逕ィ蛻ォ蜷榊書邇ー�婬-602 django-admin 荳ュ譁�喧�育ャャ 1-3 螻ゑシ会シ婬-603 django-admin 荳ュ譁�喧�育ャャ 4 螻つキ蟄玲ョオ郤ァ�会シ婬-604 荳ュ譁�撫諢溯ッ肴悽蝨ー霑�サ、�婬-605 蜈埼ぐ邂ア鬪瑚ッ∫ュ也払關ス蝨ー�婬-606 蜈ャ蠑鬥夜。オ + 螳「謌キ遶ッ荳玖スス蜈・蜿」縲�
|
2026-07-01 17:42:10 +08:00
|
|
|
- 豁」蝨ィ霑幄。鯉シ壽裏縲�
|
2026-07-06 23:18:08 +08:00
|
|
|
- 蠕�シ蟋具シ夂恚譚ソ蠖灘燕譌�譁ー逧�シ門捷莉サ蜉。�帑ケ句錘蜿ッ扈ァ扈ュ螟�炊逵溷ョ樊髪莉伜屓隹�芦雍ヲ髣ュ邇ッ縲��鄂ョ蟷カ蜿大ク�ョ「謌キ遶ッ荳玖スス蛹�∫悄螳槫崟迚�玲慮鬪瑚ッ�シ梧�莉� Backlog 諡�眠莉サ蜉。縲�
|
2026-07-06 17:38:56 +08:00
|
|
|
- 蠖灘燕 blocker�壽髪莉伜膚謌キ逵溷ョ槫ッ�徴/隸∽ケヲ荳守函莠ァ SDK 萓晁オ紋サ榊セ�署萓幢シ帛セョ菫。蝗櫁ー�芦雍ヲ髣ュ邇ッ莉埼怙逵溷ョ樊髪莉倬ェ梧噺�帷悄螳� AI 譬�「倡函謌仙キイ蝨ィ郤ソ荳願キ鷹夲シ悟崟迚�函謌千悄螳櫁玲慮莉埼怙陦・豬九�
|
2026-07-06 23:18:08 +08:00
|
|
|
- 荳倶ク荳ェ蜿ッ鬚�叙莉サ蜉。�夂恚譚ソ蠖灘燕譌�譁ー逧�シ門捷莉サ蜉。�碁怙蜈育。ョ隶、荳倶ク鬘ケ荳壼苅莨伜�郤ァ謌匁眠蠅樔ササ蜉。縲�
|
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-03 17:53:49 +08:00
|
|
|
|
|
|
|
|
# Linux production
|
|
|
|
|
python3.12 -m pip install -r requirements-production.txt
|
|
|
|
|
python3.12 manage.py migrate
|
|
|
|
|
python3.12 manage.py createcachetable cmhub_cache
|
|
|
|
|
python3.12 manage.py collectstatic --noinput
|
|
|
|
|
gunicorn config.wsgi:application --bind 127.0.0.1:8001 --workers 2 --worker-class gthread --threads 4 --timeout 120
|
|
|
|
|
gunicorn config.wsgi:application --bind 127.0.0.1:8002 --workers 1 --worker-class gthread --threads 4 --timeout 360
|
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-04 10:14:16 +08:00
|
|
|
- `GET /api/v1/models`
|
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
|
|
|
蠖灘燕逕ィ謌キ遶ッ鬘オ髱「��
|
|
|
|
|
|
2026-07-06 23:18:08 +08:00
|
|
|
- `GET /`
|
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-04 10:14:16 +08:00
|
|
|
- `GET /models`
|
2026-07-03 14:00:00 +08:00
|
|
|
- `GET /records/recharge`
|
|
|
|
|
- `GET /records/usage`
|
2026-07-03 11:27:45 +08:00
|
|
|
|
2026-07-06 23:18:08 +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`�御サ・蜿贋ク榊性驍ョ邂ア逧� `account.username` / `account.display_name`�梧オ玖ッ戊ヲ�尠菴咎「昜ク取オ∵ーエ邏ッ蜉�荳閾エ縲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/T-605 蟾イ關ス蝨ー allauth 豕ィ蜀� / 逋サ蠖包シ啻ACCOUNT_EMAIL_VERIFICATION="none"`�悟�驍ョ邂ア鬪瑚ッ√∵ウィ蜀悟叉蜿ッ逕ィ�碁ぐ邂ア莉榊ソ�。ォ荳泌髪荳�帶ウィ蜀梧�蜉溷�蟒コ 0 轤ケ髓ア蛹�∽ク榊�轤ケ謨ー豬∵ーエ縲5-502 蟾イ關ス蝨ー API Key 閾ェ蜉ゥ邂。逅�シ啻/apikeys` 逋サ蠖戊ョソ髣ョ�檎函謌仙錘螳梧紛譏取枚蜿ェ譏セ遉コ荳谺。�悟�陦ィ蜿ェ譏セ遉コ prefix�御ク肴仞遉コ hash 謌門紙蜿イ譏取枚�帛唖髯、荳コ蜷企楳 `revoked`�悟衰髞蜷主、夜Κ API 霑泌屓 403縲5-503 蟾イ關ス蝨ー荳ェ莠コ荳ュ蠢�ク手ョー蠖暮。オ�啻/dashboard` 螻慕、コ蜑ゥ菴咏せ謨ー縲∝�蛟シ諤サ鬚昴∝�雍ヲ轤ケ謨ー縲∝〝豸郁礼せ謨ー蜥梧怙霑題ョー蠖包シ嫣/records/recharge` 螻慕、コ蠖灘燕逕ィ謌キ蜈�シ隶「蜊包シ嫣/records/usage` 螻慕、コ蠖灘燕逕ィ謌キ consume/refund 轤ケ謨ー豬∵ーエ蟷カ蜈ウ閨碑ー�畑菫。諱ッ�帶園譛�
|
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-06 23:18:08 +08:00
|
|
|
4. 蝨ィ `docs/06-tasks.md` 鬚�叙隨ャ荳荳ェ `TODO` 荳比セ晁オ門插 `DONE` 逧�ササ蜉。�婬-606 蟾イ螳梧��檎恚譚ソ蠖灘燕譌�譁ー逧�シ門捷莉サ蜉。縲�
|
|
|
|
|
5. 荳倶ク豁・髴蜈育。ョ隶、荳壼苅莨伜�郤ァ�梧�謚顔悄螳樊髪莉伜屓隹�芦雍ヲ髣ュ邇ッ縲∝ョ「謌キ遶ッ荳玖スス蛹�書蟶�∫悄螳槫崟迚�玲慮鬪瑚ッ∵究謌先眠莉サ蜉。縲�
|
2026-07-01 17:42:10 +08:00
|
|
|
|
|
|
|
|
## 扈エ謚、隗��
|
|
|
|
|
|
|
|
|
|
莉」遐∫憾諤∝序蛹匁慮蜷梧ュ・譖エ譁ー譛ャ譁�シ壽眠蠅�/遘サ蜉ィ蜈・蜿」譁�サカ縲∝�蟋句喧譯�楔謌匁ィ。蝮励∽ササ蜉。迥カ諤∝序蛹悶∵眠蠅槫庄霑占。悟多莉、縲∝書邇ー譁�。」荳惹サ」遐∽ク堺ク閾エ縲�
|
|
|
|
|
|
|
|
|
|
- 莉サ蜉。迥カ諤∝序蛹門酔豁・ [`06-tasks.md`](06-tasks.md)縲�
|
|
|
|
|
- 豈剰スョ謇ァ陦瑚ョー蠖輔�ェ瑚ッ∝多莉、縲�仆蝪槭∝�遲冶ソス蜉�蛻ー [`../progress.md`](../progress.md)縲�
|
|
|
|
|
- 譛ャ譁�サカ蜿ェ菫晉蕗蠖灘燕蠢ォ辣ァ�御ク堺ソ晉蕗螳梧紛蜴�彰縲�
|