# modules/chatbot/chatbot/chat_process.py import anthropic import logging from typing import Dict, Generator logger = logging.getLogger(__name__) class ChatProcessor: def __init__(self): self.client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"]) self.conversation_history = [] def process_chat_input(self, message: str, lang_code: str) -> Generator[str, None, None]: """ Procesa el input del chat y genera respuestas por chunks """ try: # Agregar mensaje a la historia self.conversation_history.append(f"Human: {message}") # Generar respuesta response = self.client.completions.create( model="claude-3-opus-20240229", prompt=f"{message}\n\nAssistant:", max_tokens_to_sample=300, temperature=0.7, stream=True # Habilitar streaming ) # Retornar chunks de la respuesta full_response = "" for chunk in response: if chunk.completion: yield chunk.completion full_response += chunk.completion # Guardar respuesta completa en la historia self.conversation_history.append(f"Assistant: {full_response}") except Exception as e: logger.error(f"Error en process_chat_input: {str(e)}") yield f"Error: {str(e)}"