import gradio as gr from huggingface_hub import InferenceClient import os import logging from gradio_client import Client # 이미지 생성 API 클라이언트 # 로깅 설정 logging.basicConfig(level=logging.INFO) # 환경 변수에서 Hugging Face API 토큰을 가져옵니다. hf_client = InferenceClient("CohereForAI/c4ai-command-r-plus", token=os.getenv("HF_TOKEN")) # 이미지 생성 API 클라이언트 설정 client = Client("http://211.233.58.202:7960/") def respond(message, history, system_message, max_tokens, temperature, top_p): # 초기 설정 및 변수 정의 system_prefix = "System: 입력어의 언어에 따라 동일한 언어로 답변하라." full_system_message = f"{system_prefix}{system_message}" messages = [{"role": "system", "content": f"{system_prefix} {system_message}"}] for user_msg, assistant_msg in history: messages.append({"role": "user", "content": user_msg}) if assistant_msg: messages.append({"role": "assistant", "content": assistant_msg}) messages.append({"role": "user", "content": message}) # 이미지 생성 요청 try: result = client.predict( prompt=message, seed=123, randomize_seed=False, width=1024, height=576, guidance_scale=5, num_inference_steps=28, api_name="/infer_t2i" ) if 'url' in result: return result['url'] else: logging.error("Image generation failed with error: %s", result.get('error', 'Unknown error')) return "Failed to generate image." except Exception as e: logging.error("Error during API request: %s", str(e)) return f"An error occurred: {str(e)}" theme = "Nymbo/Nymbo_Theme" css = """ footer { visibility: hidden; } """ # Gradio 채팅 인터페이스를 설정합니다. demo = gr.ChatInterface( fn=respond, additional_inputs=[ gr.Textbox(value="You are an AI assistant.", label="System Prompt"), gr.Slider(minimum=1, maximum=2000, value=512, step=1, label="Max new tokens"), gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"), gr.Slider( minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)" ), ], theme=theme, css=css ) if __name__ == "__main__": demo.launch()