mirror of
https://github.com/kennethreitz/simplemind.git
synced 2026-06-05 22:50:18 +00:00
yay
This commit is contained in:
+21
-6
@@ -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())
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user