(in-package #:cl-openai) (defvar +openai-base-uri+ "api.openai.com") ;; How to remove this "REMOVE NIL" instruction? I'm pretty sure I've ;; seen it before in this macro `(when ,thing ,@(thing)) thingy. (defun additional-api-args (&rest args &key (content-type "application/json") &allow-other-keys) (remove nil `(:additional-headers ,(bearer-auth) :content-type ,content-type :external-format-in :utf-8 :external-format-out :utf-8 :force-binary t ,@args))) (defun decode-json-from-octets-string (octets) (cl-json:decode-json-from-string (flex:octets-to-string octets))) (defun json-decode-http-request-to-string (uri &rest args) (decode-json-from-octets-string (apply #'drakma:http-request uri (apply #'additional-api-args args)))) (defun server-path (&optional path) (format nil "https://~a~:[~;/~a~]" +openai-base-uri+ path path))