summaryrefslogtreecommitdiffstats
path: root/ora/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'ora/__init__.py')
-rw-r--r--ora/__init__.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/ora/__init__.py b/ora/__init__.py
new file mode 100644
index 00000000..546e0940
--- /dev/null
+++ b/ora/__init__.py
@@ -0,0 +1,36 @@
+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'])
+ }
+ }) \ No newline at end of file