본문 바로가기
Gemini 작업

문서 처리 시스템

by shulk 2024. 8. 23.

어떤 사이트들 보면 챗봇이 있어서 그 서비스에 대한것만 질문,응답을 해준다.

일단 하는방법은 동영상 분석할때랑 똑같다.

 

문서 처리 공식 문서

문서 내용만 답변하도록 참고 공식 문서

 

1. Gemini Api로 문서 업로드

smash_cloud = "/Users/seok/Downloads/smash_cloud.pdf"

doc_file = genai.upload_file(path=smash_cloud)

while doc_file.state.name == "PROCESSING":
    app.logger.info('Waiting for video to be processed.')
    time.sleep(2)
    doc_file = genai.get_file(doc_file.name)
    
response = model.generate_content([doc_file,question])

코드를 보면 동영상 분석때 영상 업로드할때랑 아예 같다.

 

2. 해당 문서에 대한 프롬프트 말고는 막는방법

model = genai.GenerativeModel('gemini-1.5-pro',system_instruction=
"너는 전문 문서 분석가다. 해당 문서에 대한 질문 아니면 모른다 답변해")

 

모델 설정에 system_instruction 를 추가해준다.

완전 확실한 방법인지는 정확하지 않는데, 공식 문서에 system_instruction을 이용하면 막을 수 있는것 같다.

system_instruction의 정의는 주로 언어 모델에서 사용되는 설정으로, 모델이 입력을 처리할 때 특정한 지침이나 역할을 수행하도록 하는 기능을 제공한다.

 

그래서 system_instruction 사용하고 관련 없는 프롬프트 일때는 밑에 이런 형식으로 답변 계속 하고

"죄송합니다. 질문에 답변할 수 없습니다. 저는 문서 분석가이므로 제공된 문서와 관련 없는 질문에는 답변할 수 없습니다." 
system_instruction 주석하고 해봤을때는 관련없을때도 정상 답변을 한다.