This commit is contained in:
2024-10-28 07:16:03 -04:00
parent 648cfaf290
commit 116c9d2d99
3 changed files with 17 additions and 14 deletions
+2
View File
@@ -1,5 +1,6 @@
# import logging
from pydantic import BaseModel
class BaseClientProvider:
@@ -34,6 +35,7 @@ class BaseClientProvider:
msg = "This method must be implemented by the AI provider client."
raise NotImplementedError(msg)
@property
def available_models(self):
"""Returns the available models from the AI provider client."""
+12 -13
View File
@@ -1,7 +1,7 @@
import os
import instructor
from openai import OpenAI
from openai import OpenAI as BaseOpenAI
from .base import BaseClientProvider
@@ -9,11 +9,9 @@ from .base import BaseClientProvider
class OpenAI(BaseClientProvider):
def __init__(self, *args, **kwargs):
return super().__init__(*args, **kwargs)
super().__init__(*args, **kwargs)
self.login()
def login(self):
"""Initialize OpenAI client, with Instructor enabled."""
@@ -21,19 +19,20 @@ class OpenAI(BaseClientProvider):
if self._api_key is None:
self._api_key = os.getenv("OPENAI_API_KEY")
base_client = OpenAI(api_key=self._api_key)
base_client = BaseOpenAI(api_key=self._api_key)
self.client = instructor.from_openai(base_client)
self.test_connection()
@property
def available_models(self):
pass
"""Returns the available models from the OpenAI client."""
def gen():
for model in self.client.models.list():
yield model.id
return [g for g in gen()]
def test_connection(self):
try:
# openai.api_key = self._api_key
self.client.models.list()
# self.logger.info("OpenAI connection test successful")
except Exception as e:
# self.logger.error(f"OpenAI connection test failed: {str(e)}")
raise
pass
+3 -1
View File
@@ -3,4 +3,6 @@ import simplemind
context = None
openai = simplemind.integrations.OpenAI()
print(openai.login())
openai.login()
print(openai.available_models)