Skip to content

Commit 89b2750

Browse files
Merge pull request #8 from mindsdb/stream-mind
Stream completion
2 parents e3fa8c7 + 762ba60 commit 89b2750

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

examples/base_usage.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@
7373
# call completion
7474
print(mind.completion('2+3'))
7575

76+
# stream completion
77+
for chunk in mind.completion('2+3', stream=True):
78+
print(chunk.content)
79+
7680
# --- managing datasources ---
7781

7882
# create or replace

minds/minds.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import List, Union
1+
from typing import List, Union, Iterable
22
from urllib.parse import urlparse, urlunparse
33

44
from openai import OpenAI
@@ -84,7 +84,15 @@ def add_datasource(self, datasource: Datasource):
8484
def del_datasource(self, datasource: Union[Datasource, str]):
8585
raise NotImplementedError
8686

87-
def completion(self, message):
87+
def completion(self, message: str, stream: bool = False) -> Union[str, Iterable[object]]:
88+
"""
89+
Call mind completion
90+
91+
:param message: input question
92+
:param stream: to enable stream mode
93+
94+
:return: string if stream mode is off or iterator of ChoiceDelta objects (by openai)
95+
"""
8896
parsed = urlparse(self.api.base_url)
8997

9098
netloc = parsed.netloc
@@ -101,14 +109,18 @@ def completion(self, message):
101109
base_url=base_url
102110
)
103111

104-
completion = openai_client.chat.completions.create(
112+
response = openai_client.chat.completions.create(
105113
model=self.name,
106114
messages=[
107115
{'role': 'user', 'content': message}
108116
],
109-
stream=False
117+
stream=stream
110118
)
111-
return completion.choices[0].message.content
119+
if stream:
120+
for chunk in response:
121+
yield chunk.choices[0].delta
122+
else:
123+
return response.choices[0].message.content
112124

113125

114126
class Minds:

0 commit comments

Comments
 (0)