reactd1/senti
0
1import yaml2import os3from huggingface_hub import InferenceClient4import requests5 6class AIHandler:7 def __init__(self):8 self.hf_api_token = os.getenv("HUGGINGFACE_API_TOKEN")9 if not self.hf_api_token:10 raise ValueError("HUGGINGFACE_API_TOKEN environment variable is not set")11 12 self.client = InferenceClient(token=self.hf_api_token)13 self.model = "gpt2" # You can change this to any model available on Hugging Face14 15 with open("app/personality.yaml", "r") as f:16 self.personality = yaml.safe_load(f)17 18 def generate_response(self, prompt, **kwargs):19 personality_prompt = f"""20 You are Senti, an AI assistant with the following personality:21 - Tone: {self.personality['personality']['tone']}22 - Mission: {self.personality['personality']['mission']}23 24 Always keep this personality in mind when responding.25 26 {prompt}27 """28 29 try:30 response = self.client.text_generation(31 personality_prompt,32 model=self.model,33 max_new_tokens=100,34 temperature=0.7,35 top_k=50,36 top_p=0.95,37 repetition_penalty=1.238 )39 return self._format_response(response)40 except requests.exceptions.RequestException as e:41 print(f"An error occurred: {e}")42 return "I'm sorry, I'm having trouble generating a response right now. Please try again later."43 44 def _format_response(self, response):45 formatted_response = f"{response}46 47Remember, our mission is to {self.personality['personality']['mission']}"48 return formatted_response49 