Restore Ultracite + fix sidebar (#1233)
This commit is contained in:
parent
8fbfc253fa
commit
947ed094a6
177 changed files with 6908 additions and 8306 deletions
|
|
@ -1,143 +1,143 @@
|
|||
import type { ModelMessage } from 'ai';
|
||||
import type { ModelMessage } from "ai";
|
||||
|
||||
export const TEST_PROMPTS: Record<string, ModelMessage> = {
|
||||
USER_SKY: {
|
||||
role: 'user',
|
||||
content: [{ type: 'text', text: 'Why is the sky blue?' }],
|
||||
role: "user",
|
||||
content: [{ type: "text", text: "Why is the sky blue?" }],
|
||||
},
|
||||
USER_GRASS: {
|
||||
role: 'user',
|
||||
content: [{ type: 'text', text: 'Why is grass green?' }],
|
||||
role: "user",
|
||||
content: [{ type: "text", text: "Why is grass green?" }],
|
||||
},
|
||||
USER_THANKS: {
|
||||
role: 'user',
|
||||
content: [{ type: 'text', text: 'Thanks!' }],
|
||||
role: "user",
|
||||
content: [{ type: "text", text: "Thanks!" }],
|
||||
},
|
||||
USER_NEXTJS: {
|
||||
role: 'user',
|
||||
role: "user",
|
||||
content: [
|
||||
{ type: 'text', text: 'What are the advantages of using Next.js?' },
|
||||
{ type: "text", text: "What are the advantages of using Next.js?" },
|
||||
],
|
||||
},
|
||||
USER_IMAGE_ATTACHMENT: {
|
||||
role: 'user',
|
||||
role: "user",
|
||||
content: [
|
||||
{
|
||||
type: 'file',
|
||||
mediaType: '...',
|
||||
data: '...',
|
||||
type: "file",
|
||||
mediaType: "...",
|
||||
data: "...",
|
||||
},
|
||||
{
|
||||
type: 'text',
|
||||
text: 'Who painted this?',
|
||||
type: "text",
|
||||
text: "Who painted this?",
|
||||
},
|
||||
],
|
||||
},
|
||||
USER_TEXT_ARTIFACT: {
|
||||
role: 'user',
|
||||
role: "user",
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
text: 'Help me write an essay about Silicon Valley',
|
||||
type: "text",
|
||||
text: "Help me write an essay about Silicon Valley",
|
||||
},
|
||||
],
|
||||
},
|
||||
CREATE_DOCUMENT_TEXT_CALL: {
|
||||
role: 'user',
|
||||
role: "user",
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
text: 'Essay about Silicon Valley',
|
||||
type: "text",
|
||||
text: "Essay about Silicon Valley",
|
||||
},
|
||||
],
|
||||
},
|
||||
CREATE_DOCUMENT_TEXT_RESULT: {
|
||||
role: 'tool',
|
||||
role: "tool",
|
||||
content: [
|
||||
{
|
||||
type: 'tool-result',
|
||||
toolCallId: 'call_123',
|
||||
toolName: 'createDocument',
|
||||
type: "tool-result",
|
||||
toolCallId: "call_123",
|
||||
toolName: "createDocument",
|
||||
output: {
|
||||
type: 'json',
|
||||
type: "json",
|
||||
value: {
|
||||
id: '3ca386a4-40c6-4630-8ed1-84cbd46cc7eb',
|
||||
title: 'Essay about Silicon Valley',
|
||||
kind: 'text',
|
||||
content: 'A document was created and is now visible to the user.',
|
||||
id: "3ca386a4-40c6-4630-8ed1-84cbd46cc7eb",
|
||||
title: "Essay about Silicon Valley",
|
||||
kind: "text",
|
||||
content: "A document was created and is now visible to the user.",
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
GET_WEATHER_CALL: {
|
||||
role: 'user',
|
||||
role: "user",
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
type: "text",
|
||||
text: "What's the weather in sf?",
|
||||
},
|
||||
],
|
||||
},
|
||||
GET_WEATHER_RESULT: {
|
||||
role: 'tool',
|
||||
role: "tool",
|
||||
content: [
|
||||
{
|
||||
type: 'tool-result',
|
||||
toolCallId: 'call_456',
|
||||
toolName: 'getWeather',
|
||||
type: "tool-result",
|
||||
toolCallId: "call_456",
|
||||
toolName: "getWeather",
|
||||
output: {
|
||||
type: 'json',
|
||||
type: "json",
|
||||
value: {
|
||||
latitude: 37.763283,
|
||||
longitude: -122.41286,
|
||||
generationtime_ms: 0.06449222564697266,
|
||||
utc_offset_seconds: -25200,
|
||||
timezone: 'America/Los_Angeles',
|
||||
timezone_abbreviation: 'GMT-7',
|
||||
latitude: 37.763_283,
|
||||
longitude: -122.412_86,
|
||||
generationtime_ms: 0.064_492_225_646_972_66,
|
||||
utc_offset_seconds: -25_200,
|
||||
timezone: "America/Los_Angeles",
|
||||
timezone_abbreviation: "GMT-7",
|
||||
elevation: 18,
|
||||
current_units: {
|
||||
time: 'iso8601',
|
||||
interval: 'seconds',
|
||||
temperature_2m: '°C',
|
||||
time: "iso8601",
|
||||
interval: "seconds",
|
||||
temperature_2m: "°C",
|
||||
},
|
||||
current: {
|
||||
time: '2025-03-10T14:00',
|
||||
time: "2025-03-10T14:00",
|
||||
interval: 900,
|
||||
temperature_2m: 17,
|
||||
},
|
||||
daily_units: {
|
||||
time: 'iso8601',
|
||||
sunrise: 'iso8601',
|
||||
sunset: 'iso8601',
|
||||
time: "iso8601",
|
||||
sunrise: "iso8601",
|
||||
sunset: "iso8601",
|
||||
},
|
||||
daily: {
|
||||
time: [
|
||||
'2025-03-10',
|
||||
'2025-03-11',
|
||||
'2025-03-12',
|
||||
'2025-03-13',
|
||||
'2025-03-14',
|
||||
'2025-03-15',
|
||||
'2025-03-16',
|
||||
"2025-03-10",
|
||||
"2025-03-11",
|
||||
"2025-03-12",
|
||||
"2025-03-13",
|
||||
"2025-03-14",
|
||||
"2025-03-15",
|
||||
"2025-03-16",
|
||||
],
|
||||
sunrise: [
|
||||
'2025-03-10T07:27',
|
||||
'2025-03-11T07:25',
|
||||
'2025-03-12T07:24',
|
||||
'2025-03-13T07:22',
|
||||
'2025-03-14T07:21',
|
||||
'2025-03-15T07:19',
|
||||
'2025-03-16T07:18',
|
||||
"2025-03-10T07:27",
|
||||
"2025-03-11T07:25",
|
||||
"2025-03-12T07:24",
|
||||
"2025-03-13T07:22",
|
||||
"2025-03-14T07:21",
|
||||
"2025-03-15T07:19",
|
||||
"2025-03-16T07:18",
|
||||
],
|
||||
sunset: [
|
||||
'2025-03-10T19:12',
|
||||
'2025-03-11T19:13',
|
||||
'2025-03-12T19:14',
|
||||
'2025-03-13T19:15',
|
||||
'2025-03-14T19:16',
|
||||
'2025-03-15T19:17',
|
||||
'2025-03-16T19:17',
|
||||
"2025-03-10T19:12",
|
||||
"2025-03-11T19:13",
|
||||
"2025-03-12T19:14",
|
||||
"2025-03-13T19:15",
|
||||
"2025-03-14T19:16",
|
||||
"2025-03-15T19:17",
|
||||
"2025-03-16T19:17",
|
||||
],
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import { generateUUID } from '@/lib/utils';
|
||||
import { generateUUID } from "@/lib/utils";
|
||||
|
||||
export const TEST_PROMPTS = {
|
||||
SKY: {
|
||||
MESSAGE: {
|
||||
id: generateUUID(),
|
||||
createdAt: new Date().toISOString(),
|
||||
role: 'user',
|
||||
content: 'Why is the sky blue?',
|
||||
parts: [{ type: 'text', text: 'Why is the sky blue?' }],
|
||||
role: "user",
|
||||
content: "Why is the sky blue?",
|
||||
parts: [{ type: "text", text: "Why is the sky blue?" }],
|
||||
},
|
||||
OUTPUT_STREAM: [
|
||||
'data: {"type":"start-step"}',
|
||||
|
|
@ -19,16 +19,16 @@ export const TEST_PROMPTS = {
|
|||
'data: {"type":"text-end","id":"STATIC_ID"}',
|
||||
'data: {"type":"finish-step"}',
|
||||
'data: {"type":"finish"}',
|
||||
'data: [DONE]',
|
||||
"data: [DONE]",
|
||||
],
|
||||
},
|
||||
GRASS: {
|
||||
MESSAGE: {
|
||||
id: generateUUID(),
|
||||
createdAt: new Date().toISOString(),
|
||||
role: 'user',
|
||||
content: 'Why is grass green?',
|
||||
parts: [{ type: 'text', text: 'Why is grass green?' }],
|
||||
role: "user",
|
||||
content: "Why is grass green?",
|
||||
parts: [{ type: "text", text: "Why is grass green?" }],
|
||||
},
|
||||
OUTPUT_STREAM: [
|
||||
'data: {"type":"start-step"}',
|
||||
|
|
@ -40,7 +40,7 @@ export const TEST_PROMPTS = {
|
|||
'data: {"type":"text-end","id":"STATIC_ID"}',
|
||||
'data: {"type":"finish-step"}',
|
||||
'data: {"type":"finish"}',
|
||||
'data: [DONE]',
|
||||
"data: [DONE]",
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,12 +1,14 @@
|
|||
import { generateId, type ModelMessage } from 'ai';
|
||||
import { TEST_PROMPTS } from './basic';
|
||||
import type { LanguageModelV2StreamPart } from '@ai-sdk/provider';
|
||||
import type { LanguageModelV2StreamPart } from "@ai-sdk/provider";
|
||||
import { generateId, type ModelMessage } from "ai";
|
||||
import { TEST_PROMPTS } from "./basic";
|
||||
|
||||
export function compareMessages(
|
||||
firstMessage: ModelMessage,
|
||||
secondMessage: ModelMessage,
|
||||
secondMessage: ModelMessage
|
||||
): boolean {
|
||||
if (firstMessage.role !== secondMessage.role) return false;
|
||||
if (firstMessage.role !== secondMessage.role) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
!Array.isArray(firstMessage.content) ||
|
||||
|
|
@ -23,15 +25,21 @@ export function compareMessages(
|
|||
const item1 = firstMessage.content[i];
|
||||
const item2 = secondMessage.content[i];
|
||||
|
||||
if (item1.type !== item2.type) return false;
|
||||
if (item1.type !== item2.type) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (item1.type === 'file' && item2.type === 'file') {
|
||||
if (item1.type === "file" && item2.type === "file") {
|
||||
// if (item1.image.toString() !== item2.image.toString()) return false;
|
||||
// if (item1.mimeType !== item2.mimeType) return false;
|
||||
} else if (item1.type === 'text' && item2.type === 'text') {
|
||||
if (item1.text !== item2.text) return false;
|
||||
} else if (item1.type === 'tool-result' && item2.type === 'tool-result') {
|
||||
if (item1.toolCallId !== item2.toolCallId) return false;
|
||||
} else if (item1.type === "text" && item2.type === "text") {
|
||||
if (item1.text !== item2.text) {
|
||||
return false;
|
||||
}
|
||||
} else if (item1.type === "tool-result" && item2.type === "tool-result") {
|
||||
if (item1.toolCallId !== item2.toolCallId) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -43,61 +51,63 @@ export function compareMessages(
|
|||
const textToDeltas = (text: string): LanguageModelV2StreamPart[] => {
|
||||
const id = generateId();
|
||||
|
||||
const deltas = text.split(' ').map((char) => ({
|
||||
const deltas = text.split(" ").map((char) => ({
|
||||
id,
|
||||
type: 'text-delta' as const,
|
||||
type: "text-delta" as const,
|
||||
delta: `${char} `,
|
||||
}));
|
||||
|
||||
return [{ id, type: 'text-start' }, ...deltas, { id, type: 'text-end' }];
|
||||
return [{ id, type: "text-start" }, ...deltas, { id, type: "text-end" }];
|
||||
};
|
||||
|
||||
const reasoningToDeltas = (text: string): LanguageModelV2StreamPart[] => {
|
||||
const id = generateId();
|
||||
|
||||
const deltas = text.split(' ').map((char) => ({
|
||||
const deltas = text.split(" ").map((char) => ({
|
||||
id,
|
||||
type: 'reasoning-delta' as const,
|
||||
type: "reasoning-delta" as const,
|
||||
delta: `${char} `,
|
||||
}));
|
||||
|
||||
return [
|
||||
{ id, type: 'reasoning-start' },
|
||||
{ id, type: "reasoning-start" },
|
||||
...deltas,
|
||||
{ id, type: 'reasoning-end' },
|
||||
{ id, type: "reasoning-end" },
|
||||
];
|
||||
};
|
||||
|
||||
export const getResponseChunksByPrompt = (
|
||||
prompt: ModelMessage[],
|
||||
isReasoningEnabled = false,
|
||||
isReasoningEnabled = false
|
||||
): LanguageModelV2StreamPart[] => {
|
||||
const recentMessage = prompt.at(-1);
|
||||
|
||||
if (!recentMessage) {
|
||||
throw new Error('No recent message found!');
|
||||
throw new Error("No recent message found!");
|
||||
}
|
||||
|
||||
if (isReasoningEnabled) {
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_SKY)) {
|
||||
return [
|
||||
...reasoningToDeltas('The sky is blue because of rayleigh scattering!'),
|
||||
...reasoningToDeltas("The sky is blue because of rayleigh scattering!"),
|
||||
...textToDeltas("It's just blue duh!"),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.USER_GRASS)) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_GRASS)) {
|
||||
return [
|
||||
...reasoningToDeltas(
|
||||
'Grass is green because of chlorophyll absorption!',
|
||||
"Grass is green because of chlorophyll absorption!"
|
||||
),
|
||||
...textToDeltas("It's just green duh!"),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
|
|
@ -108,90 +118,98 @@ export const getResponseChunksByPrompt = (
|
|||
return [
|
||||
...textToDeltas("You're welcome!"),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.USER_GRASS)) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_GRASS)) {
|
||||
return [
|
||||
...textToDeltas("It's just green duh!"),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.USER_SKY)) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_SKY)) {
|
||||
return [
|
||||
...textToDeltas("It's just blue duh!"),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.USER_NEXTJS)) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_NEXTJS)) {
|
||||
return [
|
||||
...textToDeltas('With Next.js, you can ship fast!'),
|
||||
...textToDeltas("With Next.js, you can ship fast!"),
|
||||
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (
|
||||
compareMessages(recentMessage, TEST_PROMPTS.USER_IMAGE_ATTACHMENT)
|
||||
) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_IMAGE_ATTACHMENT)) {
|
||||
return [
|
||||
...textToDeltas('This painting is by Monet!'),
|
||||
...textToDeltas("This painting is by Monet!"),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.USER_TEXT_ARTIFACT)) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.USER_TEXT_ARTIFACT)) {
|
||||
const toolCallId = generateId();
|
||||
|
||||
return [
|
||||
{
|
||||
id: toolCallId,
|
||||
type: 'tool-input-start',
|
||||
toolName: 'createDocument',
|
||||
type: "tool-input-start",
|
||||
toolName: "createDocument",
|
||||
},
|
||||
{
|
||||
id: toolCallId,
|
||||
type: 'tool-input-delta',
|
||||
type: "tool-input-delta",
|
||||
delta: JSON.stringify({
|
||||
title: 'Essay about Silicon Valley',
|
||||
kind: 'text',
|
||||
title: "Essay about Silicon Valley",
|
||||
kind: "text",
|
||||
}),
|
||||
},
|
||||
{
|
||||
id: toolCallId,
|
||||
type: 'tool-input-end',
|
||||
type: "tool-input-end",
|
||||
},
|
||||
{
|
||||
toolCallId: toolCallId,
|
||||
type: 'tool-result',
|
||||
toolName: 'createDocument',
|
||||
toolCallId,
|
||||
type: "tool-result",
|
||||
toolName: "createDocument",
|
||||
result: {
|
||||
id: 'doc_123',
|
||||
title: 'Essay about Silicon Valley',
|
||||
kind: 'text',
|
||||
id: "doc_123",
|
||||
title: "Essay about Silicon Valley",
|
||||
kind: "text",
|
||||
},
|
||||
},
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (
|
||||
compareMessages(recentMessage, TEST_PROMPTS.CREATE_DOCUMENT_TEXT_CALL)
|
||||
) {
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.CREATE_DOCUMENT_TEXT_CALL)) {
|
||||
return [
|
||||
...textToDeltas(`\n
|
||||
# Silicon Valley: The Epicenter of Innovation
|
||||
|
|
@ -213,46 +231,52 @@ Despite its remarkable success, Silicon Valley faces significant challenges incl
|
|||
As we move forward, Silicon Valley continues to reinvent itself. While some predict its decline due to remote work trends and competition from other tech hubs, the region's adaptability and innovative spirit suggest it will remain influential in shaping our technological future for decades to come.
|
||||
`),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (
|
||||
compareMessages(recentMessage, TEST_PROMPTS.CREATE_DOCUMENT_TEXT_RESULT)
|
||||
) {
|
||||
return [
|
||||
...textToDeltas('A document was created and is now visible to the user.'),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.GET_WEATHER_CALL)) {
|
||||
return [
|
||||
{
|
||||
type: 'tool-call',
|
||||
toolCallId: 'call_456',
|
||||
toolName: 'getWeather',
|
||||
input: JSON.stringify({ latitude: 37.7749, longitude: -122.4194 }),
|
||||
},
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
} else if (compareMessages(recentMessage, TEST_PROMPTS.GET_WEATHER_RESULT)) {
|
||||
return [
|
||||
...textToDeltas('The current temperature in San Francisco is 17°C.'),
|
||||
{
|
||||
type: 'finish',
|
||||
finishReason: 'stop',
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
return [{ id: '6', type: 'text-delta', delta: 'Unknown test prompt!' }];
|
||||
if (
|
||||
compareMessages(recentMessage, TEST_PROMPTS.CREATE_DOCUMENT_TEXT_RESULT)
|
||||
) {
|
||||
return [
|
||||
...textToDeltas("A document was created and is now visible to the user."),
|
||||
{
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.GET_WEATHER_CALL)) {
|
||||
return [
|
||||
{
|
||||
type: "tool-call",
|
||||
toolCallId: "call_456",
|
||||
toolName: "getWeather",
|
||||
input: JSON.stringify({ latitude: 37.7749, longitude: -122.4194 }),
|
||||
},
|
||||
{
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
if (compareMessages(recentMessage, TEST_PROMPTS.GET_WEATHER_RESULT)) {
|
||||
return [
|
||||
...textToDeltas("The current temperature in San Francisco is 17°C."),
|
||||
{
|
||||
type: "finish",
|
||||
finishReason: "stop",
|
||||
usage: { inputTokens: 3, outputTokens: 10, totalTokens: 13 },
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
return [{ id: "6", type: "text-delta", delta: "Unknown test prompt!" }];
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue