From e7158808a196e2f6bd9a8c0f4e464c52eb03f893 Mon Sep 17 00:00:00 2001 From: lee-hyeon-cheol Date: Mon, 21 Sep 2026 15:00:38 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=9D=B8=EB=8D=B1=EC=8B=B1=20=EA=B0=80?= =?UTF-8?q?=EC=9D=B4=EB=93=9C=20=E2=80=94=20=EA=B3=A0=EA=B0=9D=EC=82=AC=20?= =?UTF-8?q?PC=20=EC=97=90=EC=84=9C=20-12=20=EA=B2=8C=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EC=9B=A8=EC=9D=B4(8914)=20=EA=B2=BD=EC=9C=A0=EB=A1=9C,=20Fabri?= =?UTF-8?q?X=20=EC=A7=81=EA=B2=B0=20=ED=8C=A8=EC=B9=98=20=EC=98=88?= =?UTF-8?q?=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 --- docs/tech/abap-indexing-with-fabrix.md | 55 ++++++++++++++++---------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/docs/tech/abap-indexing-with-fabrix.md b/docs/tech/abap-indexing-with-fabrix.md index f84c962..786e306 100644 --- a/docs/tech/abap-indexing-with-fabrix.md +++ b/docs/tech/abap-indexing-with-fabrix.md @@ -15,35 +15,50 @@ CodeAssist 백엔드의 `/api/ito/chat/completions` 는 OpenAI 호환 입구고, summarize.runner ──OpenAI 호환(Bearer)──▶ Django :8080/api/ito ──FabriX 헤더──▶ FabriX (x-llm-model-id=339) ``` -## 로컬(내 PC)에서 먼저 돌릴 때 — OpenRouter 직결 +## 고객사 PC(윈도우)에서 돌릴 때 — -12 게이트웨이 경유 -고객사 전이라 로컬에서 돌리면 게이트웨이 필요 없음. 인덱싱 클라이언트가 OpenRouter 를 그대로 지원함(`usage.include` 까지 붙임). +인덱싱은 고객사 PC 에서 돌리고, LLM 호출만 -12 의 CodeAssist 게이트웨이(바깥 포트 8914)로 보낸다. 헤더는 게이트웨이가 얹으니 코드 수정 없음. +(-12 백엔드가 떠 있어야 함: `curl http://10.196.81.34:8914/api/ito/models` 에 모델 3개.) ```ini -# ABAP_INDEXING/.env -LLM_BASE_URL=https://openrouter.ai/api/v1 -LLM_API_KEY=sk-or-... # CodeAssist 개발에 쓰는 OpenRouter 키 그대로 -LLM_MODEL=z-ai/glm-5.2 # 텍스트 요약. CodeAssist 로컬 기본 모델과 같음 -LLM_CONCURRENCY=4 +# ABAP_INDEXING/.env (고객사 PC) +LLM_BASE_URL=http://10.196.81.34:8914/api/ito +LLM_API_KEY=x # -12 .env 의 AAF_GATEWAY_KEY. 비어 있으면 아무 값 +LLM_MODEL=339 # GaussO Flash. Gemma(605/580) 금지 — 30~100배 느림 +LLM_CONCURRENCY=2 # 429 안 나면 4 +LLM_MAX_RETRIES=5 +LLM_TIMEOUT_S=180 SUMMARIZE_BACKEND=api ``` -```bash +```powershell cd ABAP_INDEXING -python -m venv .venv && .venv/Scripts/pip install -e ".[dev]" -# data/raw/*.txt 배치 후 -.venv/Scripts/python -m ingest.normalize && .venv/Scripts/python -m parser.run && .venv/Scripts/python -m index.loader -.venv/Scripts/python -m summarize.runner --llm api --program <프로그램명> --limit 3 # 작게 먼저 -.venv/Scripts/python -m summarize.jobs stats -.venv/Scripts/python -m summarize.runner --llm api # 전량 -.venv/Scripts/python -m index.loader --force -.venv/Scripts/python -m query.api # 127.0.0.1:8100 +python -m venv .venv; .venv\Scripts\pip install -e ".[dev]" # 고객사 PC 가 pip 되면. 안 되면 wheels 로 +# data aw\*.txt 배치 후 +$env:PYTHONUTF8="1" +.venv\Scripts\python -m ingest.normalize; .venv\Scripts\python -m parser.run; .venv\Scripts\python -m index.loader +.venv\Scripts\python -m summarize.runner --llm api --program <프로그램명> --limit 3 # 작게 먼저 → 아래 "확인할 것" 1번 +.venv\Scripts\python -m summarize.jobs stats +.venv\Scripts\python -m summarize.runner --llm api # 전량 (며칠 갈 수 있음) +.venv\Scripts\python -m index.loader --force ``` -- 무료 티어(`:free`)는 429 로 굳는 이력 있음(`ASSUMPTIONS.md` 3). 유료 키로. -- 비용: `run-record.md` "GLM 5.2 비용 실측" 참고. 55본 기준 수치가 있음. -- 끝나면 CodeAssist 로컬은 `.env` 의 `ABAP_INDEX_URL` 기본값(127.0.0.1:8100)이라 OpenCode 재시작만 하면 `[출처: 프로그램/unit]` 붙은 답이 나옴. -- 고객사로 옮길 땐 `data/index.db` 파일 하나만(소스 원문까지 안에 있음) — 위 "-12 에서 준비" 절의 FabriX 재인덱싱은 안 해도 됨. 단 조각 설명이 GLM 산출이라 모델 표기(`PROMPT_VERSION`·모델명)를 같이 적어둘 것. +끝나면 `data\index.db` 를 -12 로 옮겨 거기서 `query.api`(:8100) 를 띄운다("끝나면" 절). PC 에서 8100 을 띄워도 -12 의 OpenCode 는 못 붙는다(컨테이너 → PC 방향 안 열림). + +### 게이트웨이 없이 FabriX 직결하고 싶으면 (팀원 레포 수정) + +`summarize/llm_client.py` `_post_once` 의 headers 를 이렇게 바꾸면 -12 없이도 됨. 값은 CodeAssist `.env` 의 `AAF_FABRIX_*` 와 같음. + +```python +headers={ + "Content-Type": "application/json", + "x-llm-model-id": self.model, # LLM_MODEL=339 + "x-generative-ai-client": os.environ["FABRIX_CLIENT_KEY"], + "x-openapi-token": "Bearer " + os.environ["FABRIX_OPENAPI_TOKEN"], # Bearer 접두 필수(실측) + "x-generative-ai-user-email": os.environ.get("FABRIX_USER_EMAIL", ""), +} +# body["model"] 은 "/mnt/models" 로 고정 (FabriX 규격). LLM_BASE_URL 은 …/openapi/llm 까지. +``` ## -12 에서 준비