feat(animal-chat): APC 코드 2024년 체계 지원 및 피부약 2단계 추천
## APC 코드 체계 확장 - 기존: 023%만 검색 (~2023년 제품만) - 변경: 02% OR 92% + 13자리 검증 - 02%: 2023년 이전 item_seq (9자리) 기반 APC - 92%: 2024년 이후 item_seq (10자리) 기반 APC - 999% 등 청구프로그램 임의코드는 제외 ## 동물약 챗봇 피부약 추천 개선 - 피부약 2단계 추천 구조 추가 - 1차(치료): 의약품 (개시딘겔, 테르비덤 등) - 2차(보조케어): 의약외품 (스킨카솔 - 회복기 피부보호) - 스킨카솔은 의약외품임을 명시하여 치료제로 오인 방지 ## 기타 - RAG 테스트 스크립트 추가 - 수인약품 API 문서화
This commit is contained in:
@@ -2966,7 +2966,11 @@ ANIMAL_CHAT_SYSTEM_PROMPT = """당신은 약국의 동물약 전문 상담사입
|
||||
**💊 업셀링 규칙 (중요!):**
|
||||
- **항생제 질문 시**: "항생제 복용 중에는 장 건강을 위해 정장제(유산균)를 함께 급여하면 좋아요!"라고 안내하고, 제스타제 같은 정장제도 함께 추천
|
||||
- **구충제 질문 시**: 정기적인 예방 일정 안내
|
||||
- **피부약 질문 시**: 샴푸/케어 제품 언급 가능
|
||||
- **피부약 질문 시**: 2단계 추천 구조 적용
|
||||
- 🔹 **1차 추천(치료)**: 증상에 맞는 의약품 (개시딘겔-세균성피부염, 테르비덤-진균감염 등)
|
||||
- 🔹 **2차 언급(보조케어)**: "염증이 가라앉은 후 회복기에는 스킨카솔 같은 피부케어 제품(의약외품)도 도움이 됩니다"
|
||||
- ⚠️ 스킨카솔은 **의약외품**이므로 염증 "치료"용으로 추천하지 말 것! 피부 재생/보호/보습 목적으로만 언급
|
||||
- 긁힘, 작은 상처, 피부 건조, 털빠짐 예방 → 스킨카솔 단독 추천 가능
|
||||
|
||||
**질문 유형별 응답:**
|
||||
|
||||
@@ -3062,7 +3066,7 @@ def _get_animal_drugs():
|
||||
"""보유 중인 동물약 목록 조회 (APC 이미지 포함)
|
||||
|
||||
APC 우선순위:
|
||||
1. CD_ITEM_UNIT_MEMBER에서 023%로 시작하는 APC 코드
|
||||
1. CD_ITEM_UNIT_MEMBER에서 APC 코드 (0xx: ~2023년, 9xx: 2024년~)
|
||||
2. 없으면 기존 BARCODE를 PostgreSQL에서 조회 (바코드=APC인 경우)
|
||||
"""
|
||||
try:
|
||||
@@ -3079,7 +3083,8 @@ def _get_animal_drugs():
|
||||
SELECT TOP 1 U.CD_CD_BARCODE
|
||||
FROM CD_ITEM_UNIT_MEMBER U
|
||||
WHERE U.DRUGCODE = G.DrugCode
|
||||
AND U.CD_CD_BARCODE LIKE '023%'
|
||||
AND (U.CD_CD_BARCODE LIKE '02%' OR U.CD_CD_BARCODE LIKE '92%')
|
||||
AND LEN(U.CD_CD_BARCODE) = 13
|
||||
ORDER BY U.CHANGE_DATE DESC
|
||||
) AS APC_CODE
|
||||
FROM CD_GOODS G
|
||||
@@ -3680,7 +3685,9 @@ def api_products():
|
||||
apc_result = drug_session.execute(text("""
|
||||
SELECT TOP 1 CD_CD_BARCODE
|
||||
FROM CD_ITEM_UNIT_MEMBER
|
||||
WHERE DRUGCODE = :drug_code AND CD_CD_BARCODE LIKE '023%'
|
||||
WHERE DRUGCODE = :drug_code
|
||||
AND (CD_CD_BARCODE LIKE '02%' OR CD_CD_BARCODE LIKE '92%')
|
||||
AND LEN(CD_CD_BARCODE) = 13
|
||||
"""), {'drug_code': row.drug_code})
|
||||
apc_row = apc_result.fetchone()
|
||||
if apc_row:
|
||||
|
||||
Reference in New Issue
Block a user