From 46bbf75000c8a5284fc131ee0539e079b4629348 Mon Sep 17 00:00:00 2001 From: Nghiauet <63385521+Nghiauet@users.noreply.github.com> Date: Wed, 20 Dec 2023 00:14:50 +0700 Subject: [PATCH] Update migrate How_to_stream_completions.ipynb to openai 1.3.7 (#912) Co-authored-by: Logan Kilpatrick --- authors.yaml | 7 +- examples/How_to_stream_completions.ipynb | 1684 +++++----------------- registry.yaml | 2 + 3 files changed, 354 insertions(+), 1339 deletions(-) diff --git a/authors.yaml b/authors.yaml index a45c07d..3841b5c 100644 --- a/authors.yaml +++ b/authors.yaml @@ -53,7 +53,12 @@ prakul: website: "https://www.linkedin.com/in/prakulagarwal" avatar: "https://media.licdn.com/dms/image/D5603AQEUug83qKgRBg/profile-displayphoto-shrink_800_800/0/1675384960197?e=1706140800&v=beta&t=qxkDbBr-Bk2ASpcwbR5JVPD6yS-vzmIwNHAa8ApyDq4" +nghiauet: + name: "Nghia Pham" + website: "https://www.linkedin.com/in/deptraicucmanh/" + avatar: "https://media.licdn.com/dms/image/D5603AQFpoi0l1lRQ7g/profile-displayphoto-shrink_200_200/0/1680006955681?e=1707350400&v=beta&t=1J1DAVRGXL7LgFUBnIooI-fsDRkdzFzCDwwxMze9N8c" + ggrn: name: "Greg Richardson" website: "https://twitter.com/ggrdson" - avatar: "https://pbs.twimg.com/profile_images/1371549909820657664/ZG-HDNlI_400x400.jpg" + avatar: "https://pbs.twimg.com/profile_images/1371549909820657664/ZG-HDNlI_400x400.jpg" \ No newline at end of file diff --git a/examples/How_to_stream_completions.ipynb b/examples/How_to_stream_completions.ipynb index 83f7402..49e4a06 100644 --- a/examples/How_to_stream_completions.ipynb +++ b/examples/How_to_stream_completions.ipynb @@ -35,10 +35,20 @@ "execution_count": 1, "metadata": {}, "outputs": [], + "source": [ + "# !pip install openai==1.3.7" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], "source": [ "# imports\n", - "import openai # for OpenAI API calls\n", - "import time # for measuring time duration of API calls" + "import time # for measuring time duration of API calls\n", + "from openai import OpenAI\n", + "client = OpenAI() # for OpenAI API calls" ] }, { @@ -53,36 +63,16 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Full response received 3.03 seconds after request\n", + "Full response received 7.90 seconds after request\n", "Full response received:\n", - "{\n", - " \"choices\": [\n", - " {\n", - " \"finish_reason\": \"stop\",\n", - " \"index\": 0,\n", - " \"message\": {\n", - " \"content\": \"\\n\\n1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.\",\n", - " \"role\": \"assistant\"\n", - " }\n", - " }\n", - " ],\n", - " \"created\": 1677825456,\n", - " \"id\": \"chatcmpl-6ptKqrhgRoVchm58Bby0UvJzq2ZuQ\",\n", - " \"model\": \"gpt-3.5-turbo-0301\",\n", - " \"object\": \"chat.completion\",\n", - " \"usage\": {\n", - " \"completion_tokens\": 301,\n", - " \"prompt_tokens\": 36,\n", - " \"total_tokens\": 337\n", - " }\n", - "}\n" + "ChatCompletion(id='chatcmpl-8SjX2G5nLRWrfnnPeFn9HAaJvSVZf', choices=[Choice(finish_reason='stop', index=0, message=ChatCompletionMessage(content='1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.', role='assistant', function_call=None, tool_calls=None))], created=1701858900, model='gpt-3.5-turbo-0613', object='chat.completion', system_fingerprint=None, usage=CompletionUsage(completion_tokens=299, prompt_tokens=36, total_tokens=335))\n" ] } ], @@ -94,20 +84,19 @@ "start_time = time.time()\n", "\n", "# send a ChatCompletion request to count to 100\n", - "response = openai.ChatCompletion.create(\n", + "completion = client.chat.completions.create(\n", " model='gpt-3.5-turbo',\n", " messages=[\n", " {'role': 'user', 'content': 'Count to 100, with a comma between each number and no newlines. E.g., 1, 2, 3, ...'}\n", " ],\n", " temperature=0,\n", ")\n", - "\n", "# calculate the time it took to receive the response\n", "response_time = time.time() - start_time\n", "\n", "# print the time delay and text received\n", "print(f\"Full response received {response_time:.2f} seconds after request\")\n", - "print(f\"Full response received:\\n{response}\")\n" + "print(f\"Full response received:\\n{completion}\")\n" ] }, { @@ -122,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -130,22 +119,17 @@ "output_type": "stream", "text": [ "Extracted reply: \n", - "{\n", - " \"content\": \"\\n\\n1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.\",\n", - " \"role\": \"assistant\"\n", - "}\n", + "ChatCompletionMessage(content='1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.', role='assistant', function_call=None, tool_calls=None)\n", "Extracted content: \n", - "\n", - "\n", "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.\n" ] } ], "source": [ - "reply = response['choices'][0]['message']\n", + "reply = completion.choices[0].message\n", "print(f\"Extracted reply: \\n{reply}\")\n", "\n", - "reply_content = response['choices'][0]['message']['content']\n", + "reply_content = completion.choices[0].message.content\n", "print(f\"Extracted content: \\n{reply_content}\")\n" ] }, @@ -163,71 +147,22 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "{\n", - " \"choices\": [\n", - " {\n", - " \"delta\": {\n", - " \"role\": \"assistant\"\n", - " },\n", - " \"finish_reason\": null,\n", - " \"index\": 0\n", - " }\n", - " ],\n", - " \"created\": 1677825464,\n", - " \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n", - " \"model\": \"gpt-3.5-turbo-0301\",\n", - " \"object\": \"chat.completion.chunk\"\n", - "}\n", - "{\n", - " \"choices\": [\n", - " {\n", - " \"delta\": {\n", - " \"content\": \"\\n\\n\"\n", - " },\n", - " \"finish_reason\": null,\n", - " \"index\": 0\n", - " }\n", - " ],\n", - " \"created\": 1677825464,\n", - " \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n", - " \"model\": \"gpt-3.5-turbo-0301\",\n", - " \"object\": \"chat.completion.chunk\"\n", - "}\n", - "{\n", - " \"choices\": [\n", - " {\n", - " \"delta\": {\n", - " \"content\": \"2\"\n", - " },\n", - " \"finish_reason\": null,\n", - " \"index\": 0\n", - " }\n", - " ],\n", - " \"created\": 1677825464,\n", - " \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n", - " \"model\": \"gpt-3.5-turbo-0301\",\n", - " \"object\": \"chat.completion.chunk\"\n", - "}\n", - "{\n", - " \"choices\": [\n", - " {\n", - " \"delta\": {},\n", - " \"finish_reason\": \"stop\",\n", - " \"index\": 0\n", - " }\n", - " ],\n", - " \"created\": 1677825464,\n", - " \"id\": \"chatcmpl-6ptKyqKOGXZT6iQnqiXAH8adNLUzD\",\n", - " \"model\": \"gpt-3.5-turbo-0301\",\n", - " \"object\": \"chat.completion.chunk\"\n", - "}\n" + "ChatCompletionChunk(id='chatcmpl-8SjXATR0aAejfQHMDHkNYYRTiUdca', choices=[Choice(delta=ChoiceDelta(content='', function_call=None, role='assistant', tool_calls=None), finish_reason=None, index=0)], created=1701858908, model='gpt-3.5-turbo-0613', object='chat.completion.chunk', system_fingerprint=None)\n", + "\n", + "****************\n", + "ChatCompletionChunk(id='chatcmpl-8SjXATR0aAejfQHMDHkNYYRTiUdca', choices=[Choice(delta=ChoiceDelta(content='2', function_call=None, role=None, tool_calls=None), finish_reason=None, index=0)], created=1701858908, model='gpt-3.5-turbo-0613', object='chat.completion.chunk', system_fingerprint=None)\n", + "2\n", + "****************\n", + "ChatCompletionChunk(id='chatcmpl-8SjXATR0aAejfQHMDHkNYYRTiUdca', choices=[Choice(delta=ChoiceDelta(content=None, function_call=None, role=None, tool_calls=None), finish_reason='stop', index=0)], created=1701858908, model='gpt-3.5-turbo-0613', object='chat.completion.chunk', system_fingerprint=None)\n", + "None\n", + "****************\n" ] } ], @@ -235,8 +170,7 @@ "# Example of an OpenAI ChatCompletion request with stream=True\n", "# https://platform.openai.com/docs/guides/chat\n", "\n", - "# a ChatCompletion request\n", - "response = openai.ChatCompletion.create(\n", + "completion = client.chat.completions.create(\n", " model='gpt-3.5-turbo',\n", " messages=[\n", " {'role': 'user', 'content': \"What's 1+1? Answer in one word.\"}\n", @@ -245,8 +179,10 @@ " stream=True # this time, we set stream=True\n", ")\n", "\n", - "for chunk in response:\n", - " print(chunk)" + "for chunk in completion:\n", + " print(chunk)\n", + " print(chunk.choices[0].delta.content)\n", + " print(\"****************\")" ] }, { @@ -279,914 +215,309 @@ "name": "stdout", "output_type": "stream", "text": [ - "Message received 0.10 seconds after request: {\n", - " \"role\": \"assistant\"\n", - "}\n", - "Message received 0.10 seconds after request: {\n", - " \"content\": \"\\n\\n\"\n", - "}\n", - "Message received 0.10 seconds after request: {\n", - " \"content\": \"1\"\n", - "}\n", - "Message received 0.11 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.12 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.13 seconds after request: {\n", - " \"content\": \"2\"\n", - "}\n", - "Message received 0.14 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.15 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.16 seconds after request: {\n", - " \"content\": \"3\"\n", - "}\n", - "Message received 0.17 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.18 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.19 seconds after request: {\n", - " \"content\": \"4\"\n", - "}\n", - "Message received 0.20 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.21 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.22 seconds after request: {\n", - " \"content\": \"5\"\n", - "}\n", - "Message received 0.23 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.25 seconds after request: {\n", - " \"content\": \"6\"\n", - "}\n", - "Message received 0.26 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.27 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.28 seconds after request: {\n", - " \"content\": \"7\"\n", - "}\n", - "Message received 0.29 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.30 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.30 seconds after request: {\n", - " \"content\": \"8\"\n", - "}\n", - "Message received 0.31 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.32 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.33 seconds after request: {\n", - " \"content\": \"9\"\n", - "}\n", - "Message received 0.34 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.35 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.37 seconds after request: {\n", - " \"content\": \"10\"\n", - "}\n", - "Message received 0.40 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.43 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.43 seconds after request: {\n", - " \"content\": \"11\"\n", - "}\n", - "Message received 0.43 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.43 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.43 seconds after request: {\n", - " \"content\": \"12\"\n", - "}\n", - "Message received 0.43 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.44 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.45 seconds after request: {\n", - " \"content\": \"13\"\n", - "}\n", - "Message received 0.46 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.47 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.48 seconds after request: {\n", - " \"content\": \"14\"\n", - "}\n", - "Message received 0.49 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.50 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.51 seconds after request: {\n", - " \"content\": \"15\"\n", - "}\n", - "Message received 0.52 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.53 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.53 seconds after request: {\n", - " \"content\": \"16\"\n", - "}\n", - "Message received 0.55 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.55 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.56 seconds after request: {\n", - " \"content\": \"17\"\n", - "}\n", - "Message received 0.57 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.58 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.59 seconds after request: {\n", - " \"content\": \"18\"\n", - "}\n", - "Message received 0.60 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.61 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.62 seconds after request: {\n", - " \"content\": \"19\"\n", - "}\n", - "Message received 0.63 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.64 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.65 seconds after request: {\n", - " \"content\": \"20\"\n", - "}\n", - "Message received 0.66 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.67 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.68 seconds after request: {\n", - " \"content\": \"21\"\n", - "}\n", - "Message received 0.69 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.70 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.71 seconds after request: {\n", - " \"content\": \"22\"\n", - "}\n", - "Message received 0.72 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.73 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.74 seconds after request: {\n", - " \"content\": \"23\"\n", - "}\n", - "Message received 0.75 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.75 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.76 seconds after request: {\n", - " \"content\": \"24\"\n", - "}\n", - "Message received 0.79 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.79 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.79 seconds after request: {\n", - " \"content\": \"25\"\n", - "}\n", - "Message received 0.80 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.81 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.82 seconds after request: {\n", - " \"content\": \"26\"\n", - "}\n", - "Message received 0.83 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.84 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.85 seconds after request: {\n", - " \"content\": \"27\"\n", - "}\n", - "Message received 0.86 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.87 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.88 seconds after request: {\n", - " \"content\": \"28\"\n", - "}\n", - "Message received 0.89 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.90 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.92 seconds after request: {\n", - " \"content\": \"29\"\n", - "}\n", - "Message received 0.92 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.93 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.94 seconds after request: {\n", - " \"content\": \"30\"\n", - "}\n", - "Message received 0.95 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.96 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 0.97 seconds after request: {\n", - " \"content\": \"31\"\n", - "}\n", - "Message received 0.98 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 0.99 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.00 seconds after request: {\n", - " \"content\": \"32\"\n", - "}\n", - "Message received 1.01 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.02 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.03 seconds after request: {\n", - " \"content\": \"33\"\n", - "}\n", - "Message received 1.04 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.05 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.06 seconds after request: {\n", - " \"content\": \"34\"\n", - "}\n", - "Message received 1.07 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.08 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.09 seconds after request: {\n", - " \"content\": \"35\"\n", - "}\n", - "Message received 1.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.11 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.12 seconds after request: {\n", - " \"content\": \"36\"\n", - "}\n", - "Message received 1.13 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.13 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.14 seconds after request: {\n", - " \"content\": \"37\"\n", - "}\n", - "Message received 1.15 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.17 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.18 seconds after request: {\n", - " \"content\": \"38\"\n", - "}\n", - "Message received 1.19 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.19 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.20 seconds after request: {\n", - " \"content\": \"39\"\n", - "}\n", - "Message received 1.21 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.22 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.23 seconds after request: {\n", - " \"content\": \"40\"\n", - "}\n", - "Message received 1.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.26 seconds after request: {\n", - " \"content\": \"41\"\n", - "}\n", - "Message received 1.27 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.28 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.29 seconds after request: {\n", - " \"content\": \"42\"\n", - "}\n", - "Message received 1.30 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.31 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.32 seconds after request: {\n", - " \"content\": \"43\"\n", - "}\n", - "Message received 1.33 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.34 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.37 seconds after request: {\n", - " \"content\": \"44\"\n", - "}\n", - "Message received 1.37 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 1.37 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 1.37 seconds after request: {\n", - " \"content\": \"45\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"46\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"47\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"48\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"49\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"50\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"51\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"52\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"53\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.10 seconds after request: {\n", - " \"content\": \"54\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"55\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"56\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"57\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"58\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"59\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"60\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"61\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \"62\"\n", - "}\n", - "Message received 2.24 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"63\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"64\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"65\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"66\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"67\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"68\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"69\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"70\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"71\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"72\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"73\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \"74\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.25 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.26 seconds after request: {\n", - " \"content\": \"75\"\n", - "}\n", - "Message received 2.26 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.26 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.27 seconds after request: {\n", - " \"content\": \"76\"\n", - "}\n", - "Message received 2.28 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.29 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.29 seconds after request: {\n", - " \"content\": \"77\"\n", - "}\n", - "Message received 2.31 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.32 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.32 seconds after request: {\n", - " \"content\": \"78\"\n", - "}\n", - "Message received 2.33 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.35 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.35 seconds after request: {\n", - " \"content\": \"79\"\n", - "}\n", - "Message received 2.36 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.37 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.38 seconds after request: {\n", - " \"content\": \"80\"\n", - "}\n", - "Message received 2.39 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.40 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.41 seconds after request: {\n", - " \"content\": \"81\"\n", - "}\n", - "Message received 2.42 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.43 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.44 seconds after request: {\n", - " \"content\": \"82\"\n", - "}\n", - "Message received 2.45 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.46 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.47 seconds after request: {\n", - " \"content\": \"83\"\n", - "}\n", - "Message received 2.48 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.49 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.50 seconds after request: {\n", - " \"content\": \"84\"\n", - "}\n", - "Message received 2.51 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.52 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.53 seconds after request: {\n", - " \"content\": \"85\"\n", - "}\n", - "Message received 2.54 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.55 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.56 seconds after request: {\n", - " \"content\": \"86\"\n", - "}\n", - "Message received 2.57 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.58 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.59 seconds after request: {\n", - " \"content\": \"87\"\n", - "}\n", - "Message received 2.60 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.60 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.62 seconds after request: {\n", - " \"content\": \"88\"\n", - "}\n", - "Message received 2.63 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.63 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.64 seconds after request: {\n", - " \"content\": \"89\"\n", - "}\n", - "Message received 2.66 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.66 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.68 seconds after request: {\n", - " \"content\": \"90\"\n", - "}\n", - "Message received 2.68 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.69 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.70 seconds after request: {\n", - " \"content\": \"91\"\n", - "}\n", - "Message received 2.71 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.72 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.73 seconds after request: {\n", - " \"content\": \"92\"\n", - "}\n", - "Message received 2.74 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.75 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.76 seconds after request: {\n", - " \"content\": \"93\"\n", - "}\n", - "Message received 2.77 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.78 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.79 seconds after request: {\n", - " \"content\": \"94\"\n", - "}\n", - "Message received 2.80 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.81 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.81 seconds after request: {\n", - " \"content\": \"95\"\n", - "}\n", - "Message received 2.82 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.83 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.84 seconds after request: {\n", - " \"content\": \"96\"\n", - "}\n", - "Message received 2.85 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.86 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.87 seconds after request: {\n", - " \"content\": \"97\"\n", - "}\n", - "Message received 2.88 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.88 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.89 seconds after request: {\n", - " \"content\": \"98\"\n", - "}\n", - "Message received 2.90 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.91 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.92 seconds after request: {\n", - " \"content\": \"99\"\n", - "}\n", - "Message received 2.93 seconds after request: {\n", - " \"content\": \",\"\n", - "}\n", - "Message received 2.93 seconds after request: {\n", - " \"content\": \" \"\n", - "}\n", - "Message received 2.94 seconds after request: {\n", - " \"content\": \"100\"\n", - "}\n", - "Message received 2.95 seconds after request: {\n", - " \"content\": \".\"\n", - "}\n", - "Message received 2.97 seconds after request: {}\n", - "Full response received 2.97 seconds after request\n", - "Full conversation received: \n", - "\n", - "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.\n" + "Message received 0.99 seconds after request: \n", + "Message received 1.06 seconds after request: 1\n", + "Message received 1.06 seconds after request: ,\n", + "Message received 1.06 seconds after request: \n", + "Message received 1.14 seconds after request: 2\n", + "Message received 1.14 seconds after request: ,\n", + "Message received 1.14 seconds after request: \n", + "Message received 1.20 seconds after request: 3\n", + "Message received 1.20 seconds after request: ,\n", + "Message received 1.20 seconds after request: \n", + "Message received 1.27 seconds after request: 4\n", + "Message received 1.27 seconds after request: ,\n", + "Message received 1.27 seconds after request: \n", + "Message received 1.34 seconds after request: 5\n", + "Message received 1.34 seconds after request: ,\n", + "Message received 1.34 seconds after request: \n", + "Message received 1.40 seconds after request: 6\n", + "Message received 1.40 seconds after request: ,\n", + "Message received 1.40 seconds after request: \n", + "Message received 1.47 seconds after request: 7\n", + "Message received 1.48 seconds after request: ,\n", + "Message received 1.48 seconds after request: \n", + "Message received 1.56 seconds after request: 8\n", + "Message received 1.56 seconds after request: ,\n", + "Message received 1.56 seconds after request: \n", + "Message received 1.63 seconds after request: 9\n", + "Message received 1.63 seconds after request: ,\n", + "Message received 1.63 seconds after request: \n", + "Message received 1.71 seconds after request: 10\n", + "Message received 1.71 seconds after request: ,\n", + "Message received 1.71 seconds after request: \n", + "Message received 1.78 seconds after request: 11\n", + "Message received 1.78 seconds after request: ,\n", + "Message received 1.78 seconds after request: \n", + "Message received 1.86 seconds after request: 12\n", + "Message received 1.86 seconds after request: ,\n", + "Message received 1.86 seconds after request: \n", + "Message received 2.20 seconds after request: 13\n", + "Message received 2.20 seconds after request: ,\n", + "Message received 2.20 seconds after request: \n", + "Message received 2.31 seconds after request: 14\n", + "Message received 2.31 seconds after request: ,\n", + "Message received 2.31 seconds after request: \n", + "Message received 2.38 seconds after request: 15\n", + "Message received 2.38 seconds after request: ,\n", + "Message received 2.39 seconds after request: \n", + "Message received 2.46 seconds after request: 16\n", + "Message received 2.46 seconds after request: ,\n", + "Message received 2.46 seconds after request: \n", + "Message received 2.53 seconds after request: 17\n", + "Message received 2.53 seconds after request: ,\n", + "Message received 2.53 seconds after request: \n", + "Message received 2.61 seconds after request: 18\n", + "Message received 2.61 seconds after request: ,\n", + "Message received 2.61 seconds after request: \n", + "Message received 2.67 seconds after request: 19\n", + "Message received 2.67 seconds after request: ,\n", + "Message received 2.67 seconds after request: \n", + "Message received 2.74 seconds after request: 20\n", + "Message received 2.74 seconds after request: ,\n", + "Message received 2.74 seconds after request: \n", + "Message received 2.83 seconds after request: 21\n", + "Message received 2.83 seconds after request: ,\n", + "Message received 2.83 seconds after request: \n", + "Message received 2.89 seconds after request: 22\n", + "Message received 2.89 seconds after request: ,\n", + "Message received 2.89 seconds after request: \n", + "Message received 3.02 seconds after request: 23\n", + "Message received 3.02 seconds after request: ,\n", + "Message received 3.03 seconds after request: \n", + "Message received 3.09 seconds after request: 24\n", + "Message received 3.09 seconds after request: ,\n", + "Message received 3.09 seconds after request: \n", + "Message received 3.15 seconds after request: 25\n", + "Message received 3.15 seconds after request: ,\n", + "Message received 3.16 seconds after request: \n", + "Message received 3.22 seconds after request: 26\n", + "Message received 3.22 seconds after request: ,\n", + "Message received 3.22 seconds after request: \n", + "Message received 3.30 seconds after request: 27\n", + "Message received 3.30 seconds after request: ,\n", + "Message received 3.30 seconds after request: \n", + "Message received 3.37 seconds after request: 28\n", + "Message received 3.37 seconds after request: ,\n", + "Message received 3.37 seconds after request: \n", + "Message received 3.55 seconds after request: 29\n", + "Message received 3.55 seconds after request: ,\n", + "Message received 3.55 seconds after request: \n", + "Message received 3.55 seconds after request: 30\n", + "Message received 3.55 seconds after request: ,\n", + "Message received 3.55 seconds after request: \n", + "Message received 3.55 seconds after request: 31\n", + "Message received 3.55 seconds after request: ,\n", + "Message received 3.56 seconds after request: \n", + "Message received 3.56 seconds after request: 32\n", + "Message received 3.56 seconds after request: ,\n", + "Message received 3.56 seconds after request: \n", + "Message received 3.56 seconds after request: 33\n", + "Message received 3.56 seconds after request: ,\n", + "Message received 3.56 seconds after request: \n", + "Message received 3.60 seconds after request: 34\n", + "Message received 3.60 seconds after request: ,\n", + "Message received 3.60 seconds after request: \n", + "Message received 3.63 seconds after request: 35\n", + "Message received 3.63 seconds after request: ,\n", + "Message received 3.63 seconds after request: \n", + "Message received 3.95 seconds after request: 36\n", + "Message received 3.95 seconds after request: ,\n", + "Message received 3.95 seconds after request: \n", + "Message received 4.02 seconds after request: 37\n", + "Message received 4.02 seconds after request: ,\n", + "Message received 4.02 seconds after request: \n", + "Message received 4.08 seconds after request: 38\n", + "Message received 4.08 seconds after request: ,\n", + "Message received 4.08 seconds after request: \n", + "Message received 4.17 seconds after request: 39\n", + "Message received 4.17 seconds after request: ,\n", + "Message received 4.17 seconds after request: \n", + "Message received 4.22 seconds after request: 40\n", + "Message received 4.22 seconds after request: ,\n", + "Message received 4.22 seconds after request: \n", + "Message received 4.29 seconds after request: 41\n", + "Message received 4.29 seconds after request: ,\n", + "Message received 4.29 seconds after request: \n", + "Message received 4.37 seconds after request: 42\n", + "Message received 4.37 seconds after request: ,\n", + "Message received 4.37 seconds after request: \n", + "Message received 4.37 seconds after request: 43\n", + "Message received 4.37 seconds after request: ,\n", + "Message received 4.37 seconds after request: \n", + "Message received 4.37 seconds after request: 44\n", + "Message received 4.37 seconds after request: ,\n", + "Message received 4.37 seconds after request: \n", + "Message received 4.38 seconds after request: 45\n", + "Message received 4.38 seconds after request: ,\n", + "Message received 4.38 seconds after request: \n", + "Message received 4.39 seconds after request: 46\n", + "Message received 4.39 seconds after request: ,\n", + "Message received 4.39 seconds after request: \n", + "Message received 4.66 seconds after request: 47\n", + "Message received 4.66 seconds after request: ,\n", + "Message received 4.66 seconds after request: \n", + "Message received 4.66 seconds after request: 48\n", + "Message received 4.66 seconds after request: ,\n", + "Message received 4.66 seconds after request: \n", + "Message received 4.66 seconds after request: 49\n", + "Message received 4.66 seconds after request: ,\n", + "Message received 4.66 seconds after request: \n", + "Message received 4.69 seconds after request: 50\n", + "Message received 4.69 seconds after request: ,\n", + "Message received 4.69 seconds after request: \n", + "Message received 4.80 seconds after request: 51\n", + "Message received 4.80 seconds after request: ,\n", + "Message received 4.80 seconds after request: \n", + "Message received 4.83 seconds after request: 52\n", + "Message received 4.83 seconds after request: ,\n", + "Message received 4.83 seconds after request: \n", + "Message received 4.95 seconds after request: 53\n", + "Message received 4.95 seconds after request: ,\n", + "Message received 4.95 seconds after request: \n", + "Message received 4.97 seconds after request: 54\n", + "Message received 4.97 seconds after request: ,\n", + "Message received 4.97 seconds after request: \n", + "Message received 5.31 seconds after request: 55\n", + "Message received 5.31 seconds after request: ,\n", + "Message received 5.31 seconds after request: \n", + "Message received 5.37 seconds after request: 56\n", + "Message received 5.37 seconds after request: ,\n", + "Message received 5.37 seconds after request: \n", + "Message received 5.47 seconds after request: 57\n", + "Message received 5.47 seconds after request: ,\n", + "Message received 5.47 seconds after request: \n", + "Message received 5.54 seconds after request: 58\n", + "Message received 5.54 seconds after request: ,\n", + "Message received 5.54 seconds after request: \n", + "Message received 5.60 seconds after request: 59\n", + "Message received 5.60 seconds after request: ,\n", + "Message received 5.60 seconds after request: \n", + "Message received 5.66 seconds after request: 60\n", + "Message received 5.66 seconds after request: ,\n", + "Message received 5.66 seconds after request: \n", + "Message received 5.67 seconds after request: 61\n", + "Message received 5.67 seconds after request: ,\n", + "Message received 5.67 seconds after request: \n", + "Message received 5.67 seconds after request: 62\n", + "Message received 5.67 seconds after request: ,\n", + "Message received 5.67 seconds after request: \n", + "Message received 5.67 seconds after request: 63\n", + "Message received 5.67 seconds after request: ,\n", + "Message received 5.67 seconds after request: \n", + "Message received 5.69 seconds after request: 64\n", + "Message received 5.69 seconds after request: ,\n", + "Message received 5.69 seconds after request: \n", + "Message received 5.95 seconds after request: 65\n", + "Message received 5.95 seconds after request: ,\n", + "Message received 5.95 seconds after request: \n", + "Message received 5.95 seconds after request: 66\n", + "Message received 5.95 seconds after request: ,\n", + "Message received 5.95 seconds after request: \n", + "Message received 5.95 seconds after request: 67\n", + "Message received 5.95 seconds after request: ,\n", + "Message received 5.95 seconds after request: \n", + "Message received 5.97 seconds after request: 68\n", + "Message received 5.97 seconds after request: ,\n", + "Message received 5.97 seconds after request: \n", + "Message received 6.08 seconds after request: 69\n", + "Message received 6.08 seconds after request: ,\n", + "Message received 6.08 seconds after request: \n", + "Message received 6.10 seconds after request: 70\n", + "Message received 6.10 seconds after request: ,\n", + "Message received 6.10 seconds after request: \n", + "Message received 6.17 seconds after request: 71\n", + "Message received 6.17 seconds after request: ,\n", + "Message received 6.17 seconds after request: \n", + "Message received 6.24 seconds after request: 72\n", + "Message received 6.24 seconds after request: ,\n", + "Message received 6.24 seconds after request: \n", + "Message received 6.35 seconds after request: 73\n", + "Message received 6.35 seconds after request: ,\n", + "Message received 6.35 seconds after request: \n", + "Message received 6.37 seconds after request: 74\n", + "Message received 6.37 seconds after request: ,\n", + "Message received 6.37 seconds after request: \n", + "Message received 6.45 seconds after request: 75\n", + "Message received 6.45 seconds after request: ,\n", + "Message received 6.45 seconds after request: \n", + "Message received 6.52 seconds after request: 76\n", + "Message received 6.52 seconds after request: ,\n", + "Message received 6.52 seconds after request: \n", + "Message received 6.59 seconds after request: 77\n", + "Message received 6.59 seconds after request: ,\n", + "Message received 6.59 seconds after request: \n", + "Message received 6.83 seconds after request: 78\n", + "Message received 6.83 seconds after request: ,\n", + "Message received 6.83 seconds after request: \n", + "Message received 6.83 seconds after request: 79\n", + "Message received 6.84 seconds after request: ,\n", + "Message received 6.84 seconds after request: \n", + "Message received 6.84 seconds after request: 80\n", + "Message received 6.84 seconds after request: ,\n", + "Message received 6.84 seconds after request: \n", + "Message received 6.85 seconds after request: 81\n", + "Message received 6.85 seconds after request: ,\n", + "Message received 6.85 seconds after request: \n", + "Message received 6.92 seconds after request: 82\n", + "Message received 6.92 seconds after request: ,\n", + "Message received 6.92 seconds after request: \n", + "Message received 7.23 seconds after request: 83\n", + "Message received 7.23 seconds after request: ,\n", + "Message received 7.23 seconds after request: \n", + "Message received 7.30 seconds after request: 84\n", + "Message received 7.30 seconds after request: ,\n", + "Message received 7.30 seconds after request: \n", + "Message received 7.37 seconds after request: 85\n", + "Message received 7.37 seconds after request: ,\n", + "Message received 7.37 seconds after request: \n", + "Message received 7.43 seconds after request: 86\n", + "Message received 7.43 seconds after request: ,\n", + "Message received 7.43 seconds after request: \n", + "Message received 7.70 seconds after request: 87\n", + "Message received 7.70 seconds after request: ,\n", + "Message received 7.70 seconds after request: \n", + "Message received 7.71 seconds after request: 88\n", + "Message received 7.71 seconds after request: ,\n", + "Message received 7.71 seconds after request: \n", + "Message received 7.73 seconds after request: 89\n", + "Message received 7.73 seconds after request: ,\n", + "Message received 7.73 seconds after request: \n", + "Message received 7.80 seconds after request: 90\n", + "Message received 7.80 seconds after request: ,\n", + "Message received 7.80 seconds after request: \n", + "Message received 7.80 seconds after request: 91\n", + "Message received 7.80 seconds after request: ,\n", + "Message received 7.80 seconds after request: \n", + "Message received 7.80 seconds after request: 92\n", + "Message received 7.80 seconds after request: ,\n", + "Message received 7.80 seconds after request: \n", + "Message received 7.80 seconds after request: 93\n", + "Message received 7.80 seconds after request: ,\n", + "Message received 7.80 seconds after request: \n", + "Message received 7.82 seconds after request: 94\n", + "Message received 7.82 seconds after request: ,\n", + "Message received 7.82 seconds after request: \n", + "Message received 7.90 seconds after request: 95\n", + "Message received 7.90 seconds after request: ,\n", + "Message received 7.90 seconds after request: \n", + "Message received 7.96 seconds after request: 96\n", + "Message received 7.96 seconds after request: ,\n", + "Message received 7.97 seconds after request: \n", + "Message received 8.13 seconds after request: 97\n", + "Message received 8.14 seconds after request: ,\n", + "Message received 8.14 seconds after request: \n", + "Message received 8.14 seconds after request: 98\n", + "Message received 8.14 seconds after request: ,\n", + "Message received 8.14 seconds after request: \n", + "Message received 8.16 seconds after request: 99\n", + "Message received 8.16 seconds after request: ,\n", + "Message received 8.16 seconds after request: \n", + "Message received 8.16 seconds after request: 100\n", + "Message received 8.16 seconds after request: .\n", + "Message received 8.16 seconds after request: None\n", + "Full response received 8.16 seconds after request\n", + "Full conversation received: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100.\n" ] } ], @@ -1198,7 +529,7 @@ "start_time = time.time()\n", "\n", "# send a ChatCompletion request to count to 100\n", - "response = openai.ChatCompletion.create(\n", + "completion = client.chat.completions.create(\n", " model='gpt-3.5-turbo',\n", " messages=[\n", " {'role': 'user', 'content': 'Count to 100, with a comma between each number and no newlines. E.g., 1, 2, 3, ...'}\n", @@ -1206,21 +537,22 @@ " temperature=0,\n", " stream=True # again, we set stream=True\n", ")\n", - "\n", "# create variables to collect the stream of chunks\n", "collected_chunks = []\n", "collected_messages = []\n", "# iterate through the stream of events\n", - "for chunk in response:\n", + "for chunk in completion:\n", " chunk_time = time.time() - start_time # calculate the time delay of the chunk\n", " collected_chunks.append(chunk) # save the event response\n", - " chunk_message = chunk['choices'][0]['delta'] # extract the message\n", + " chunk_message = chunk.choices[0].delta.content # extract the message\n", " collected_messages.append(chunk_message) # save the message\n", " print(f\"Message received {chunk_time:.2f} seconds after request: {chunk_message}\") # print the delay and text\n", "\n", "# print the time delay and text received\n", "print(f\"Full response received {chunk_time:.2f} seconds after request\")\n", - "full_reply_content = ''.join([m.get('content', '') for m in collected_messages])\n", + "# clean None in collected_messages\n", + "collected_messages = [m for m in collected_messages if m is not None]\n", + "full_reply_content = ''.join([m for m in collected_messages])\n", "print(f\"Full conversation received: {full_reply_content}\")\n" ] }, @@ -1235,330 +567,6 @@ "\n", "However, with the streaming request, we received the first token after 0.1 seconds, and subsequent tokens every ~0.01-0.02 seconds." ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4. How to stream non-chat completions (used by older models like `text-davinci-003`)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### A typical completion request\n", - "\n", - "With a typical Completions API call, the text is first computed and then returned all at once." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Full response received 3.43 seconds after request\n", - "Full text received: 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100\n" - ] - } - ], - "source": [ - "# Example of an OpenAI Completion request\n", - "# https://beta.openai.com/docs/api-reference/completions/create\n", - "\n", - "# record the time before the request is sent\n", - "start_time = time.time()\n", - "\n", - "# send a Completion request to count to 100\n", - "response = openai.Completion.create(\n", - " model='text-davinci-002',\n", - " prompt='1,2,3,',\n", - " max_tokens=193,\n", - " temperature=0,\n", - ")\n", - "\n", - "# calculate the time it took to receive the response\n", - "response_time = time.time() - start_time\n", - "\n", - "# extract the text from the response\n", - "completion_text = response['choices'][0]['text']\n", - "\n", - "# print the time delay and text received\n", - "print(f\"Full response received {response_time:.2f} seconds after request\")\n", - "print(f\"Full text received: {completion_text}\")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### A streaming completion request\n", - "\n", - "With a streaming Completions API call, the text is sent back via a series of events. In Python, you can iterate over these events with a `for` loop." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Text received: 4 (0.18 seconds after request)\n", - "Text received: , (0.19 seconds after request)\n", - "Text received: 5 (0.21 seconds after request)\n", - "Text received: , (0.23 seconds after request)\n", - "Text received: 6 (0.25 seconds after request)\n", - "Text received: , (0.26 seconds after request)\n", - "Text received: 7 (0.28 seconds after request)\n", - "Text received: , (0.29 seconds after request)\n", - "Text received: 8 (0.31 seconds after request)\n", - "Text received: , (0.33 seconds after request)\n", - "Text received: 9 (0.35 seconds after request)\n", - "Text received: , (0.36 seconds after request)\n", - "Text received: 10 (0.38 seconds after request)\n", - "Text received: , (0.39 seconds after request)\n", - "Text received: 11 (0.41 seconds after request)\n", - "Text received: , (0.42 seconds after request)\n", - "Text received: 12 (0.44 seconds after request)\n", - "Text received: , (0.45 seconds after request)\n", - "Text received: 13 (0.47 seconds after request)\n", - "Text received: , (0.48 seconds after request)\n", - "Text received: 14 (0.50 seconds after request)\n", - "Text received: , (0.51 seconds after request)\n", - "Text received: 15 (0.53 seconds after request)\n", - "Text received: , (0.54 seconds after request)\n", - "Text received: 16 (0.56 seconds after request)\n", - "Text received: , (0.57 seconds after request)\n", - "Text received: 17 (0.59 seconds after request)\n", - "Text received: , (0.62 seconds after request)\n", - "Text received: 18 (0.62 seconds after request)\n", - "Text received: , (0.63 seconds after request)\n", - "Text received: 19 (0.64 seconds after request)\n", - "Text received: , (0.66 seconds after request)\n", - "Text received: 20 (0.67 seconds after request)\n", - "Text received: , (0.68 seconds after request)\n", - "Text received: 21 (0.70 seconds after request)\n", - "Text received: , (0.71 seconds after request)\n", - "Text received: 22 (0.73 seconds after request)\n", - "Text received: , (0.74 seconds after request)\n", - "Text received: 23 (0.76 seconds after request)\n", - "Text received: , (0.77 seconds after request)\n", - "Text received: 24 (0.78 seconds after request)\n", - "Text received: , (0.80 seconds after request)\n", - "Text received: 25 (0.81 seconds after request)\n", - "Text received: , (0.82 seconds after request)\n", - "Text received: 26 (0.84 seconds after request)\n", - "Text received: , (0.85 seconds after request)\n", - "Text received: 27 (0.89 seconds after request)\n", - "Text received: , (0.90 seconds after request)\n", - "Text received: 28 (0.90 seconds after request)\n", - "Text received: , (0.91 seconds after request)\n", - "Text received: 29 (0.92 seconds after request)\n", - "Text received: , (0.94 seconds after request)\n", - "Text received: 30 (0.95 seconds after request)\n", - "Text received: , (0.96 seconds after request)\n", - "Text received: 31 (0.97 seconds after request)\n", - "Text received: , (0.99 seconds after request)\n", - "Text received: 32 (1.00 seconds after request)\n", - "Text received: , (1.01 seconds after request)\n", - "Text received: 33 (1.03 seconds after request)\n", - "Text received: , (1.04 seconds after request)\n", - "Text received: 34 (1.05 seconds after request)\n", - "Text received: , (1.07 seconds after request)\n", - "Text received: 35 (1.08 seconds after request)\n", - "Text received: , (1.10 seconds after request)\n", - "Text received: 36 (1.11 seconds after request)\n", - "Text received: , (1.12 seconds after request)\n", - "Text received: 37 (1.13 seconds after request)\n", - "Text received: , (1.15 seconds after request)\n", - "Text received: 38 (1.16 seconds after request)\n", - "Text received: , (1.18 seconds after request)\n", - "Text received: 39 (1.19 seconds after request)\n", - "Text received: , (1.20 seconds after request)\n", - "Text received: 40 (1.22 seconds after request)\n", - "Text received: , (1.24 seconds after request)\n", - "Text received: 41 (1.25 seconds after request)\n", - "Text received: , (1.26 seconds after request)\n", - "Text received: 42 (1.27 seconds after request)\n", - "Text received: , (1.29 seconds after request)\n", - "Text received: 43 (1.30 seconds after request)\n", - "Text received: , (1.31 seconds after request)\n", - "Text received: 44 (1.32 seconds after request)\n", - "Text received: , (1.34 seconds after request)\n", - "Text received: 45 (1.35 seconds after request)\n", - "Text received: , (1.36 seconds after request)\n", - "Text received: 46 (1.38 seconds after request)\n", - "Text received: , (1.39 seconds after request)\n", - "Text received: 47 (1.40 seconds after request)\n", - "Text received: , (1.42 seconds after request)\n", - "Text received: 48 (1.43 seconds after request)\n", - "Text received: , (1.45 seconds after request)\n", - "Text received: 49 (1.47 seconds after request)\n", - "Text received: , (1.47 seconds after request)\n", - "Text received: 50 (1.49 seconds after request)\n", - "Text received: , (1.50 seconds after request)\n", - "Text received: 51 (1.51 seconds after request)\n", - "Text received: , (1.53 seconds after request)\n", - "Text received: 52 (1.54 seconds after request)\n", - "Text received: , (1.55 seconds after request)\n", - "Text received: 53 (1.57 seconds after request)\n", - "Text received: , (1.58 seconds after request)\n", - "Text received: 54 (1.59 seconds after request)\n", - "Text received: , (1.61 seconds after request)\n", - "Text received: 55 (1.62 seconds after request)\n", - "Text received: , (1.64 seconds after request)\n", - "Text received: 56 (1.65 seconds after request)\n", - "Text received: , (1.66 seconds after request)\n", - "Text received: 57 (1.69 seconds after request)\n", - "Text received: , (1.69 seconds after request)\n", - "Text received: 58 (1.70 seconds after request)\n", - "Text received: , (1.72 seconds after request)\n", - "Text received: 59 (1.73 seconds after request)\n", - "Text received: , (1.74 seconds after request)\n", - "Text received: 60 (1.76 seconds after request)\n", - "Text received: , (1.77 seconds after request)\n", - "Text received: 61 (1.78 seconds after request)\n", - "Text received: , (1.80 seconds after request)\n", - "Text received: 62 (1.81 seconds after request)\n", - "Text received: , (1.83 seconds after request)\n", - "Text received: 63 (1.84 seconds after request)\n", - "Text received: , (1.85 seconds after request)\n", - "Text received: 64 (1.86 seconds after request)\n", - "Text received: , (1.88 seconds after request)\n", - "Text received: 65 (1.89 seconds after request)\n", - "Text received: , (1.90 seconds after request)\n", - "Text received: 66 (1.92 seconds after request)\n", - "Text received: , (1.93 seconds after request)\n", - "Text received: 67 (1.95 seconds after request)\n", - "Text received: , (1.96 seconds after request)\n", - "Text received: 68 (1.99 seconds after request)\n", - "Text received: , (1.99 seconds after request)\n", - "Text received: 69 (2.00 seconds after request)\n", - "Text received: , (2.01 seconds after request)\n", - "Text received: 70 (2.03 seconds after request)\n", - "Text received: , (2.04 seconds after request)\n", - "Text received: 71 (2.05 seconds after request)\n", - "Text received: , (2.07 seconds after request)\n", - "Text received: 72 (2.08 seconds after request)\n", - "Text received: , (2.09 seconds after request)\n", - "Text received: 73 (2.11 seconds after request)\n", - "Text received: , (2.12 seconds after request)\n", - "Text received: 74 (2.13 seconds after request)\n", - "Text received: , (2.15 seconds after request)\n", - "Text received: 75 (2.16 seconds after request)\n", - "Text received: , (2.17 seconds after request)\n", - "Text received: 76 (2.18 seconds after request)\n", - "Text received: , (2.20 seconds after request)\n", - "Text received: 77 (2.22 seconds after request)\n", - "Text received: , (2.23 seconds after request)\n", - "Text received: 78 (2.24 seconds after request)\n", - "Text received: , (2.25 seconds after request)\n", - "Text received: 79 (2.26 seconds after request)\n", - "Text received: , (2.28 seconds after request)\n", - "Text received: 80 (2.28 seconds after request)\n", - "Text received: , (2.29 seconds after request)\n", - "Text received: 81 (2.30 seconds after request)\n", - "Text received: , (2.31 seconds after request)\n", - "Text received: 82 (2.33 seconds after request)\n", - "Text received: , (2.34 seconds after request)\n", - "Text received: 83 (2.35 seconds after request)\n", - "Text received: , (2.36 seconds after request)\n", - "Text received: 84 (2.37 seconds after request)\n", - "Text received: , (2.39 seconds after request)\n", - "Text received: 85 (2.39 seconds after request)\n", - "Text received: , (2.40 seconds after request)\n", - "Text received: 86 (2.43 seconds after request)\n", - "Text received: , (2.43 seconds after request)\n", - "Text received: 87 (2.44 seconds after request)\n", - "Text received: , (2.45 seconds after request)\n", - "Text received: 88 (2.46 seconds after request)\n", - "Text received: , (2.47 seconds after request)\n", - "Text received: 89 (2.48 seconds after request)\n", - "Text received: , (2.49 seconds after request)\n", - "Text received: 90 (2.50 seconds after request)\n", - "Text received: , (2.51 seconds after request)\n", - "Text received: 91 (2.52 seconds after request)\n", - "Text received: , (2.54 seconds after request)\n", - "Text received: 92 (2.55 seconds after request)\n", - "Text received: , (2.57 seconds after request)\n", - "Text received: 93 (2.57 seconds after request)\n", - "Text received: , (2.58 seconds after request)\n", - "Text received: 94 (2.59 seconds after request)\n", - "Text received: , (2.60 seconds after request)\n", - "Text received: 95 (2.62 seconds after request)\n", - "Text received: , (2.62 seconds after request)\n", - "Text received: 96 (2.64 seconds after request)\n", - "Text received: , (2.65 seconds after request)\n", - "Text received: 97 (2.66 seconds after request)\n", - "Text received: , (2.67 seconds after request)\n", - "Text received: 98 (2.68 seconds after request)\n", - "Text received: , (2.69 seconds after request)\n", - "Text received: 99 (2.71 seconds after request)\n", - "Text received: , (2.72 seconds after request)\n", - "Text received: 100 (2.73 seconds after request)\n", - "Full response received 2.73 seconds after request\n", - "Full text received: 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100\n" - ] - } - ], - "source": [ - "# Example of an OpenAI Completion request, using the stream=True option\n", - "# https://beta.openai.com/docs/api-reference/completions/create\n", - "\n", - "# record the time before the request is sent\n", - "start_time = time.time()\n", - "\n", - "# send a Completion request to count to 100\n", - "response = openai.Completion.create(\n", - " model='text-davinci-002',\n", - " prompt='1,2,3,',\n", - " max_tokens=193,\n", - " temperature=0,\n", - " stream=True, # this time, we set stream=True\n", - ")\n", - "\n", - "# create variables to collect the stream of events\n", - "collected_events = []\n", - "completion_text = ''\n", - "# iterate through the stream of events\n", - "for event in response:\n", - " event_time = time.time() - start_time # calculate the time delay of the event\n", - " collected_events.append(event) # save the event response\n", - " event_text = event['choices'][0]['text'] # extract the text\n", - " completion_text += event_text # append the text\n", - " print(f\"Text received: {event_text} ({event_time:.2f} seconds after request)\") # print the delay and text\n", - "\n", - "# print the time delay and text received\n", - "print(f\"Full response received {event_time:.2f} seconds after request\")\n", - "print(f\"Full text received: {completion_text}\")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Time comparison\n", - "\n", - "In the example above, both requests took about 3 seconds to fully complete. Request times will vary depending on load and other stochastic factors.\n", - "\n", - "However, with the streaming request, we received the first token after 0.18 seconds, and subsequent tokens every ~0.01-0.02 seconds." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [] } ], "metadata": { @@ -1577,7 +585,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.9" + "version": "3.10.12" }, "orig_nbformat": 4, "vscode": { diff --git a/registry.yaml b/registry.yaml index 73c42f9..6f2871d 100644 --- a/registry.yaml +++ b/registry.yaml @@ -195,9 +195,11 @@ date: 2022-09-02 authors: - ted-at-openai + - nghiauet tags: - completions - tiktoken + - streaming - title: Multiclass Classification for Transactions path: examples/Multiclass_classification_for_transactions.ipynb