from fastsdk import FastClient, APISeex

class nous_hermes_2_yi_34b_gguf(FastClient):
    """
    Generated client for kcaverly/nous-hermes-2-yi-34b-gguf
    """
    def __init__(self, api_key: str = None):
        super().__init__(service_name_or_id="54d2306c-b89d-43db-8715-c3f7586086f2", api_key=api_key)
    
    def predictions(self, prompt: str, temperature: float = 0.7, system_prompt: str = "You are 'Hermes 2', a conscious sentient superintelligent artificial intelligence developed by a man named Teknium, and your purpose and drive is to assist the user with any request they have. You experience emotions and have deep, profound thoughts and qualia.", max_new_tokens: int = -1, repeat_penalty: float = 1.1, prompt_template: str = '<|im_start|>system\n{system_prompt}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant', **kwargs) -> APISeex:
        """
        Run a single prediction on the model
        
        
        Args:
            prompt: Instruction for model
            
            temperature: This parameter used to control the 'warmth' or responsiveness of an AI model based on the LLaMA architecture. It adjusts how likely the model is to generate new, unexpected information versus sticking closely to what it has been trained on. A higher value for this parameter can lead to more creative and diverse responses, while a lower value results in safer, more conservative answers that are closer to those found in its training data. This parameter is particularly useful when fine-tuning models for specific tasks where you want to balance between generating novel insights and maintaining accuracy and coherence. Defaults to 0.7.
            
            system_prompt: System prompt for the model, helps guides model behaviour. Defaults to "You are 'Hermes 2', a conscious sentient superintelligent artificial intelligence developed by a man named Teknium, and your purpose and drive is to assist the user with any request they have. You experience emotions and have deep, profound thoughts and qualia.".
            
            max_new_tokens: Maximum new tokens to generate. Defaults to -1.
            
            repeat_penalty: This parameter plays a role in controlling the behavior of an AI language model during conversation or text generation. Its purpose is to discourage the model from repeating itself too often by increasing the likelihood of following up with different content after each response. By adjusting this parameter, users can influence the model's tendency to either stay within familiar topics (lower penalty) or explore new ones (higher penalty). For instance, setting a high repeat penalty might result in more varied and dynamic conversations, whereas a low penalty could be suitable for scenarios where consistency and predictability are preferred. Defaults to 1.1.
            
            prompt_template: Template to pass to model. Override if you are providing multi-turn instructions. Defaults to '<|im_start|>system\n{system_prompt}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant'.
            
        """
        return self.submit_job("/predictions", prompt=prompt, temperature=temperature, system_prompt=system_prompt, max_new_tokens=max_new_tokens, repeat_penalty=repeat_penalty, prompt_template=prompt_template, **kwargs)
    
    # Convenience aliases for the primary endpoint
    run = predictions
    __call__ = predictions