Skip to content

Commit 8f98a52

Browse files
committed
Fix Phind. Resolves 21
1 parent 58cde37 commit 8f98a52

File tree

3 files changed

+25
-5
lines changed

3 files changed

+25
-5
lines changed

requirements.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ appdirs==1.4.4
77
webchatgpt==0.2.7
88
GoogleBard==1.4.0
99
colorama==0.4.6
10-
g4f>=0.2.0.6
10+
g4f>=0.2.0.6
11+
pyyaml==6.0.1

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"GoogleBard==1.4.0",
4848
"colorama==0.4.6",
4949
"g4f>=0.2.0.6",
50+
"pyyaml==6.0.1",
5051
],
5152
python_requires=">=3.9",
5253
keywords=[

src/pytgpt/phind/main.py

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import re
22
import json
3+
import yaml
34
import requests
45
from pytgpt.utils import Optimizers
56
from pytgpt.utils import Conversation
@@ -150,6 +151,7 @@ def for_stream():
150151
):
151152
try:
152153
modified_value = re.sub("data:", "", value)
154+
print(modified_value)
153155
json_modified_value = json.loads(modified_value)
154156
retrieved_text = self.get_message(json_modified_value)
155157
if not retrieved_text:
@@ -218,8 +220,24 @@ def get_message(self, response: dict) -> str:
218220
str: Message extracted
219221
"""
220222
assert isinstance(response, dict), "Response should be of dict data-type only"
221-
return (
222-
response["choices"][0]["delta"]["content"]
223-
if response["choices"][0]["finish_reason"] is None
223+
delta : dict= response["choices"][0]["delta"]
224+
225+
if not delta:
226+
return ''
227+
228+
elif delta.get('function_call'):
229+
function_call: dict = delta['function_call']
230+
if function_call.get('name'):
231+
return function_call['name']
232+
elif function_call.get('arguments'):
233+
return function_call.get('arguments')
234+
235+
elif delta.get('metadata'):
236+
return yaml.dump(delta['metadata'])
237+
238+
else:
239+
return (
240+
response["choices"][0]["delta"].get("content")
241+
if response["choices"][0].get("finish_reason") is None
224242
else ""
225-
)
243+
)

0 commit comments

Comments
 (0)