using OpenAI npm in Deno deploy playground:
i don't know how to return the resualt , now this just return [object Object]
i don't how to use async await
this is my code:
import OpenAI from "npm:openai";
const openai = new OpenAI();
openai.baseURL = "https://cn.gptapi.asia/v1"
console.log(openai.baseURL)
async function main() {
const completion = await openai.chat.completions.create({
messages: [{ role: "system", content: "You are a helpful assistant." }],
model: "gpt-3.5-turbo",
});
console.log(completion.choices[0]);
return completion.choices[0]
}
const resualt = await main();
Deno.serve((req) => new Response(resualt));
3 Replies
Based on the documentation, it seems like you're trying to use the OpenAI npm package in a Deno environment and return the result of a GPT-3 completion as a server response. However, there are a few issues with your code.
Firstly, the OpenAI npm package is not directly compatible with Deno. Deno does not support npm packages out of the box. You might need to find a Deno-compatible version of the OpenAI package or use a compatibility layer like
deno.land/x/denofun
.
Secondly, the Deno.serve
function is not used correctly. According to the documentation, Deno.serve
is a function that creates a server and takes an object with a port
property as an argument. It returns an async iterable that yields connections. You would need to use a loop to handle these connections and respond to HTTP requests.
Here's an example of how you might set up a server in Deno:
In your case, you would replace "Hello World\n"
with the result of your OpenAI completion. However, you need to make sure that the result is a string, as the body
property of the response expects a string or Uint8Array
. If completion.choices[0]
is an object, you might need to use JSON.stringify
to convert it to a string.
Please note that this advice is not directly from the documentation and might not work as expected due to the incompatibility between npm packages and Deno. 🦕maybe try JSON.stringify ?
thank you, i already fix this
import OpenAI from "npm:openai";
const openai = new OpenAI();
openai.baseURL = "https://cn.gptapi.asia/v1"
console.log(openai.baseURL)
async function main(model,context,question) {
const completion = await openai.chat.completions.create({
// messages: [{ role: "system", content: question }],
model: model,
messages: [{ role: "user", content: context }],
messages: [{ role: "user", content: question }],
}); console.log(completion); return completion.choices[0].message.content } const kv = await Deno.openKv(); Deno.serve(async (req) => { if (req.body) {
const body = await req.json(); console.log("Body:", body);
const result = await main(body.model,body.context,body.question);
console.log(result); const jsonResult = JSON.stringify({result:result}); const prefs = { model:body.model, context:body.context, question:body.question, answer:result } const resultFromKV = await kv.set(["log", "alimjan",Date.now(), crypto.randomUUID()], prefs); return new Response(jsonResult, { headers: { "Content-Type": "application/json", }, }); } return new Response("Hello, World!"); });
}); console.log(completion); return completion.choices[0].message.content } const kv = await Deno.openKv(); Deno.serve(async (req) => { if (req.body) {
const body = await req.json(); console.log("Body:", body);
const result = await main(body.model,body.context,body.question);
console.log(result); const jsonResult = JSON.stringify({result:result}); const prefs = { model:body.model, context:body.context, question:body.question, answer:result } const resultFromKV = await kv.set(["log", "alimjan",Date.now(), crypto.randomUUID()], prefs); return new Response(jsonResult, { headers: { "Content-Type": "application/json", }, }); } return new Response("Hello, World!"); });