TL;DR
piighost는 LLM 프롬프트에 들어가는 이름과 이메일 같은 개인정보를 placeholder로 치환하는 Python library입니다. LangChain의 PIIAnonymizationMiddleware가 agent pipeline 앞단에서 값을 바꾸고, tool 호출 시에만 원래 값을 복원하며 모델에는 placeholder를 계속 전달합니다. thread와 tool 호출 사이에서 동일한 값에 동일한 placeholder를 유지하고, regex·GLiNER2·spaCy·Transformers·Presidio·LLM 기반 detector를 선택할 수 있습니다. Pydantic AI와 LlamaIndex connector, Docker 기반 OpenAI-compatible proxy도 제공되며 MIT license를 적용했습니다.
실용적 조언
- LangChain agent에서 개인정보를 모델 입력 전에 치환하려면 detector를 만들고 `ThreadAnonymizationPipeline`에 연결한 뒤 `PIIAnonymizationMiddleware`를 `create_agent`의 middleware 목록에 넣으면 됩니다. 모델의 system prompt에는 placeholder를 실제 값처럼 취급하고 형식을 바꾸지 않은 채 tool에 전달하라는 규칙을 추가해야 합니다. 예제는 `ExactMatchDetector`에 사람 이름과 이메일을 직접 등록하는 방식이므로, 탐지 범위를 넓힐 때는 제공된 다른 detector 구현으로 교체하면 됩니다.
- 대화와 tool 호출 전체에서 같은 개인정보를 같은 placeholder로 유지하려면 `thread_id`를 포함한 configurable 설정을 agent 호출에 전달해야 합니다. 예제에서는 `{"configurable": {"thread_id": "demo-thread"}}`를 사용해 `ainvoke`를 실행합니다. tool에는 실제 값이 전달되지만 모델이 받는 메시지에는 placeholder가 남는 분리 구조를 확인할 수 있습니다.
섹션별 상세
용어 해설
- 개인 식별 정보(PII)
- — 이름·이메일 주소처럼 특정 개인을 알아볼 수 있게 하는 데이터입니다. piighost는 이런 값을 LLM 프롬프트에서 placeholder로 바꾸고, 실제 값이 필요한 tool 호출 시에만 원래 값을 전달합니다.
- 미들웨어(Middleware)
- — 애플리케이션의 입력과 출력 사이에서 공통 처리를 끼워 넣는 소프트웨어 계층입니다. PIIAnonymizationMiddleware는 agent가 모델에 요청을 보내기 전 개인정보를 치환하고 응답과 tool 호출을 연결합니다.
- 자리표시자(Placeholder)
- — 실제 값을 대신해 사용하는 임시 문자열입니다. 이 구현에서는 모델이 개인정보 대신 동일한 placeholder를 계속 보며, tool에는 내부 매핑을 통해 원래 값이 전달됩니다.
- 도구 호출(Tool Calling)
- — LLM이 외부 함수나 API를 호출하도록 요청을 생성하는 방식입니다. piighost는 모델이 placeholder를 인자로 만든 상태에서 실제 개인정보를 복원해 tool을 실행하고, 모델에는 치환된 값만 유지합니다.
- GLiNER2 개체 탐지기(GLiNER2)
- — 텍스트에서 사람 이름이나 이메일처럼 미리 정한 유형의 개체를 찾는 탐지 모델입니다. piighost는 정규식과 함께 GLiNER2, spaCy, Transformers, Presidio, LLM 기반 detector를 선택적으로 연결할 수 있습니다.
코드 예제
from piighost.components.detector import ExactMatchDetector
from piighost.integrations.langchain import PIIAnonymizationMiddleware
from piighost.pipeline import ThreadAnonymizationPipeline
labels = {"Patrick Dupont": "PERSON", "[email protected]": "EMAIL"}
detector = ExactMatchDetector(labels)
pipeline = ThreadAnonymizationPipeline(detector)
middleware = PIIAnonymizationMiddleware(pipeline)LangChain agent에 ExactMatchDetector와 PIIAnonymizationMiddleware를 연결해 입력에 포함된 이름과 이메일을 thread 단위로 치환하는 핵심 설정입니다.
agent = create_agent(
model=model,
system_prompt=SYSTEM_PROMPT,
tools=[send_mail],
middleware=[middleware],
)create_agent에 tool과 개인정보 비식별화 middleware를 함께 등록해 모델 호출과 tool 실행 사이에 piighost 처리를 삽입합니다.
언급된 도구
LLM 프롬프트와 agent tool 호출 사이에서 개인정보를 치환하고 필요한 시점에 원래 값을 전달하는 Python library입니다.
`create_agent`와 middleware를 이용해 piighost의 개인정보 비식별화 처리를 agent pipeline에 연결합니다.
piighost에 연결할 수 있는 개인정보 탐지 detector 구현 중 하나입니다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.