MCPcopy Create free account
hub / github.com/InternScience/InternAgent / OpenAIModel

Class OpenAIModel

internagent/mas/models/openai_model.py:21–315  ·  view source on GitHub ↗

OpenAI implementation of the BaseModel interface.

Source from the content-addressed store, hash-verified

19
20
21class OpenAIModel(BaseModel):
22 """OpenAI implementation of the BaseModel interface."""
23
24 def __init__(self,
25 api_key: Optional[str] = None,
26 model_name: str = "gpt-4o",
27 max_tokens: int = 4096,
28 temperature: float = 0.7,
29 timeout: int = 600):
30 """
31 Initialize the OpenAI model adapter.
32
33 Args:
34 api_key: OpenAI API key (defaults to OPENAI_API_KEY environment variable)
35 model_name: Model identifier to use (e.g., "gpt-4o")
36 max_tokens: Maximum tokens to generate by default
37 temperature: Default temperature setting (0 to 1)
38 timeout: Timeout in seconds for API calls
39 """
40 self.api_key = api_key or os.environ.get("OPENAI_API_KEY")
41 self.base_url = os.environ.get("OPENAI_API_BASE_URL", "https://api.openai.com/v1")
42 if not self.api_key:
43 logger.warning("OpenAI API key not provided. Please set OPENAI_API_KEY environment variable.")
44
45 self.model_name = model_name
46 self.max_tokens = max_tokens
47 self.temperature = temperature
48 self.timeout = timeout
49
50 try:
51
52 self.client = AsyncOpenAI(api_key=self.api_key, base_url=self.base_url, timeout=self.timeout)
53 logger.info(f"OpenAI client initialized with model: {self.model_name} via {self.base_url}")
54 except TypeError as e:
55 logger.warning(f"Error initializing OpenAI client: {e}")
56 self.client = None
57
58 async def generate(self,
59 prompt: str,
60 system_prompt: Optional[str] = None,
61 temperature: Optional[float] = None,
62 max_tokens: Optional[int] = None,
63 stop_sequences: Optional[List[str]] = None,
64 **kwargs) -> str:
65 """
66 Generate text based on the provided prompt using OpenAI API.
67
68 Args:
69 prompt: The user prompt to send to the model
70 system_prompt: Optional system prompt to guide the model
71 temperature: Controls randomness (0 to 1)
72 max_tokens: Maximum number of tokens to generate
73 stop_sequences: List of sequences at which to stop generation
74 **kwargs: Additional model-specific parameters
75
76 Returns:
77 Generated text response from the model
78 """

Callers 2

mainFunction · 0.90
mainFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected