CoolFace
Apppublic

reactd1/senti

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
ai_handler.py49 linesDownload Raw Back to root
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