diff options
| author | Martin Bielik <mx.bielik@gmail.com> | 2023-03-13 20:52:45 +0100 |
|---|---|---|
| committer | Martin Bielik <mx.bielik@gmail.com> | 2023-03-13 20:52:45 +0100 |
| commit | 60f123341288df77a466528f2f1875f81c0cc450 (patch) | |
| tree | 975c2c3cc7b72bd1dfe61691af15e9722ef1ea1d /py/chat.py | |
| parent | 81d6561754df9f7d544bbab0047e09ac27f86728 (diff) | |
| download | vim-ai-60f123341288df77a466528f2f1875f81c0cc450.tar.gz | |
stream complete/edit commands
Diffstat (limited to 'py/chat.py')
| -rw-r--r-- | py/chat.py | 32 |
1 files changed, 18 insertions, 14 deletions
@@ -29,20 +29,24 @@ if not messages: file_content = ">>> user\n\n" + file_content messages.append({"role": "user", "content": file_content }) -vim.command("normal! Go\n<<< assistant\n\n") -vim.command("redraw") - -response = openai.ChatCompletion.create( - model="gpt-3.5-turbo", - messages=messages, - stream=True, -) - -for resp in response: - if 'content' in resp['choices'][0]['delta']: - text = resp['choices'][0]['delta']['content'] +if messages[-1]["content"].strip(): + + vim.command("normal! Go\n<<< assistant\n\n") + vim.command("redraw") + + response = openai.ChatCompletion.create( + model="gpt-3.5-turbo", + messages=messages, + stream=True, + ) + + generating_text = False + for resp in response: + text = resp['choices'][0]['delta'].get('content', '') + if not text.strip() and not generating_text: + continue # trim newlines from the beginning vim.command("normal! a" + text) vim.command("redraw") -vim.command("normal! a\n\n>>> user\n") -vim.command("redraw") + vim.command("normal! a\n\n>>> user\n\n") + vim.command("redraw") |