summaryrefslogtreecommitdiff
path: root/py/complete.py
blob: 705dd904100daf830d46835a5343e7f954d81ced (plain)
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
import openai

# import utils
plugin_root = vim.eval("s:plugin_root")
vim.command(f"py3file {plugin_root}/py/utils.py")

prompt = vim.eval("prompt")

openai.api_key = load_api_key()

if prompt.strip():

    response = openai.Completion.create(
        model="text-davinci-003",
        prompt=prompt,
        max_tokens=1000,
        temperature=0.1,
        stream=True,
    )

    generating_text = False
    for resp in response:
        text = resp['choices'][0].get('text', '')
        if not text.strip() and not generating_text:
            continue # trim newlines from the beginning

        generating_text = True
        vim.command("normal! a" + text)
        vim.command("redraw")