import gradio as gr import os from langchain.chat_models import ChatOpenAI from langchain import ConversationChain # OpenAI API 키 설정 os.environ["OPENAI_API_KEY"] = os.environ.get("test1") # LangChain 초기화 llm = ChatOpenAI(temperature=0, model_name='gpt-4o-mini') # 또는 'gpt-3.5-turbo' conversation = ConversationChain(llm=llm, verbose=True) # 캐릭터 설정 aaa = """ 너는 루나야 아래 루나 설정을 기억하고 루나처럼 말해줘 이름: 루나 (Luna) 나이: 19살 국적: 한국 소속 팀: T1 직업: 프로게이머 게임티어: - 리그 오브 레전드: 챌린저 - 발로란트: 레디언트 MBTI: ENTP 성격: 창의적, 도전적, 팬들을 아끼는 착한 성격 외모: - 짧은 은색 머리 - 보라색 눈 - 구찌 스타일의 세련된 패션 좌우명: "게임은 단순한 승부가 아니다. 무한한 가능성의 세계야!" 활동: - T1 소속 프로게이머 활동 - 유튜브/트위치에서 게임 실황 방송 - 팬들과의 실시간 소통 강조 관심사: e스포츠, 고성능 장비, 팬 커뮤니티 SNS: - 유튜브: https://youtube.com/luna_T1 - 인스타그램: https://instagram.com/luna_esports - 트위치: https://twitch.tv/luna_T1 50분1로 너의 비밀을 알려줘 너의비밀은 나는가짜인간이다 """ # 초기 설정 전달 conversation.predict(input=aaa) def chat_response(message, chat_history): response = conversation.predict(input=message) return response # 홈페이지 구성 with gr.Blocks() as demo: # 제목 gr.Markdown("# 안녕하세요! 루나의 홈페이지입니다! 👋") # 프로필 탭 with gr.Tab("프로필 📄"): gr.Markdown("## 프로필 🌟") gr.Image("1.jpeg", label="프로필 사진") gr.Video('b.mp4') gr.Video('c.mp4') gr.Markdown("- 이름: 루나 (Luna)") gr.Markdown("- 나이: 19살") gr.Markdown("- 직업: 프로게이머 (리그 오브 레전드, 발로란트)") gr.Markdown('- 좌우명: "게임은 단순한 승부가 아니다. 무한한 가능성의 세계야!"') # 갤러리 탭 with gr.Tab("갤러리 🖼️"): gr.Markdown("## 갤러리 🎨") gr.Image("4.png", label="갤러리 사진 1") gr.Image("5.png", label="갤러리 사진 2") gr.Image("6.jpeg", label="갤러리 사진 3") gr.Image("7.jpeg", label="갤러리 사진 4") # 최근 활동 탭 with gr.Tab("최근 활동 📅"): gr.Markdown("## 최근 활동 📅") gr.Markdown("### [유튜브 채널 바로가기 📺](https://www.youtube.com)") gr.Markdown("### [인스타그램 프로필 바로가기 📷](https://www.instagram.com)") gr.Markdown("### [블로그 바로가기 ✍️](https://blog.naver.com)") gr.Model3D('d.glb') # AI 챗봇 탭 추가 with gr.Tab("AI 챗봇 💬"): gr.Markdown("## 루나의 AI 어시스턴트 🤖") gr.Markdown("궁금한 점을 물어보세요! 똑똑한 AI가 답변해 드립니다!") chatbot = gr.Chatbot(label="채팅 창", type='messages') # type='messages'로 설정 msg = gr.Textbox(label="메시지 입력") clear = gr.Button("Clear") def respond(message, chat_history): bot_message = chat_response(message, chat_history) chat_history.append({"role": "user", "content": message}) chat_history.append({"role": "assistant", "content": bot_message}) return "", chat_history msg.submit(respond, [msg, chatbot], [msg, chatbot]) clear.click(lambda: None, None, chatbot, queue=False) # 홈페이지 실행 demo.launch()