公開:2026-03-02  更新:2026-03-05

【AIシステムの基本構成】手持ちの環境で AI システムを創る

※本記事は、AI 作成の構想段階の私の脳内のつぶやきでございます。

試行錯誤の雑記過程

自己学習を兼ねて、AI システムを創ってみようと思う。
とはいえ、つくり方は千差万別で広範囲。動画で AI システムの作り方を学んだところ、言語は Python、 Webアプリフレームワークは streamlit が著名らしい。
さてここで私は、自分の業務システムに組み込めるような実用的な AI を創りたい、と思った。 そして庶民のお財布に優しい、無料の構成要素を優先的に使用して創りたいと思った!
システム構成を考えて調査したところ、なんと Python 不要だった! AI 開発に Python が必須というのは勘違いだったことが発覚した!

閑話 ~Interlude~

勘違いと言えば、これは皆様に伝えたい。
IT エンジニアは論理的思考が、才能が重要、云々・・・、とさも特別であるかのようなネット記事が散見されるが、私はこれに非常にうんざりしている。
自らが優位であるかのような印象を与えることで、他者の参入を暗黙に拒む排他的で業務独占的な言動、属人化。 これでは後進が育成されない。日本が IT 後進国となってしまったのもうなずける事態である。
IT エンジニア、プログラムの作成の実態は、国語的能力である。プログラム言語とはその名の通り「言語」であり、 実際のコーディング作業(プログラミング作業)は似た文章の繰り返し再利用である。
具体的には昔作ったコードや誰かがネット上に上げている参考コードのコピペの繰り返し、というものすご~く地味な作業である。
そして一番時間を割くのはコーディング作業ではなく、事前事後の資料作成と使用するデータの整形作業である。
実は一番時間を割くのはエクセル作業やテキストエディタ作業なのである。

つまり IT エンジニアに最も適している資質とは、日常の行動として整理整頓ができて几帳面な人なのである。
パソコンのフォルダ整理ができていない人にプログラミングを任せてはいけない。

この仕事はずっと座りっぱなしで地味な作業が続くのでとっても肩がこる。
肩がこるので腕立て伏せをして肩をほぐす、脳に血液がめぐって頭もスッキリする、そして腕立て伏せをする、の無限ループ。 地味に筋肉ムキムキになるのである。ちなみに上半身だけムキムキはバランスが悪いのできちんとスクワットも行っている。

どのようなものを創るかの案出し

化学物質の EC 番号とその含有量(wt%)を入力したら、自動的に国連番号と消防法の候補を表示する AI システムを創ろうと思う。
(※あくまで候補の表示。正確に求めるには引火点データや pH 等の物性測定値が必要。)
この二つは、分類ロジックがとても難解なのである。
国連番号に至っては二年ごとに更新され、新規に追加される番号もあれば統廃合される番号もある。
つまり最新データが必要になる。
ChatGPT や Copilot の弱点は、古い知識の状態で会話を続けてしまうことである。
さらに、国連番号と消防法危険物の分類のロジック資料を AI に読み込ませて独自知見として理解させる必要もある。
よってRAG (Retrieval-Augmented Generation:検索拡張生成) システムの導入が必須となる。

手持ちの環境で可能な AI システムの基本構成を考える

要素 技術
UI(フロント) Blazor
API(制御ロジック) ASP.NET Core Web API
Embedding(ベクトル化) テキストをベクトル化する。
Embedding は 外部API として扱う。
本環境では、ASP.NET Core から HTTP で呼び出すため Python は不要。
次のいずれかを利用する。
- Google Gemini Embedding
- DeepSeek Embedding
- OpenAI Embedding
- Azure OpenAI Embedding
ベクトルDB(検索エンジン) - Chroma を Docker で起動
- ASP.NET Core から HTTP API で接続
- ベクトル検索(kNN)
- メタデータ管理(ファイル名、タグなど)
LLM(生成モデル) 次のいずれかのLLMを利用する。
Gemini / DeepSeek / Azure OpenAI
運用基盤 Windows Server 2022 / 2025
├─ IIS / Kestrel(ASP.NET Core API)
├─ Docker(Linux コンテナ)
├         └─ Chroma(ベクトルDB)
├─ SQL Server(ログ・設定・ユーザー管理)
└─ ログ基盤(Serilog / Application Insights)

RAG パイプライン(ASP.NET Core API 内の処理)を考える

  1. ユーザー入力を受け取る
    Blazor から送られた質問を API が受信する。
  2. Embedding API を呼び出す(外部 API)
    質問文をベクトル化するために Gemini / DeepSeek / OpenAI の埋め込み API を呼ぶ。
  3. Chroma にベクトル検索を実行させる(Docker 内)
    埋め込みベクトルを使って、関連ドキュメントを検索する。
  4. LLM API に回答生成を依頼する(外部 API)
    検索結果+質問を LLM に渡して回答を生成させる。
  5. 最終回答を Blazor に渡す
    整形した回答をユーザー入力画面に渡す。




Copyright © LeannaCreate All Rights Reserved.