Spaces:
Runtime error
Runtime error
matt HOFFNER
commited on
Commit
·
b202e70
1
Parent(s):
c790ee9
it works
Browse files- pages/api/chat.ts +6 -1
- utils/server/index.ts +10 -22
pages/api/chat.ts
CHANGED
|
@@ -15,7 +15,12 @@ export const config = {
|
|
| 15 |
|
| 16 |
const handler = async (req: Request): Promise<Response> => {
|
| 17 |
try {
|
| 18 |
-
const
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
|
| 20 |
await init((imports) => WebAssembly.instantiate(wasm, imports));
|
| 21 |
const encoding = new Tiktoken(
|
|
|
|
| 15 |
|
| 16 |
const handler = async (req: Request): Promise<Response> => {
|
| 17 |
try {
|
| 18 |
+
const chatBody = (await req.json()) as ChatBody;
|
| 19 |
+
let prompt = chatBody?.prompt;
|
| 20 |
+
let temperature = chatBody?.temperature;
|
| 21 |
+
let messages = chatBody?.messages;
|
| 22 |
+
let model = chatBody?.model;
|
| 23 |
+
let key = chatBody?.key;
|
| 24 |
|
| 25 |
await init((imports) => WebAssembly.instantiate(wasm, imports));
|
| 26 |
const encoding = new Tiktoken(
|
utils/server/index.ts
CHANGED
|
@@ -31,25 +31,12 @@ export const OpenAIStream = async (
|
|
| 31 |
messages: Message[],
|
| 32 |
) => {
|
| 33 |
let url = `${OPENAI_API_HOST}/v1/chat/completions`;
|
| 34 |
-
if (OPENAI_API_TYPE === 'azure') {
|
| 35 |
-
url = `${OPENAI_API_HOST}/openai/deployments/${AZURE_DEPLOYMENT_ID}/chat/completions?api-version=${OPENAI_API_VERSION}`;
|
| 36 |
-
}
|
| 37 |
const res = await fetch(url, {
|
| 38 |
headers: {
|
| 39 |
-
'Content-Type': 'application/json'
|
| 40 |
-
...(OPENAI_API_TYPE === 'openai' && {
|
| 41 |
-
Authorization: `Bearer ${key ? key : process.env.OPENAI_API_KEY}`
|
| 42 |
-
}),
|
| 43 |
-
...(OPENAI_API_TYPE === 'azure' && {
|
| 44 |
-
'api-key': `${key ? key : process.env.OPENAI_API_KEY}`
|
| 45 |
-
}),
|
| 46 |
-
...((OPENAI_API_TYPE === 'openai' && OPENAI_ORGANIZATION) && {
|
| 47 |
-
'OpenAI-Organization': OPENAI_ORGANIZATION,
|
| 48 |
-
}),
|
| 49 |
},
|
| 50 |
method: 'POST',
|
| 51 |
body: JSON.stringify({
|
| 52 |
-
...(OPENAI_API_TYPE === 'openai' && {model: model.id}),
|
| 53 |
messages: [
|
| 54 |
{
|
| 55 |
role: 'system',
|
|
@@ -77,7 +64,7 @@ export const OpenAIStream = async (
|
|
| 77 |
);
|
| 78 |
} else {
|
| 79 |
throw new Error(
|
| 80 |
-
`
|
| 81 |
decoder.decode(result?.value) || result.statusText
|
| 82 |
}`,
|
| 83 |
);
|
|
@@ -87,17 +74,18 @@ export const OpenAIStream = async (
|
|
| 87 |
const stream = new ReadableStream({
|
| 88 |
async start(controller) {
|
| 89 |
const onParse = (event: ParsedEvent | ReconnectInterval) => {
|
|
|
|
| 90 |
if (event.type === 'event') {
|
| 91 |
const data = event.data;
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
|
| 93 |
try {
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
return;
|
| 98 |
-
}
|
| 99 |
-
const text = json.choices[0].delta.content;
|
| 100 |
-
const queue = encoder.encode(text);
|
| 101 |
controller.enqueue(queue);
|
| 102 |
} catch (e) {
|
| 103 |
controller.error(e);
|
|
|
|
| 31 |
messages: Message[],
|
| 32 |
) => {
|
| 33 |
let url = `${OPENAI_API_HOST}/v1/chat/completions`;
|
|
|
|
|
|
|
|
|
|
| 34 |
const res = await fetch(url, {
|
| 35 |
headers: {
|
| 36 |
+
'Content-Type': 'application/json'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 37 |
},
|
| 38 |
method: 'POST',
|
| 39 |
body: JSON.stringify({
|
|
|
|
| 40 |
messages: [
|
| 41 |
{
|
| 42 |
role: 'system',
|
|
|
|
| 64 |
);
|
| 65 |
} else {
|
| 66 |
throw new Error(
|
| 67 |
+
`API returned an error: ${
|
| 68 |
decoder.decode(result?.value) || result.statusText
|
| 69 |
}`,
|
| 70 |
);
|
|
|
|
| 74 |
const stream = new ReadableStream({
|
| 75 |
async start(controller) {
|
| 76 |
const onParse = (event: ParsedEvent | ReconnectInterval) => {
|
| 77 |
+
console.log(event);
|
| 78 |
if (event.type === 'event') {
|
| 79 |
const data = event.data;
|
| 80 |
+
if (data === '<|end|>') {
|
| 81 |
+
controller.close();
|
| 82 |
+
return;
|
| 83 |
+
}
|
| 84 |
|
| 85 |
try {
|
| 86 |
+
|
| 87 |
+
const queue = encoder.encode(data);
|
| 88 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
| 89 |
controller.enqueue(queue);
|
| 90 |
} catch (e) {
|
| 91 |
controller.error(e);
|