chore: Update .gitignore to ignore .envrc and .env files

This commit is contained in:
2024-10-28 07:11:56 -04:00
parent 551ec1ffb4
commit 648cfaf290
8 changed files with 50 additions and 20 deletions
+2
View File
@@ -162,3 +162,5 @@ cython_debug/
#.idea/
.vscode/**
.envrc
.env
+1
View File
@@ -0,0 +1 @@
from .integrations import *
+6
View File
@@ -0,0 +1,6 @@
class Context:
def __init__(self):
self.plugins = [kv, basic_memory]
# TODO: explore pluggy for this.
+2
View File
@@ -0,0 +1,2 @@
from .claude import Claude
from .openai import OpenAI
+5 -11
View File
@@ -1,22 +1,16 @@
import os
import logging
# import logging
class BaseClientProvider:
def __init__(self, *, api_key_environ_key=None, api_key=None):
self.logger = logging.getLogger(self.__class__.__name__)
def __init__(self, *, api_key=None):
# self.logger = logging.getLogger(self.__class__.__name__)
self.client = None
# Load API key from environment if not provided
self._api_key = api_key or self._load_from_environ(self._api_key_environ_name)
self._api_key = api_key
@classmethod
def from_environ(cls, environ_key):
"""Loads the API key from the environment (recommended)."""
return cls(api_key=os.environ.get(environ_key))
def initialize(self):
def login(self):
"""Initializes the AI provider client."""
msg = "This method must be implemented by the AI provider client."
+1 -1
View File
@@ -1,4 +1,4 @@
from .base import BaseClientProvider
class OpenAI(BaseClientProvider):
class Claude(BaseClientProvider):
pass
+27 -8
View File
@@ -1,20 +1,39 @@
import os
import instructor
from openai import OpenAI
from .base import BaseClientProvider
class OpenAI(BaseClientProvider):
def __init__(self, **kwargs):
super().__init__(**kwargs)
self.initialize()
def initialize(self):
assert self._api_key, "API key is required for OpenAI client"
assert self._api_key.startswith("sk-"), "OpenAI API key must start with 'sk-'"
def __init__(self, *args, **kwargs):
return super().__init__(*args, **kwargs)
self.login()
self.logger.info("Initializing OpenAI client")
self.logger.debug(f"API key: {self._api_key}")
def login(self):
"""Initialize OpenAI client, with Instructor enabled."""
# Default to environment variable if not provided.
if self._api_key is None:
self._api_key = os.getenv("OPENAI_API_KEY")
base_client = OpenAI(api_key=self._api_key)
self.client = instructor.from_openai(base_client)
self.test_connection()
def available_models(self):
pass
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
+6
View File
@@ -0,0 +1,6 @@
import simplemind
context = None
openai = simplemind.integrations.OpenAI()
print(openai.login())