from ora.model import CompletionModel | |
from ora.typing import OraResponse | |
from requests import post | |
from time import time | |
class Completion: | |
def create( | |
model : CompletionModel, | |
prompt: str, | |
conversationId: str or None = None) -> OraResponse: | |
extra = { | |
'conversationId': conversationId} if conversationId else {} | |
response = post('https://ora.sh/api/conversation', json = extra | { | |
'chatbotId': model.id, | |
'input' : prompt, | |
'userId' : model.createdBy}).json() | |
return OraResponse({ | |
'id' : response['conversationId'], | |
'object' : 'text_completion', | |
'created': int(time()), | |
'model' : model.slug, | |
'choices': [{ | |
'text' : response['response'], | |
'index' : 0, | |
'logprobs' : None, | |
'finish_reason' : 'stop' | |
}], | |
'usage': { | |
'prompt_tokens' : len(prompt), | |
'completion_tokens' : len(response['response']), | |
'total_tokens' : len(prompt) + len(response['response']) | |
} | |
}) |