An attempt to reimplement python OpenAI API bindings in nim
- streams not implemented
- async not implemented
- not fully tested so if you encounter errors open an issue
If you need features that are not implemented yet, try openaiclient
To install pyopenai, you can simply run
nimble install pyopenai
- Uninstall with
nimble uninstall pyopenai
. - Nimble repo page
import pyopenai, json, os
var openai = OpenAiClient(
apiKey: getEnv("OPENAI_API_KEY")
)
let response = openai.createCompletion(
model = "text-davinci-003",
prompt = "nim is the best programming language",
temperature = 0.6,
maxTokens = 500
)
echo(response["choices"][0]["text"].getStr())
echo()
var chatMessages: seq[JsonNode]
chatMessages.add(
%*{"role": "user", "content": "nim is the best programming language"}
)
let resp = openai.createChatCompletion(
model = "gpt-3.5-turbo",
messages = chatMessages,
temperature = 0.5,
maxTokens = 1000
)
chatMessages.add(
resp["choices"][0]["message"]
)
echo(resp["choices"][0]["message"]["content"].getStr())