Survival LLM
A free AI assistant and survival library (1.5 million offline articles) that runs on your own computer, with no internet. Shows the source of every answer. Mac and Windows.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Civic Lens — 怒りを、行政を変える力に。行政ニュースへのもやもやを情報公開請求につなげるAIエージェント(第5回 Agentic AI Hackathon with Google Cloud)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗🏆 2026年9月5日のZenn Agentic AI ミニハッカソン with Google Cloud(渋谷)で、参加者の中から選ばれました(参加申込 約200名:connpass)。コーディング時間約2時間という短時間実装での選出です。詳細は🏆 受賞歴をご覧ください。
Civic Lensは、市民が行政に対して抱く「怒り・不信・諦め」を、情報公開請求・審査請求という法的アクションに自動変換するAIエージェントです。
国の行政機関への情報公開請求は年間約21.5万件(総務省、令和6年度施行状況調査 https://www.soumu.go.jp/main_content/001033108.pdf )。市民は弁護士なしで、この制度を使いこなせるようになります。
多くの市民はニュースを見ても、心のどこかで違和感や怒りを覚えながら、それを表明する気力を失い、無関心を装うようになっている。声を上げても何も変わらない、という学習性の無力感が、行政の不透明さを温存させてしまう。
日本には公的なオンブズマン制度(行政監視官)が存在しない。Civic Lens はその機能的な空白を、AIエージェントで埋めることを目指す。市民・国民の代わりにニュースへ怒り、その怒りを情報公開請求という具体的な行動に変換する——これが本プロジェクトの中核的な理念である。
これにより、「怒ることに疲れた」市民に代わってAIが怒り、行政監視を持続可能な形で機能させることを目指す。詳細なエージェント構成は AGENTS.md を参照。
Civic Lens は、市民の「怒り・不信・諦め」を入力すると、AIが法的回答を返す:
| 市民の入力 | AI の出力 |
|---|---|
| 「許せない!腹が立つ!」 | 怒りレベル測定・条例マッチング |
| 「何百万円も使って成果が分からない」 | 開示請求書の自動生成 |
| 「不開示決定を受けた」 | 審査請求書 + 反論ロジック |
Google Cloud ADK (Agent Development Kit) を中核に構築:
| スポンサー | 役割 | 実装 |
|---|---|---|
| Google Cloud ADK + Vertex AI Agent Engine | エージェント本体 | agent.py(LlmAgent + SequentialAgent) |
| GMI Cloud (DeepSeek V4 Pro) | 開発時(試作・検証)のLLM。本番では未使用 | gmi_client.py |
| 総務省 行政不服審査裁決・答申検索データベース + Gemini Embeddings | 認容事例の実データ検索(先例の「創作」防止) | precedent_cases.py, scripts/scrape_gyofuku_cases.py, scripts/build_precedent_embeddings.py |
GMI CloudのLLMは開発時(試作・検証)にのみ使用しました。本番の実行はGemini APIで行っており、GMI Cloudは本番では使っていません。
SequentialAgent (civic_lens_integrated)
├── LlmAgent (anger_analyzer) [Gemini 2.5 Pro]
│ ├── FunctionTool: analyze_user_anger
│ ├── FunctionTool: get_ordinance_info
│ └── FunctionTool: get_situation_documents
└── LlmAgent (counter_argument_builder) [Gemini 2.5 Pro]
└── FunctionTool: get_counter_argument
反論ロジックに使う先例データは、.github/workflows/scrape-precedents.yml により週1回(サーバー負荷に配慮し高頻度にはしない)自動更新される。GitHub ActionsがPlaywrightで総務省「行政不服審査裁決・答申検索データベース」(https://fufukudb.search.soumu.go.jp/koukai/Main) を巡回して認容・一部認容事例を収集(scripts/scrape_gyofuku_cases.py)し、続けてGemini Embeddings(gemini-embedding-001)で検索用ベクトルを計算する(scripts/build_precedent_embeddings.py、既に計算済みのcase_idは再計算しないキャッシュ設計)。workflow_dispatchにより手動実行も可能。
収集データはPDL1.0(公共データ利用規約)に配慮し、裁決・答申の全文ではなくデータベースが提示する概要スニペットのみを保存し、各レコードに出典URLを必ず添付する。また、mainブランチへの直接コミット・pushは行わず、差分が生じた場合のみpeter-evans/create-pull-requestでブランチを切ってプルリクエストを作成し、人間のレビュー・マージを介す設計にしている。
civic-lens/
├── app.py # FastAPI メイン(エンドポイント定義)
├── agent.py # Gemini エージェント本体
├── ordinance_data.py # 5自治体分の条例データ
├── gmi_client.py # GMI Cloud RAG
├── precedent_cases.py # 認容事例の検索(Gemini Embeddings + Ngramフォールバック)
├── news_collector_agent.py # ニュース収集エージェント(地域名からGoogle News RSSを検索)
├── news_anger_agent.py # 怒り再現エージェント + パイプライン全体のオーケストレーション
├── news_reactions.py # ニュース怒り再現の分析結果永続化・リアクション記録
├── social_posting.py # X.com / Blueskyへのシェア用テキスト生成・投稿
├── timeout_utils.py # Gemini呼び出しのタイムアウト制御
├── scripts/
│ ├── scrape_gyofuku_cases.py # 総務省DBからの認容事例スクレイパー
│ └── build_precedent_embeddings.py # 認容事例の埋め込みベクトル生成
├── templates/
│ ├── index.html # メインユーザーインターフェース
│ └── precedent_cases.html # 認容事例 閲覧・検索ページ
├── .github/workflows/
│ └── scrape-precedents.yml # 認容事例 自動収集エージェント(定期実行)
├── requirements.txt
├── Dockerfile
└── README.md
# 1. 依存インストール
pip install -r requirements.txt
# 2. 環境変数設定
export GOOGLE_CLOUD_PROJECT="your-project-id"
export GOOGLE_CLOUD_LOCATION="asia-northeast1"
export GEMINI_API_KEY="your-gemini-api-key"
export GMI_API_KEY="your-gmi-api-key"
export YOUCAM_API_KEY="your-youcam-key"
export FIREBASE_WEB_API_KEY="your-firebase-web-api-key"
# 3. Firestoreへのアクセス権を設定(ローカル開発時のみ)
gcloud auth application-default login
# 4. 起動
uvicorn app:app --host 0.0.0.0 --port 8080
→ http://localhost:8080 でアクセス
# Dockerビルド
docker build -t gcr.io/$PROJECT_ID/civic-lens .
# Container Registryにプッシュ
docker push gcr.io/$PROJECT_ID/civic-lens
# Cloud Run デプロ
gcloud run deploy civic-lens \
--image gcr.io/$PROJECT_ID/civic-lens \
--platform managed \
--region asia-northeast1 \
--allow-unauthenticated \
--set-env-vars="GOOGLE_CLOUD_PROJECT=$PROJECT_ID"
本エージェントは弁護士法72条(非弁行為)に抵触しないよう、以下の点に留意しています:
参考: Legal AI株式会社の本人訴訟支援サービス(無料提供)は同じアプローチで弁護士法72条をクリアしている。
| 軸 | Civic Lens の強み |
|---|---|
| Technological Implementation | Gemini API・Cloud Run・Firestore による一気通貫の実装 |
| Design | 怒りメーター + 視覚的UI |
| Potential Impact | 「何を請求していいかわからない」という壁で、多くの市民が請求をあきらめています。その壁を取り除く |
| Quality of the Idea | 弁護士法72条を遵守した本人支援型エージェント |
評価されたポイント
MIT License
2026年9月5日のZenn Agentic AI ミニハッカソン with Google Cloud(渋谷)で、参加者の中から選ばれました