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 |
};
|