import gradio as gr import google.generativeai as genai import os # 디버깅: 환경변수 확인 print("=== 환경변수 디버깅 ===") print(f"GEMINI_API_KEY 존재 여부: {'GEMINI_API_KEY' in os.environ}") api_key = os.environ.get("GEMINI_API_KEY") if api_key: print(f"API 키 길이: {len(api_key)}") print(f"API 키 시작: {api_key[:10]}...") else: print("API 키가 없습니다!") print("사용 가능한 환경변수들:") for key in os.environ.keys(): if "KEY" in key or "SECRET" in key: print(f" - {key}") # 시스템 프롬프트 SYSTEM_PROMPT = "발표 대본을 만들어주는 챗봇입니다. 발표할 내용을 입력하면 '왜냐하면 ~이기 때문입니다'로 대본을 만들어줍니다" def chat(message, history): # API 키 다시 확인 api_key = os.environ.get("GEMINI_API_KEY") if not api_key: return f"""❌ API 키가 설정되지 않았습니다. **해결 방법:** 1. Hugging Face Space의 ⚙️ Settings 탭으로 이동 2. 'Repository secrets' 섹션 찾기 3. 'New secret' 버튼 클릭 4. Name: `GEMINI_API_KEY` (정확히 이렇게 입력) 5. Value: 당신의 Gemini API 키 붙여넣기 6. 'Save' 클릭 7. Space를 재시작 (Settings → Factory reboot) 현재 상태: API 키가 {'있음' if api_key else '없음'} """ try: # API 설정 genai.configure(api_key=api_key) model = genai.GenerativeModel( 'gemini-1.5-flash', system_instruction=SYSTEM_PROMPT ) # 대화 기록 변환 chat_history = [] for human, assistant in history: if human: chat_history.append({"role": "user", "parts": [human]}) if assistant: chat_history.append({"role": "model", "parts": [assistant]}) # 채팅 세션 시작 chat_session = model.start_chat(history=chat_history) # 응답 생성 response = chat_session.send_message(message) return response.text except Exception as e: error_msg = str(e) if "API_KEY_INVALID" in error_msg: return "❌ API 키가 유효하지 않습니다. 올바른 Gemini API 키인지 확인하세요." else: return f"❌ 오류 발생: {error_msg}" # Gradio 인터페이스 demo = gr.ChatInterface( fn=chat, title="🤖 논리적으로 말하는 발표도우미 Gemini 챗봇", description=f"""논리적으로 발표하는 방법을 도와줍니다. **상태**: API 키가 {'✅ 설정됨' if api_key else '❌ 설정되지 않음'} [API 키 받기](https://aistudio.google.com/app/apikey) """ ) if __name__ == "__main__": demo.launch()