Spaces:
Sleeping
Sleeping
Download LLM_handler.py from dhanvanth183/InviteAI: direct link, hf CLI and curl.
- Browser
- Download file 1.96 kB
-
https://huggingface.co/spaces/dhanvanth183/InviteAI/resolve/main/LLM_handler.py
- Command line
-
hf download hf://spaces/dhanvanth183/InviteAI/LLM_handler.py
-
curl -L -o LLM_handler.py https://huggingface.co/spaces/dhanvanth183/InviteAI/resolve/main/LLM_handler.py
1.96 kB
| import os | |
| from langchain_community.chat_models import ChatOpenAI | |
| from langchain_groq import ChatGroq | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| class LLMHandler: | |
| def __init__(self, model_name="gpt-4", provider="openai"): | |
| self.provider = provider | |
| if provider == "openai": | |
| self.api_key = os.getenv("OPENAI_API_KEY") | |
| if not self.api_key: | |
| raise ValueError("OPENAI_API_KEY environment variable not set.") | |
| self.model = ChatOpenAI(api_key=self.api_key, model=model_name) | |
| elif provider == "groq": | |
| self.api_key = os.getenv("GROQ_API_KEY") | |
| if not self.api_key: | |
| raise ValueError("GROQ_API_KEY environment variable not set.") | |
| self.model = ChatGroq(api_key=self.api_key, model_name=model_name) | |
| else: | |
| raise ValueError("Unsupported provider. Use 'openai' or 'groq'.") | |
| def generate_text(self, input_data, user_instruction): | |
| """ | |
| Generates personalized text using the LLM. | |
| """ | |
| try: | |
| prompt = self._build_prompt(input_data, user_instruction) | |
| response = self.model.generate([prompt]) | |
| return response[0]["text"] # Adjust this depending on response format | |
| except Exception as e: | |
| print(f"Error during text generation: {e}") | |
| return "Error generating response" | |
| def _build_prompt(input_data, user_instruction): | |
| """ | |
| Builds a structured prompt for the LLM. | |
| """ | |
| context = ( | |
| f"Name: {input_data.get('Name')}\n" | |
| f"Job Title: {input_data.get('Job Title')}\n" | |
| f"Organization: {input_data.get('Organization', input_data.get('Organisation'))}\n" | |
| f"Area of Interest: {input_data.get('Area of Interest')}\n" | |
| f"Category: {input_data.get('Category')}\n" | |
| ) | |
| return f"{user_instruction}\n\nContext:\n{context}" | |