Spaces:
No application file
No application file
| import os | |
| from dotenv import load_dotenv | |
| from openai import OpenAI | |
| from configs.logging_config import setup_logger | |
| from configs.settings import config | |
| load_dotenv() | |
| logger = setup_logger("llm_agent") | |
| client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) | |
| MODEL_NAME = config["llm"]["model"] | |
| class LLMAgent: | |
| def __init__(self): | |
| self.prompts = { | |
| "v1": self.prompt_v1, | |
| "v2": self.prompt_v2, | |
| "v3": self.prompt_v3 | |
| } | |
| def prompt_v1(self, query): | |
| return f""" | |
| You are a business analyst. Answer the question. | |
| Question: {query} | |
| """ | |
| def prompt_v2(self, query): | |
| return f""" | |
| You are an operations analyst. | |
| Analyze the user query and provide: | |
| 1. Observations | |
| 2. Possible reasons | |
| 3. Suggested next steps | |
| Question: {query} | |
| """ | |
| def prompt_v3(self, query): | |
| return f""" | |
| You are an AI Operations Copilot. | |
| Rules: | |
| - Do NOT make up data | |
| - If unsure, say "I don't have enough data" | |
| - Provide structured reasoning | |
| Output format: | |
| - Summary | |
| - Possible Causes | |
| - Confidence Level (High/Medium/Low) | |
| - Suggested Actions | |
| Question: {query} | |
| """ | |
| def run(self, query, version="v1"): | |
| prompt = self.prompts[version](query) | |
| logger.info(f"Prompt Version: {version}") | |
| logger.info(f"User Query: {query}") | |
| response = client.chat.completions.create( | |
| model=MODEL_NAME, | |
| messages=[ | |
| {"role": "system", "content": "You are a helpful AI assistant."}, | |
| {"role": "user", "content": prompt} | |
| ] | |
| ) | |
| output = response.choices[0].message.content | |
| logger.info(f"Response: {output}") | |
| return output | |
| def run_cli(): | |
| agent = LLMAgent() | |
| print("=== LLM Agent ===") | |
| print("Type 'exit' to quit\n") | |
| while True: | |
| query = input("Enter your query: ") | |
| if query.lower() == "exit": | |
| break | |
| version = input("Choose prompt version (v1/v2/v3): ") | |
| result = agent.run(query, version) | |
| print(f"\nAgent Response:\n{result}\n") | |
| if __name__ == "__main__": | |
| run_cli() |