2024-10-28 10:15:43 -05:00
|
|
|
import os
|
|
|
|
|
import json
|
|
|
|
|
import logging
|
|
|
|
|
from openai import OpenAI
|
|
|
|
|
|
|
|
|
|
class StandaloneLLMTool:
|
|
|
|
|
def __init__(self):
|
|
|
|
|
self.client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
|
|
|
|
|
|
2024-10-28 10:19:22 -05:00
|
|
|
def get_detailed_instructions(self, user_prompt, model="llm-preview", max_tokens=16384):
|
2024-10-28 10:15:43 -05:00
|
|
|
response = self.client.completions.create(
|
2024-10-28 10:19:22 -05:00
|
|
|
model=model,
|
2024-10-28 10:15:43 -05:00
|
|
|
prompt=user_prompt,
|
2024-10-28 10:19:22 -05:00
|
|
|
max_tokens=max_tokens
|
2024-10-28 10:15:43 -05:00
|
|
|
)
|
|
|
|
|
return response
|
|
|
|
|
|
2024-10-28 10:19:22 -05:00
|
|
|
def process_user_input(self, user_prompt, model="llm-preview", max_tokens=16384):
|
2024-10-28 10:15:43 -05:00
|
|
|
logging.info(f"Received prompt: {user_prompt}")
|
2024-10-28 10:19:22 -05:00
|
|
|
response = self.get_detailed_instructions(user_prompt, model, max_tokens)
|
2024-10-28 10:15:43 -05:00
|
|
|
logging.info("Response generated")
|
|
|
|
|
return response.choices[0].text
|
|
|
|
|
|
|
|
|
|
|
2024-10-28 10:18:02 -05:00
|
|
|
# Utility function for programmatic access
|
|
|
|
|
|
2024-10-28 10:19:22 -05:00
|
|
|
def get_llm_response(prompt, model="llm-preview", max_tokens=16384):
|
2024-10-28 10:18:02 -05:00
|
|
|
tool = StandaloneLLMTool()
|
2024-10-28 10:19:22 -05:00
|
|
|
return tool.process_user_input(prompt, model, max_tokens)
|