Spaces:
Running
Running
matt HOFFNER
commited on
Commit
·
dd225cf
1
Parent(s):
78695df
fix
Browse files- app/api/chat/route.ts +0 -3
- app/constants.ts +1 -1
- app/input.tsx +4 -1
- app/tools/surfer.ts +0 -14
- package.json +1 -1
- pages/api/functions/embed.ts +0 -15
- pages/api/functions/index.ts +1 -2
app/api/chat/route.ts
CHANGED
@@ -1,11 +1,9 @@
|
|
1 |
import { Configuration, OpenAIApi } from "openai-edge";
|
2 |
import { OpenAIStream, StreamingTextResponse } from "ai";
|
3 |
-
import { createUrlSurfer } from "@/app/tools/surfer";
|
4 |
import { createSearchApi } from "@/app/tools/search";
|
5 |
import { createOddsApi } from "@/app/tools/odds";
|
6 |
import { createSportsResultsApi } from "@/app/tools/scores";
|
7 |
|
8 |
-
const [, urlSurferSchema] = createUrlSurfer();
|
9 |
const [, serpApiSchema] = createSearchApi({ apiKey: process.env.SERP_API_KEY || '' });
|
10 |
const [, sportsApiResultsSchema] = createSportsResultsApi({ apiKey: process.env.SERP_API_KEY || '' });
|
11 |
const [, oddsApiSchema] = createOddsApi({ apiKey: process.env.ODDS_API_KEY || '' });
|
@@ -16,7 +14,6 @@ const config = new Configuration({
|
|
16 |
const openai = new OpenAIApi(config);
|
17 |
|
18 |
const functions: any[] = [
|
19 |
-
urlSurferSchema,
|
20 |
serpApiSchema,
|
21 |
oddsApiSchema,
|
22 |
sportsApiResultsSchema
|
|
|
1 |
import { Configuration, OpenAIApi } from "openai-edge";
|
2 |
import { OpenAIStream, StreamingTextResponse } from "ai";
|
|
|
3 |
import { createSearchApi } from "@/app/tools/search";
|
4 |
import { createOddsApi } from "@/app/tools/odds";
|
5 |
import { createSportsResultsApi } from "@/app/tools/scores";
|
6 |
|
|
|
7 |
const [, serpApiSchema] = createSearchApi({ apiKey: process.env.SERP_API_KEY || '' });
|
8 |
const [, sportsApiResultsSchema] = createSportsResultsApi({ apiKey: process.env.SERP_API_KEY || '' });
|
9 |
const [, oddsApiSchema] = createOddsApi({ apiKey: process.env.ODDS_API_KEY || '' });
|
|
|
14 |
const openai = new OpenAIApi(config);
|
15 |
|
16 |
const functions: any[] = [
|
|
|
17 |
serpApiSchema,
|
18 |
oddsApiSchema,
|
19 |
sportsApiResultsSchema
|
app/constants.ts
CHANGED
@@ -5,6 +5,6 @@ export default {
|
|
5 |
DEFAULT_MODEL: "Xenova/whisper-tiny",
|
6 |
DEFAULT_SUBTASK: "transcribe",
|
7 |
DEFAULT_LANGUAGE: "english",
|
8 |
-
DEFAULT_QUANTIZED:
|
9 |
DEFAULT_MULTILINGUAL: false,
|
10 |
};
|
|
|
5 |
DEFAULT_MODEL: "Xenova/whisper-tiny",
|
6 |
DEFAULT_SUBTASK: "transcribe",
|
7 |
DEFAULT_LANGUAGE: "english",
|
8 |
+
DEFAULT_QUANTIZED: false,
|
9 |
DEFAULT_MULTILINGUAL: false,
|
10 |
};
|
app/input.tsx
CHANGED
@@ -7,6 +7,7 @@ import StopIcon from '@mui/icons-material/Stop';
|
|
7 |
import { webmFixDuration } from './BlobFix';
|
8 |
import Progress from './progress';
|
9 |
import { useTranscriber } from "./hooks/useTranscriber";
|
|
|
10 |
|
11 |
ort.env.wasm.wasmPaths = "/_next/static/chunks/";
|
12 |
|
@@ -33,7 +34,9 @@ function getMimeType() {
|
|
33 |
}
|
34 |
|
35 |
const convertBlobToAudioBuffer = async (blob: Blob): Promise<AudioBuffer> => {
|
36 |
-
const audioContext = new AudioContext(
|
|
|
|
|
37 |
const arrayBuffer = await blob.arrayBuffer();
|
38 |
return await audioContext.decodeAudioData(arrayBuffer);
|
39 |
};
|
|
|
7 |
import { webmFixDuration } from './BlobFix';
|
8 |
import Progress from './progress';
|
9 |
import { useTranscriber } from "./hooks/useTranscriber";
|
10 |
+
import constants from './constants';
|
11 |
|
12 |
ort.env.wasm.wasmPaths = "/_next/static/chunks/";
|
13 |
|
|
|
34 |
}
|
35 |
|
36 |
const convertBlobToAudioBuffer = async (blob: Blob): Promise<AudioBuffer> => {
|
37 |
+
const audioContext = new AudioContext({
|
38 |
+
sampleRate: constants.SAMPLING_RATE,
|
39 |
+
});
|
40 |
const arrayBuffer = await blob.arrayBuffer();
|
41 |
return await audioContext.decodeAudioData(arrayBuffer);
|
42 |
};
|
app/tools/surfer.ts
DELETED
@@ -1,14 +0,0 @@
|
|
1 |
-
import { Tool } from 'openai-function-calling-tools';
|
2 |
-
import { z } from 'zod';
|
3 |
-
|
4 |
-
function createUrlSurfer() {
|
5 |
-
const paramsSchema = z.object({
|
6 |
-
input: z.string(),
|
7 |
-
});
|
8 |
-
const name = 'surfer';
|
9 |
-
const description = 'A custom URL navigator. Useful when a URL is provided with a question. A URL IS REQUIRED FOR THIS TO WORK along with user intent. Input should be a valid URL. Outputs a JSON array of relevant results.';
|
10 |
-
|
11 |
-
return new Tool(paramsSchema, name, description, {} as any).tool;
|
12 |
-
}
|
13 |
-
|
14 |
-
export { createUrlSurfer };
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
package.json
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
{
|
2 |
-
"name": "
|
3 |
"version": "0.1.0",
|
4 |
"private": true,
|
5 |
"scripts": {
|
|
|
1 |
{
|
2 |
+
"name": "web-chat",
|
3 |
"version": "0.1.0",
|
4 |
"private": true,
|
5 |
"scripts": {
|
pages/api/functions/embed.ts
CHANGED
@@ -1,7 +1,6 @@
|
|
1 |
import { createSearchApi } from '../../../app/tools/search';
|
2 |
import { createOddsApi } from '@/app/tools/odds';
|
3 |
import { createSportsResultsApi } from '@/app/tools/scores';
|
4 |
-
import { handleContentText } from './utils';
|
5 |
import { similaritySearch } from './vector-store';
|
6 |
|
7 |
const urlRegex = /(https?:\/\/[^\s]+)/g;
|
@@ -23,20 +22,6 @@ export const odds: FunctionOutput = async ({ input }: FunctionInput) => {
|
|
23 |
return oddsApiResults;
|
24 |
}
|
25 |
|
26 |
-
export const surfer: FunctionOutput = async ({ input }: FunctionInput) => {
|
27 |
-
const urls = input.match(urlRegex);
|
28 |
-
const targetUrl = urls ? urls[0] : null;
|
29 |
-
const promptWithoutUrl = urls ? input.replace(urlRegex, '').trim() : input;
|
30 |
-
|
31 |
-
const content: string = await handleContentText(targetUrl)
|
32 |
-
if (!content) {
|
33 |
-
return `Couldn't find ${targetUrl}, here is the prompt: ${promptWithoutUrl}`;
|
34 |
-
}
|
35 |
-
|
36 |
-
const surferApiResults = await similaritySearch(promptWithoutUrl, content);
|
37 |
-
return surferApiResults;
|
38 |
-
}
|
39 |
-
|
40 |
export const serp: FunctionOutput = async ({ input }: FunctionInput) => {
|
41 |
const content: string = await serpApi({input})
|
42 |
const serpApiResults = await similaritySearch(input, content);
|
|
|
1 |
import { createSearchApi } from '../../../app/tools/search';
|
2 |
import { createOddsApi } from '@/app/tools/odds';
|
3 |
import { createSportsResultsApi } from '@/app/tools/scores';
|
|
|
4 |
import { similaritySearch } from './vector-store';
|
5 |
|
6 |
const urlRegex = /(https?:\/\/[^\s]+)/g;
|
|
|
22 |
return oddsApiResults;
|
23 |
}
|
24 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
25 |
export const serp: FunctionOutput = async ({ input }: FunctionInput) => {
|
26 |
const content: string = await serpApi({input})
|
27 |
const serpApiResults = await similaritySearch(input, content);
|
pages/api/functions/index.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
import { NextApiRequest, NextApiResponse } from 'next';
|
2 |
-
import { odds, serp,
|
3 |
|
4 |
export const config = {
|
5 |
api: {
|
@@ -13,7 +13,6 @@ type FunctionHandler = any;
|
|
13 |
|
14 |
const handlers: FunctionHandler = {
|
15 |
'search': serp,
|
16 |
-
'surfer': surfer,
|
17 |
'sports_odds': odds,
|
18 |
'sports_results': sports
|
19 |
};
|
|
|
1 |
import { NextApiRequest, NextApiResponse } from 'next';
|
2 |
+
import { odds, serp, sports } from './embed';
|
3 |
|
4 |
export const config = {
|
5 |
api: {
|
|
|
13 |
|
14 |
const handlers: FunctionHandler = {
|
15 |
'search': serp,
|
|
|
16 |
'sports_odds': odds,
|
17 |
'sports_results': sports
|
18 |
};
|