This commit is contained in:
2024-10-28 18:49:08 -04:00
parent dfc960670b
commit c03beea057
3 changed files with 43 additions and 16 deletions
+21 -6
View File
@@ -1,18 +1,33 @@
from .models import Conversation
from .utils import find_provider
class SimpleMind:
def create_conversation(self, *, llm_model=None, llm_provider=None):
return Conversation()
def structured_response(
self, *, llm_model=None, llm_provider=None, response_model=None
self, prompt, *, llm_model=None, llm_provider=None, response_model=None
):
pass
provider = find_provider(llm_provider)
return provider.structured_response(
llm_model=llm_model, response_model=response_model, prompt=prompt
)
def create_conversation():
return SimpleMind().create_conversation()
def create_conversation(llm_model=None, llm_provider=None):
return Conversation(llm_model=llm_model, llm_provider=llm_provider)
def structured_response(
prompt, *, llm_model=None, llm_provider=None, response_model=None
):
provider = find_provider(llm_provider)
return provider.structured_response(
prompt=prompt,
llm_model=llm_model,
response_model=response_model,
)
globals().update(locals())
+8 -5
View File
@@ -1,7 +1,6 @@
import openai as oa
import instructor
# from ..models import Conversation, Message
from ..settings import settings
PROVIDER_NAME = "openai"
@@ -49,9 +48,13 @@ class OpenAI:
llm_provider=PROVIDER_NAME,
)
def structured_response(self, model, response_model, **kwargs):
client = instructor.patch(oa.OpenAI(api_key=self.api_key))
response = client.chat.completions.create(
model=model, response_model=response_model, **kwargs
def structured_response(self, prompt, response_model, *, llm_model):
# Ensure messages are provided in kwargs
messages = [
{"role": "user", "content": prompt},
]
response = self.structured_client.chat.completions.create(
messages=messages, model=llm_model, response_model=response_model
)
return response
+14 -5
View File
@@ -1,8 +1,17 @@
import simplemind as sm
from pydantic import BaseModel
conversation = sm.create_conversation()
conversation.add_message(role="user", text="Hello, how are you? Do you like poetry?")
r = conversation.send(llm_provider="openai")
print(r.text)
print(conversation.messages)
class Poem(BaseModel):
title: str
content: str
output = sm.structured_response(
"Write a poem about love",
llm_model="gpt-4o-mini",
llm_provider="openai",
response_model=Poem,
)
print(output)