summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH Lohaus <hlohaus@users.noreply.github.com>2024-01-21 09:38:13 +0100
committerGitHub <noreply@github.com>2024-01-21 09:38:13 +0100
commitbe288aa8a7d884ed9ffccfacb987dac44e69df55 (patch)
treeccc7443f7d01483fd203a6b779a4e9d7ca7ff86b
parentMerge pull request #1486 from hlohaus/copilot (diff)
parentDeepInfra: Fix token duplication (diff)
downloadgpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.tar
gpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.tar.gz
gpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.tar.bz2
gpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.tar.lz
gpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.tar.xz
gpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.tar.zst
gpt4free-be288aa8a7d884ed9ffccfacb987dac44e69df55.zip
-rw-r--r--g4f/Provider/DeepInfra.py25
1 files changed, 16 insertions, 9 deletions
diff --git a/g4f/Provider/DeepInfra.py b/g4f/Provider/DeepInfra.py
index 96e3a680..12bd49c7 100644
--- a/g4f/Provider/DeepInfra.py
+++ b/g4f/Provider/DeepInfra.py
@@ -58,16 +58,23 @@ class DeepInfra(AsyncGeneratorProvider):
response.raise_for_status()
first = True
async for line in response.iter_lines():
+ if not line.startswith(b"data: "):
+ continue
+
try:
- if line.startswith(b"data: [DONE]"):
+ decoded_line = line.decode().lstrip("data: ")
+ json_line = json.loads(decoded_line)
+
+ choices = json_line.get("choices", [{}])
+ finish_reason = choices[0].get("finish_reason", "")
+ if finish_reason:
break
- elif line.startswith(b"data: "):
- chunk = json.loads(line[6:])["choices"][0]["delta"].get("content")
- if chunk:
+ token = choices[0].get("delta", {}).get("content", "")
+
+ if token:
if first:
- chunk = chunk.lstrip()
- if chunk:
- first = False
- yield chunk
+ token = token.lstrip()
+ first = False
+ yield token
except Exception:
- raise RuntimeError(f"Response: {line}") \ No newline at end of file
+ raise RuntimeError(f"Response: {line}")