尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
トレーニー向け食事記録アプリ。写真を撮ると Claude Vision が料理とPFC(タンパク質・脂質・炭水化物)を推定し、相棒AI「ゲイン」が残りタンパク質の埋め方まで一緒に考えてくれる。相棒とはチャットで会話もできる。 /api/analyze(写真解析)と /api/coach(相棒会話)は既定で停止しており、Anthropic を一切呼ばない(503 service_disabled)。 記録・集計・グラフ・写真の内蔵データ推定は従来通り動く。 なぜ:この2本は認証もレート制限も Origin 制限も無いまま公開されており、環境変数の ANTHROPIC_API_KEY が有効だった= 誰でも従量課金を発生させられる状態だった(/api/health が has_key:true を返していた)。 とくに /api/coach は画像すら不要で、{} を POST するだけで素の Claude 呼び出しが走った。 外部からの実ユーザーがゼロ(Search Console 28日で表示0)のため、機能を維持する価値より課金リスクが大きいと判断した。查看完整 README ↗
トレーニー向け食事記録アプリ。写真を撮ると Claude Vision が料理とPFC(タンパク質・脂質・炭水化物)を推定し、相棒AI「ゲイン」が残りタンパク質の埋め方まで一緒に考えてくれる。相棒とはチャットで会話もできる。
/api/* は停止中(2026-09-03〜)/api/analyze(写真解析)と /api/coach(相棒会話)は既定で停止しており、Anthropic を一切呼ばない(503 service_disabled)。
記録・集計・グラフ・写真の内蔵データ推定は従来通り動く。
なぜ:この2本は認証もレート制限も Origin 制限も無いまま公開されており、環境変数の ANTHROPIC_API_KEY が有効だった=
誰でも従量課金を発生させられる状態だった(/api/health が has_key:true を返していた)。
とくに /api/coach は画像すら不要で、{} を POST するだけで素の Claude 呼び出しが走った。
外部からの実ユーザーがゼロ(Search Console 28日で表示0)のため、機能を維持する価値より課金リスクが大きいと判断した。
再開するとき(⚠️ 無認証のまま開け直さないこと)
TORIMESHI_API_ENABLED = 1 を追加して再デプロイTORIMESHI_MODEL を claude-haiku-4-5 などへ(既定は claude-opus-4-8)キルスイッチの実体=functions/api/_lib.js の apiEnabled(env)。callAnthropic() 側にも同じ判定があるので、
新しいエンドポイントを足して確認を忘れても止まる。ローカル/旧Vercel用の api/_lib.py も同じ挙動(TORIMESHI_API_ENABLED=1 で有効化)。
| 場所 | 役割 |
|---|---|
index.html / *.html / manifest.json / icon-*.png / legal.css | フロント(静的) |
functions/api/*.js | 本番のAPI=Cloudflare Pages Functions。analyze=写真解析, coach=相棒会話, health。中身はAnthropic REST APIをfetchで叩くだけ |
privacy.html / contact.html / about.html | プライバシーポリシー・お問い合わせ・運営者情報+免責 |
api/*.py + server.py + vercel.json | 旧Vercel/ローカル開発用。Cloudflareでは使われない(参考として残置) |
モデルの既定は claude-opus-4-8(Cloudflareの環境変数 TORIMESHI_MODEL に claude-sonnet-5 / claude-haiku-4-5 を設定するとコストを下げられる)。
Node不要・ブラウザ操作中心。無料(Functions 10万req/日)。
fujiken1016/torimeshi を選択/(ルート)https://torimeshi.pages.dev 系のURLが発行されるプロジェクト → Settings → Variables and Secrets → Add
ANTHROPIC_API_KEY = 自分の sk-ant-...(Secret推奨)TORIMESHI_API_ENABLED = 1(これが無いと /api/* は停止したまま)。上の「現在 /api/* は停止中」を先に読むことTORIMESHI_MODEL = claude-sonnet-5 などで節約※ 先に mainichi-lab.com を Cloudflare Registrar で取得し、CloudflareのDNSに載せておくこと。
meshi.mainichi-lab.com を入力 → Cloudflare管理下のドメインなのでDNS(CNAME)は自動追加https://meshi.mainichi-lab.com が有効[email protected] に統一済み(contact.html・about.html・プラポリ)。Cloudflare Email Routing(無料転送)で [email protected] → 普段のGmail等へ転送する設定を入れれば受信できる(Cloudflare → 対象ドメイン → Email → Email Routing → Custom address)以後
git pushすると Cloudflare が自動で再デプロイする。
functions/(JS)と同じ挙動を Python で確認できる。Cloudflare本番には影響しない。
cd ~/Desktop/claude/torimeshi
pip3 install anthropic # 未導入なら
export ANTHROPIC_API_KEY="sk-ant-..." # console.anthropic.com で発行
---
## A. まずローカルで動かす(自分のMacだけ・確認用)
```bash
cd ~/Desktop/claude/torimeshi
pip3 install anthropic # 未導入なら
export ANTHROPIC_API_KEY="sk-ant-..." # console.anthropic.com で発行
python3 server.py # → http://localhost:8787
ANTHROPIC_API_KEY があるか確認。追加/変更後は Redeploy(環境変数は再デプロイで反映)。/(ルート)になっているか確認。functions/api/*.js がルート直下の functions/ にある必要がある。TORIMESHI_MODEL に claude-haiku-4-5(最安)or claude-sonnet-5。api/*.py server.py vercel.json は Vercel/ローカル開発用の旧実装。Cloudflare本番では functions/api/*.js が使われ、これらは無視される(参考として残置)。完全に切り替わったら削除してよい。