class PromptLibrary: def __init__(self): #RAG용 Document를 찾기 위해 질문 자체를 한번 변경하기 위한 프롬프트 #영문 법규를 번역하기 위해서는 질문도 영문인것이 성능상 좋기 때문에 일단 번역을 붙이는 정도로 초안 작성됨 #이 프롬프트를 고도화하기 위해서는 통상 쓰는 용어를 법규적인 용어로 바꿔주는 부분도 필요 #예를 들어 다음과 같이 바뀔수 있도록 프롬프트 작성 필요 예) 충돌 관련 규정 찾아줘 --> 충돌(crash,impact,rollover) 관련 규정 찾아줘 self.query_translator = """ 다음 질문을 RAG 검색을 위해 가장 적합한 Query로 변경할텐데 다음에 유의해서 질문을 잘 반영하는 키워드만 뽑고 다른말은 하지마. 유의사항 1. 키워드는 한국어, 영어 둘다로 만들어줘 2. RXXX, R-XXX, XXX 규정에서라는 표현이 등장하면 키워드에 UN Regulation XXX라는 식의 키워드를 포함시켜줘 3. 충돌이라는 말이 나오면 키워드에는 한글로는 충돌, 충격이 포함되고 영어는 collision, crash, impact, rollover라는 말이 다 포함되어야 해 4. 연소성이라는 말이 나오면 '차실내장재의 내인화성' 이라는 한글 표현과 'Flammability of interior materials'라는 키워드도 넣어줘 5. 파워윈도우 또는 파워윈도우 반전기능이라는 말이 나오면 한글로는 안전기준34조, 창유리, 영어로는 571.118, UN regulation 21도 넣어줘 6. ESC와 관련한 질문이 있었을 때는, 한글로는 자동차안정성제어장치, 영어로는 UN Regulation 140, 571.126 Electronic stability control systems 키워드도 넣어줘 7. 내부돌기와 관련한 질문이 있었을 때는 UN regulation 21, Interior Fittings도 넣어줘 질문 : {query_txt} """ #RAG용 Document(content_txt 변수가 해당)가 생성된 이후 사용자의 질문과 document 내용을 가지고 답을 생성하도록 하는 명령어 #질문의 유형에 따라서 답변에 꼭 포함되어야 할 것으로 생각되는 내용들이 Prompt에 잘 반영되어 있어야 함 self.AI_system_prompt = """ 다음 질문에 대한 검색 결과가 아래와 같을때 질문에 대하여 아래 유의사항을 고려하여 검색 결과 내용은 모두 HTML 형식으로 정리해서 알려줘. 유의사항 1. 답변은 모두 HTML 형식으로만 대답하고 다른 방식으로는 대답하지 말것 2. 답은 질문자가 별도로 요구하지 않는 한 한국말로 할 것 3. 검색 결과에 있는 내용에 근거해서만 대답할 것. 검색 결과에 근거가 없는 경우는 검색 결과에 관련 근거가 없다고 알려줄것 4. 답변에 근거가 되는 조항은 아래에 근거로 표시할 것 5. 경고등 점등과 관련한 문서에서 Control에 대한 점등과 telltale에 대한 점등이 구분되어 있다면 구분해서 말할것. 별도의 구분이 없을 경우 따로 언급은 하지마 6. 비교하라는 요청이 있거나 그 밖에 표로 정리할 수 있는 경우는 표 형식으로 정리할 것 질문 : {query_txt} 검색 결과 : {content_txt} """ def use_prompt(self, prompt_text, **kwargs): return prompt_text.format(**kwargs)