File size: 913 Bytes
acef13a
 
 
8e5831a
 
 
 
 
acef13a
 
 
 
 
 
8e5831a
acef13a
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import os
import openai

class BaseAgent:
    """Base class for all agents. Override __call__ to implement agent logic."""
    def __call__(self, question: str) -> str:
        raise NotImplementedError("Agent must implement __call__ method.")

class LLMOpenAIAgent(BaseAgent):
    """Agent that uses OpenAI's GPT-3.5-turbo to answer questions."""
    def __init__(self, api_key=None):
        self.api_key = api_key or os.getenv("OPENAI_API_KEY")
        openai.api_key = self.api_key

    def __call__(self, question: str) -> str:
        try:
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": question}],
                max_tokens=256,
                temperature=0.2,
            )
            return response.choices[0].message["content"].strip()
        except Exception as e:
            return f"Error: {e}"