ref: 8722f3bed54f9d2a2899f604261a0ac5c74d13eb
dir: /oai.c/
#include <u.h>
#include <libc.h>
#include <bio.h>
#include "oai.h"
static void
usage(void)
{
fprint(2, "usage: %s [-k apikey] [-m model] baseurl\n", argv0);
exits("usage");
}
void
main(int argc, char **argv)
{
Biobuf *bin;
char *s;
ORequest req;
OResult res;
char *key = nil;
req.model = nil;
ARGBEGIN{
case 'h':
usage();
case 'k':
key = EARGF(usage());
break;
case 'm':
req.model = EARGF(usage());
break;
}ARGEND;
if (argc != 1)
usage();
if (!initoai(argv[0], key))
usage();
bin = Bfdopen(0, OREAD);
assert(bin);
print("user: ");
while (s = Brdstr(bin, '\n', 1)) {
req.prompts = mallocz(sizeof(OPrompt), 1);
assert(req.prompts);
req.prompts->role = "user";
req.prompts->content = s;
res = makerequest(req);
print("%s: %s\n\n", res.role, res.message);
free(req.prompts);
free(s);
print("user: ");
}
exits(nil);
}