1) Git を最新化(※コマンドは今回は書かない)
- 目的:ローカル作業ディレクトリを 最新main(または指定ブランチ)に揃える
- 注意:未コミット変更がある場合は、退避(stash)or 別ブランチへ退避してから更新
2) Minikube / Kubernetes を起動
- Minikube プロファイルを決めて起動(あなたの運用に合わせる)
ingress-nginxが必要なら有効化- 既存の namespace / リソースが残っている場合は、まず状態確認(Pod/Service/Ingress)
3) kustomize で Dev 環境をデプロイ
- 対象:
k8s/overlays/dev - 反映内容(あなたが貼ったものの前提)
portal-devnamespaceportal-apiDeployment + Service + Ingress- Postgres(devportal用)
- Chroma(search/upsert用)
- Odoo(別ns運用でもOK、同一overlayでもOK)
4) 起動確認(最低限)
portal-apiが Ready になること/healthz/health/ready(DB疎通)
postgresが Ready になること(devportal DB)chromaの heartbeat が通ること(任意だが後で必要)odooが起動して Web に到達できること(後続のSQL実行テストで必要)
5) ポートフォワード / hosts(必要なら)
portal-apiの/docsを開ける状態にするodooのUIにアクセスできる状態にする- Ingress を使う場合は
hostsの確認(odoo.local/api.localなど)
Dev-Portal 開発内容(今回のスコープ)
A. Odoo DB へ “直接SQL実行” を可能にする(最優先)
目的:Dev-Portal が Odoo の Postgres に接続して SELECT を実行し、結果を返せるようにする
portal-apiの env に Odoo DB 接続情報を追加ODOO_DATABASE_URL(最短)- もしくは
ODOO_DB_HOST/PORT/NAME/USER/PASSWORDから組み立て
- K8s 上で portal-api Pod から Odoo DB へ疎通確認
SELECT 1information_schema参照- Odooテーブル(例:
res_partner)の参照
B. /sql/execute_params を Dev-Portal 側で実装(I/F固定)
目的:sql_params(opaque)を受け取り、SQLを生成して Odoo DB からデータ抽出し返す
処理フロー(確定版)
sql_paramsを受け取る(中身は解釈するが nlq-dev 側は触らない)- **Chroma(カスタム)**で補助情報検索(fields/view_common など)
- **LLM(Odoo標準)**で SQL を組み立て
sql_guardを適用(SELECT-only / 1 statement / LIMIT など)- Odoo DB に SQL を投げる(read-only)
columns/rows/row_count/executed_sqlを返すexecuted_sqlは参考情報として返却OK
C. Chroma 周りのバグ修正(今回やる)
- すでにあなたが指定:
api/app/services/chroma_query.py修正済み(全文を反映) - (可能なら)collection を “検索で勝手に作らない” 方針に統一
- SQL fallback(
portal_chroma_doc検索)が落ちても全体は継続するように維持
D. 一連のパイプラインを dev 環境で通しテスト(本番前の確認)
目的:本番に渡す前に「doc生成→Chroma upsert→検索→SQL生成→実行→返却」まで通す
portal_chroma_docにqueuedが作られる(package)chroma_upsertでqueued → upsertedになるchroma_query/searchで hits が返る/sql/execute_paramsが結果セットを返せる
今この時点で “追加で必要になる可能性が高い情報”
(起動してから確認できるので、今は保留でOK)
- Odoo DB の実体(host/namespace/DB名)が dev overlay と一致しているか
- Odoo の代表テーブル(例:
res_partner)に実データが入っているか - Chroma collection 名(
portal_field_ja,portal_view_common_ja)が実際に存在するか - OpenAI API Key が dev で使えるか(embedding + LLM)
コメントを残す