어떤 사이트들 보면 챗봇이 있어서 그 서비스에 대한것만 질문,응답을 해준다.
일단 하는방법은 동영상 분석할때랑 똑같다.
문서 처리 공식 문서
문서 내용만 답변하도록 참고 공식 문서
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 주석하고 해봤을때는 관련없을때도 정상 답변을 한다.
'Gemini 작업' 카테고리의 다른 글
히스토리,컨택스트 캐싱 이용하면서 히스토리 적용 (0) | 2024.08.08 |
---|---|
이미지,동영상을 서버에 저장 안하고 바로 Gemini요청하기 (0) | 2024.07.24 |
파이썬 파일 SHA256해시 (0) | 2024.07.23 |
Flask,Gemini 에러 or 호환 관련 (0) | 2024.07.19 |
Flask,Gemini (0) | 2024.07.18 |