Skip to content

심사 근거: 「모델 A」가 외부 LLM API 를 재위탁 문제로 드는데 구현은 OpenAI 를 부른다 — 약관 확인 결과와 ADR 초안 #630

Description

@yoonjiseok

proposal.md 7-3 「모델 A」가 외부 LLM API 직접 호출을 재위탁 문제로 지목하는데, 구현은 api.openai.com 을 부릅니다. 심사에서 그 질문이 오면 답할 근거가 문서에 없어서, OpenAI 약관을 실제로 확인해 정리합니다. 결론부터: 기획서 서술은 유지되고, 오히려 근거가 세집니다.

docs/ 는 정세현 님 영역이라 초안만 냅니다.

지금 문서가 말하는 것

proposal.md:464  모델 A — 수탁자가 제3자에게 재위탁하려면 위탁자 동의가 필요하므로,
                 외부 LLM API를 그대로 호출하는 구조는 재위탁 문제를 일으킨다
proposal.md:468  국외 이전은 여전히 벽이다 … 해외 LLM API에 직결하는 아키텍처는 이 지점에서 걸린다

확인한 것 — OpenAI 문서 원문

developers.openai.com/api/docs/guides/your-data 에서 축자로 옮깁니다.

항목 원문 뜻
학습 사용 "data sent to the OpenAI API is not used to train or improve OpenAI models (unless you explicitly opt in)" 기본이 학습 미사용
보존 "abuse monitoring logs are generated for all API feature usage and retained for up to 30 days" 남용 모니터링 목적 30일
ZDR "Eligible customers may have their customer content excluded from these abuse monitoring logs … subject to prior approval by OpenAI" 자동 아님 — 사전 승인
데이터 레지던시 지역 목록에 South Korea 있음 다만 아래 ❗

❗한국은 저장만 됩니다 — 처리는 안 됩니다

South Korea    Regional storage: Yes     Regional processing: No

"If you select a region that supports regional processing … the services will perform inference for your Customer Content in the selected region as well" — 한국은 그 목록에 없습니다. 즉 추론은 국외에서 일어납니다.

이것이 이 조사의 핵심입니다. 레지던시를 켜도 개인신용정보 처리를 국내로 제한하는 요건은 안 닫힙니다. proposal.md:468 의 "국외 이전은 여전히 벽" 이 맞고, 이제 근거가 있습니다 — 「알아봤는데 안 된다」가 아니라 「지역 목록에 있는데 처리는 제외다」입니다.

그래서 데모/제출 구성이 왜 성립하나 — 세 줄로 답할 수 있습니다

① LLM 에 개인정보가 안 간다        P3 — PiiGateway.mask() → AiServiceClient 가 유일한 통로
                                  EMAIL·RRN·CARD·PHONE·ACCOUNT 를 치환한다
                                  AiServiceClientTest (b) 가 요청 본문에서 [PHONE] 을 단정한다
② 데모 데이터가 개인정보가 아니다    합성 발화 + DART 공개 문서(data/documents)
③ 온프레미스 교체가 코드 근거를 가진다  base_url 주입 한 줄 — llm_client.py 가 그 요구를 스스로 적어 뒀다
                                  DEFAULT_BASE_URL 은 config.py:33 한 줄이고 코드는 안 고친다

①이 있어서 「외부 API 호출 = 재위탁」이 이 구현에는 곧바로 안 걸립니다 — 나가는 것이 개인정보가 아니면 위탁 자체가 성립하지 않습니다. 다만 그 논거가 어디에도 안 적혀 있습니다. 지금 문서만 보면 "재위탁이 문제라며 왜 OpenAI 를 부르나" 로 읽힙니다.

제안 — ADR 하나 (「LLM 제공자 데이터 처리 조건」)

P3 와 같은 층의 결정이라 ADR 이 맞다고 봅니다. 담을 것:

결정   운영은 온프레미스/국내 배포를 전제한다. 데모·개발은 OpenAI API 를 쓴다
근거   ① 학습 미사용이 기본이고 보존은 30일(남용 모니터링) — 위 축자 인용
       ② 한국 레지던시는 저장만 · 처리는 국외 → 개인신용정보 처리 경로로는 못 쓴다
       ③ 그래서 P3 가 「나가는 것이 개인정보가 아니게」 만드는 것이 전제 조건이다
       ④ 교체 비용이 base_url 한 줄이라는 것이 그 주장의 코드 근거다
남는 것 ZDR 은 사전 승인이 필요하고 우리는 안 받았다 — 데모는 30일 보존 상태로 돈다
       (합성 데이터라 문제가 아니지만 **적어 두는 것이 정확하다**)

❗**「ZDR 을 받으면 된다」로 적지 않는 것**이 중요합니다. 승인이 필요하고 받은 적이 없으므로, 그렇게 적으면 #542 가 지적한 「규칙 없이 적힌 숫자」와 같은 종류가 됩니다 — 확인 안 된 것을 확인된 것처럼 적는 자리입니다.

곁가지 — docs/ 안에 낡은 프로바이더 근거가 둘 있습니다

#266 이 Gemini → OpenAI 로 옮겼는데 그 전 실측이 남아 있습니다.

docs/adr/005-threshold-ownership.md:58   "gemini-3.5-flash-lite 에 애매한 발화를 넣어도
                                          confidence 가 0.80 아래로 내려오지 않는다"
docs/decision-log.md:526 (10.64)          "0.7 이 gemini 관측값의 최저값과 정확히 같아서
                                          부등호 한 글자가 판정을 가른다"

ADR 은 고치지 않는 것이 규약이니(CLAUDE.md — 상태만 갱신·새 ADR 추가), 새 ADR 에서 "그 실측은 옛 모델 것" 이라고 한 줄 잇는 쪽이 맞다고 봅니다. 10.64 는 제 몫으로 적혀 있는 미결이라 제가 다시 재겠습니다.

관련: proposal.md 7-3 · #266(프로바이더 이동) · ADR-005 · 결정 10.64 · P3

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions