Skip to content

Latest commit

 

History

History
82 lines (58 loc) · 2.2 KB

README.md

File metadata and controls

82 lines (58 loc) · 2.2 KB

PyOpenAI

Github top language GitHub code size in bytes

An attempt to reimplement python OpenAI API bindings in nim

Project Status

  • 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

What is implemented

Installation

To install pyopenai, you can simply run

nimble install pyopenai

Requisites

Example

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())