Add type for request too
This commit is contained in:
parent
1ca762bcc0
commit
c05fb7379d
|
@ -2,7 +2,7 @@
|
||||||
//import { fetchEventSource } from "@microsoft/fetch-event-source";
|
//import { fetchEventSource } from "@microsoft/fetch-event-source";
|
||||||
|
|
||||||
import { apiKeyStorage, chatsStorage, addMessage, clearMessages } from "./Storage.svelte";
|
import { apiKeyStorage, chatsStorage, addMessage, clearMessages } from "./Storage.svelte";
|
||||||
import type { Response, Message } from "./Types.svelte";
|
import type { Request, Response, Message } from "./Types.svelte";
|
||||||
|
|
||||||
import { afterUpdate, onMount } from "svelte";
|
import { afterUpdate, onMount } from "svelte";
|
||||||
import SvelteMarkdown from "svelte-markdown";
|
import SvelteMarkdown from "svelte-markdown";
|
||||||
|
@ -64,6 +64,23 @@
|
||||||
|
|
||||||
let response: Response;
|
let response: Response;
|
||||||
try {
|
try {
|
||||||
|
const request: Request = {
|
||||||
|
model: "gpt-3.5-turbo",
|
||||||
|
// Submit only the role and content of the messages, provide the previous messages as well for context
|
||||||
|
messages: messages
|
||||||
|
.map((message): Message => {
|
||||||
|
const { role, content } = message;
|
||||||
|
return { role, content };
|
||||||
|
})
|
||||||
|
// Skip system messages
|
||||||
|
.filter((message) => message.role !== "system"),
|
||||||
|
// temperature: 1
|
||||||
|
// top_p: 1
|
||||||
|
// n: 1
|
||||||
|
//stream: false,
|
||||||
|
// stop: null
|
||||||
|
//max_tokens: 4096,
|
||||||
|
};
|
||||||
response = await (
|
response = await (
|
||||||
await fetch("https://api.openai.com/v1/chat/completions", {
|
await fetch("https://api.openai.com/v1/chat/completions", {
|
||||||
method: "POST",
|
method: "POST",
|
||||||
|
@ -71,23 +88,7 @@
|
||||||
Authorization: `Bearer ${$apiKeyStorage}`,
|
Authorization: `Bearer ${$apiKeyStorage}`,
|
||||||
"Content-Type": "application/json",
|
"Content-Type": "application/json",
|
||||||
},
|
},
|
||||||
body: JSON.stringify({
|
body: JSON.stringify(request),
|
||||||
model: "gpt-3.5-turbo",
|
|
||||||
// Submit only the role and content of the messages, provide the previous messages as well for context
|
|
||||||
messages: messages
|
|
||||||
.map((message): Message => {
|
|
||||||
const { role, content } = message;
|
|
||||||
return { role, content };
|
|
||||||
})
|
|
||||||
// Skip system messages
|
|
||||||
.filter((message) => message.role !== "system"),
|
|
||||||
// temperature: 1
|
|
||||||
// top_p: 1
|
|
||||||
// n: 1
|
|
||||||
//stream: false,
|
|
||||||
// stop: null
|
|
||||||
//max_tokens: 4096,
|
|
||||||
}),
|
|
||||||
})
|
})
|
||||||
).json();
|
).json();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
@ -17,6 +17,21 @@
|
||||||
total_tokens: number;
|
total_tokens: number;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type Request = {
|
||||||
|
model: "gpt-3.5-turbo" | "gpt-3.5-turbo-0301";
|
||||||
|
messages: Message[];
|
||||||
|
temperature?: number;
|
||||||
|
top_p?: number;
|
||||||
|
n?: number;
|
||||||
|
stream?: boolean;
|
||||||
|
stop?: string | null;
|
||||||
|
max_tokens?: number;
|
||||||
|
presence_penalty?: number;
|
||||||
|
frequency_penalty?: number;
|
||||||
|
logit_bias?: Record<string, any>;
|
||||||
|
user?: string;
|
||||||
|
};
|
||||||
|
|
||||||
type ResponseOK = {
|
type ResponseOK = {
|
||||||
status: "ok";
|
status: "ok";
|
||||||
id: string;
|
id: string;
|
||||||
|
|
Loading…
Reference in New Issue