Spaces:
Paused
Paused
import { GoogleCustomSearch } from "openai-function-calling-tools"; | |
import { LLMError, LLMStream } from './stream'; | |
const handler = async (req, res) => { | |
try { | |
const { question } = (await req.body); | |
const googleCustomSearch = new GoogleCustomSearch({ | |
apiKey: process.env.API_KEY, | |
googleCSEId: process.env.CONTEXT_KEY, | |
}); | |
const messages = [ | |
{ | |
role: "user", | |
content: question, | |
}, | |
]; | |
const functions = { | |
googleCustomSearch | |
}; | |
let promptToSend = "You are a helpful assistant, a search term is provided and you are given search results to help provide a useful response."; | |
const stream = await LLMStream({ id: "gpt-3.5-turbo-0613" }, promptToSend, 0.8, messages, functions); | |
let data = ''; | |
const decoder = new TextDecoder(); | |
for await (const chunk of stream) { | |
data += decoder.decode(chunk); | |
res.write(data); | |
} | |
return res.end(); | |
} catch (error) { | |
console.error(error); | |
if (error instanceof LLMError) { | |
return new Response('Error', { status: 500, statusText: error.message }); | |
} else { | |
return new Response('Error', { status: 500 }); | |
} | |
} | |
}; | |
export default handler; |