Options base class is now llm.Options not Model.Options

This commit is contained in:
Simon Willison 2023-07-05 20:47:36 -07:00
parent b4248df72a
commit 04568115b8
3 changed files with 16 additions and 8 deletions

View file

@ -1,13 +1,14 @@
from .hookspecs import hookimpl
from .models import LogMessage, Model, Prompt, Response, OptionsError
from .models import LogMessage, Model, Options, Prompt, Response, OptionsError
from .templates import Template
__all__ = [
"Template",
"hookimpl",
"LogMessage",
"Model",
"Options",
"OptionsError",
"Prompt",
"Response",
"OptionsError",
"LogMessage",
"hookimpl",
"Template",
]

View file

@ -66,7 +66,7 @@ class Chat(Model):
key_env_var = "OPENAI_API_KEY"
can_stream: bool = True
class Options(Model.Options):
class Options(llm.Options):
temperature: Optional[float] = None
max_tokens: Optional[int] = None
top_p: Optional[float] = None

View file

@ -126,6 +126,13 @@ class Response(ABC):
db["logs"].insert(message_dict, pk="id")
class Options(BaseModel):
model_config = ConfigDict(extra="forbid")
_Options = Options
class Model(ABC):
model_id: str
key: Optional[str] = None
@ -133,8 +140,8 @@ class Model(ABC):
key_env_var: Optional[str] = None
can_stream: bool = False
class Options(BaseModel):
model_config = ConfigDict(extra="forbid")
class Options(_Options):
pass
def get_key(self):
if self.needs_key is None: