mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-05-24 14:40:22 +09:00
build: update langchain
This commit is contained in:
parent
30f9dc756a
commit
16e82afaad
@ -1,4 +1,4 @@
|
|||||||
import { StructuredTool } from "langchain/tools";
|
import { StructuredTool } from "@langchain/core/tools";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
|
|
||||||
export class ArxivAPIWrapper extends StructuredTool {
|
export class ArxivAPIWrapper extends StructuredTool {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { decode } from "html-entities";
|
import { decode } from "html-entities";
|
||||||
import { convert as htmlToText } from "html-to-text";
|
import { convert as htmlToText } from "html-to-text";
|
||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
import * as cheerio from "cheerio";
|
import * as cheerio from "cheerio";
|
||||||
import { getRandomUserAgent } from "./ua_tools";
|
import { getRandomUserAgent } from "./ua_tools";
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { StructuredTool } from "langchain/tools";
|
import { StructuredTool } from "@langchain/core/tools";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import S3FileStorage from "../../utils/s3_file_storage";
|
import S3FileStorage from "../../utils/s3_file_storage";
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { SafeSearchType, search } from "duck-duck-scrape";
|
import { SafeSearchType, search } from "duck-duck-scrape";
|
||||||
import { convert as htmlToText } from "html-to-text";
|
import { convert as htmlToText } from "html-to-text";
|
||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
|
|
||||||
export class DuckDuckGo extends Tool {
|
export class DuckDuckGo extends Tool {
|
||||||
name = "duckduckgo_search";
|
name = "duckduckgo_search";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { decode } from "html-entities";
|
import { decode } from "html-entities";
|
||||||
import { convert as htmlToText } from "html-to-text";
|
import { convert as htmlToText } from "html-to-text";
|
||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
|
|
||||||
const SEARCH_REGEX =
|
const SEARCH_REGEX =
|
||||||
/DDG\.pageLayout\.load\('d',(\[.+\])\);DDG\.duckbar\.load\('images'/;
|
/DDG\.pageLayout\.load\('d',(\[.+\])\);DDG\.duckbar\.load\('images'/;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { decode } from "html-entities";
|
import { decode } from "html-entities";
|
||||||
import { convert as htmlToText } from "html-to-text";
|
import { convert as htmlToText } from "html-to-text";
|
||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
import * as cheerio from "cheerio";
|
import * as cheerio from "cheerio";
|
||||||
import { getRandomUserAgent } from "./ua_tools";
|
import { getRandomUserAgent } from "./ua_tools";
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { htmlToText } from "html-to-text";
|
import { htmlToText } from "html-to-text";
|
||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
|
|
||||||
export interface Headers {
|
export interface Headers {
|
||||||
[key: string]: string;
|
[key: string]: string;
|
||||||
|
25
app/api/langchain-tools/langchian-tool-index.ts
Normal file
25
app/api/langchain-tools/langchian-tool-index.ts
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
export {
|
||||||
|
SerpAPI,
|
||||||
|
type SerpAPIParameters,
|
||||||
|
} from "@langchain/community/tools/serpapi";
|
||||||
|
export { DadJokeAPI } from "@langchain/community/tools/dadjokeapi";
|
||||||
|
export { BingSerpAPI } from "@langchain/community/tools/bingserpapi";
|
||||||
|
export {
|
||||||
|
Serper,
|
||||||
|
type SerperParameters,
|
||||||
|
} from "@langchain/community/tools/serper";
|
||||||
|
export {
|
||||||
|
GoogleCustomSearch,
|
||||||
|
type GoogleCustomSearchParams,
|
||||||
|
} from "@langchain/community/tools/google_custom_search";
|
||||||
|
export { AIPluginTool } from "@langchain/community/tools/aiplugin";
|
||||||
|
export {
|
||||||
|
WikipediaQueryRun,
|
||||||
|
type WikipediaQueryRunParams,
|
||||||
|
} from "@langchain/community/tools/wikipedia_query_run";
|
||||||
|
export { WolframAlphaTool } from "@langchain/community/tools/wolframalpha";
|
||||||
|
export { SearxngSearch } from "@langchain/community/tools/searxng_search";
|
||||||
|
export {
|
||||||
|
SearchApi,
|
||||||
|
type SearchApiParameters,
|
||||||
|
} from "@langchain/community/tools/searchapi";
|
@ -1,12 +1,13 @@
|
|||||||
import axiosMod, { AxiosStatic } from "axios";
|
import axiosMod, { AxiosStatic } from "axios";
|
||||||
import { WebPDFLoader } from "langchain/document_loaders/web/pdf";
|
import { WebPDFLoader } from "langchain/document_loaders/web/pdf";
|
||||||
import { MemoryVectorStore } from "langchain/vectorstores/memory";
|
import { MemoryVectorStore } from "langchain/vectorstores/memory";
|
||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
import {
|
import {
|
||||||
RecursiveCharacterTextSplitter,
|
RecursiveCharacterTextSplitter,
|
||||||
TextSplitter,
|
TextSplitter,
|
||||||
} from "langchain/text_splitter";
|
} from "langchain/text_splitter";
|
||||||
import { CallbackManagerForToolRun } from "langchain/callbacks";
|
|
||||||
|
import { CallbackManagerForToolRun } from "@langchain/core/callbacks/manager";
|
||||||
import { BaseLanguageModel } from "langchain/dist/base_language";
|
import { BaseLanguageModel } from "langchain/dist/base_language";
|
||||||
import { formatDocumentsAsString } from "langchain/util/document";
|
import { formatDocumentsAsString } from "langchain/util/document";
|
||||||
import { Embeddings } from "langchain/dist/embeddings/base.js";
|
import { Embeddings } from "langchain/dist/embeddings/base.js";
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
import S3FileStorage from "../../utils/s3_file_storage";
|
import S3FileStorage from "../../utils/s3_file_storage";
|
||||||
|
|
||||||
export class StableDiffusionWrapper extends Tool {
|
export class StableDiffusionWrapper extends Tool {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { Tool } from "langchain/tools";
|
import { Tool } from "@langchain/core/tools";
|
||||||
|
|
||||||
export class WolframAlphaTool extends Tool {
|
export class WolframAlphaTool extends Tool {
|
||||||
name = "wolfram_alpha_llm";
|
name = "wolfram_alpha_llm";
|
||||||
|
@ -1,33 +1,39 @@
|
|||||||
import { NextRequest, NextResponse } from "next/server";
|
import { NextRequest, NextResponse } from "next/server";
|
||||||
import { getServerSideConfig } from "@/app/config/server";
|
import { getServerSideConfig } from "@/app/config/server";
|
||||||
import { auth } from "../../../auth";
|
|
||||||
|
|
||||||
import { ChatOpenAI } from "langchain/chat_models/openai";
|
import { BaseCallbackHandler } from "@langchain/core/callbacks/base";
|
||||||
import { BaseCallbackHandler } from "langchain/callbacks";
|
|
||||||
|
|
||||||
import { AIMessage, HumanMessage, SystemMessage } from "langchain/schema";
|
|
||||||
import { BufferMemory, ChatMessageHistory } from "langchain/memory";
|
import { BufferMemory, ChatMessageHistory } from "langchain/memory";
|
||||||
import {
|
import { AgentExecutor } from "langchain/agents";
|
||||||
AgentExecutor,
|
|
||||||
initializeAgentExecutorWithOptions,
|
|
||||||
} from "langchain/agents";
|
|
||||||
import { ACCESS_CODE_PREFIX, ServiceProvider } from "@/app/constant";
|
import { ACCESS_CODE_PREFIX, ServiceProvider } from "@/app/constant";
|
||||||
|
|
||||||
import * as langchainTools from "langchain/tools";
|
// import * as langchainTools from "langchain/tools";
|
||||||
import { HttpGetTool } from "@/app/api/langchain-tools/http_get";
|
import * as langchainTools from "@/app/api/langchain-tools/langchian-tool-index";
|
||||||
import { DuckDuckGo } from "@/app/api/langchain-tools/duckduckgo_search";
|
import { DuckDuckGo } from "@/app/api/langchain-tools/duckduckgo_search";
|
||||||
import { DynamicTool, Tool } from "langchain/tools";
|
import {
|
||||||
|
DynamicTool,
|
||||||
|
Tool,
|
||||||
|
StructuredToolInterface,
|
||||||
|
} from "@langchain/core/tools";
|
||||||
|
import { convertToOpenAITool } from "@langchain/core/utils/function_calling";
|
||||||
import { BaiduSearch } from "@/app/api/langchain-tools/baidu_search";
|
import { BaiduSearch } from "@/app/api/langchain-tools/baidu_search";
|
||||||
import { GoogleSearch } from "@/app/api/langchain-tools/google_search";
|
import { GoogleSearch } from "@/app/api/langchain-tools/google_search";
|
||||||
import { useAccessStore } from "@/app/store";
|
|
||||||
import { DynamicStructuredTool, formatToOpenAITool } from "langchain/tools";
|
|
||||||
import { formatToOpenAIToolMessages } from "langchain/agents/format_scratchpad/openai_tools";
|
import { formatToOpenAIToolMessages } from "langchain/agents/format_scratchpad/openai_tools";
|
||||||
import {
|
import {
|
||||||
OpenAIToolsAgentOutputParser,
|
OpenAIToolsAgentOutputParser,
|
||||||
type ToolsAgentStep,
|
type ToolsAgentStep,
|
||||||
} from "langchain/agents/openai/output_parser";
|
} from "langchain/agents/openai/output_parser";
|
||||||
import { RunnableSequence } from "langchain/schema/runnable";
|
import { RunnableSequence } from "@langchain/core/runnables";
|
||||||
import { ChatPromptTemplate, MessagesPlaceholder } from "langchain/prompts";
|
import {
|
||||||
|
ChatPromptTemplate,
|
||||||
|
MessagesPlaceholder,
|
||||||
|
} from "@langchain/core/prompts";
|
||||||
|
import { ChatOpenAI } from "@langchain/openai";
|
||||||
|
import {
|
||||||
|
SystemMessage,
|
||||||
|
HumanMessage,
|
||||||
|
AIMessage,
|
||||||
|
} from "@langchain/core/messages";
|
||||||
|
|
||||||
export interface RequestMessage {
|
export interface RequestMessage {
|
||||||
role: string;
|
role: string;
|
||||||
@ -66,23 +72,27 @@ export class AgentApi {
|
|||||||
private encoder: TextEncoder;
|
private encoder: TextEncoder;
|
||||||
private transformStream: TransformStream;
|
private transformStream: TransformStream;
|
||||||
private writer: WritableStreamDefaultWriter<any>;
|
private writer: WritableStreamDefaultWriter<any>;
|
||||||
|
private controller: AbortController;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
encoder: TextEncoder,
|
encoder: TextEncoder,
|
||||||
transformStream: TransformStream,
|
transformStream: TransformStream,
|
||||||
writer: WritableStreamDefaultWriter<any>,
|
writer: WritableStreamDefaultWriter<any>,
|
||||||
|
controller: AbortController,
|
||||||
) {
|
) {
|
||||||
this.encoder = encoder;
|
this.encoder = encoder;
|
||||||
this.transformStream = transformStream;
|
this.transformStream = transformStream;
|
||||||
this.writer = writer;
|
this.writer = writer;
|
||||||
|
this.controller = controller;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getHandler(reqBody: any) {
|
async getHandler(reqBody: any) {
|
||||||
var writer = this.writer;
|
var writer = this.writer;
|
||||||
var encoder = this.encoder;
|
var encoder = this.encoder;
|
||||||
|
var controller = this.controller;
|
||||||
return BaseCallbackHandler.fromMethods({
|
return BaseCallbackHandler.fromMethods({
|
||||||
async handleLLMNewToken(token: string) {
|
async handleLLMNewToken(token: string) {
|
||||||
if (token) {
|
if (token && !controller.signal.aborted) {
|
||||||
var response = new ResponseBody();
|
var response = new ResponseBody();
|
||||||
response.message = token;
|
response.message = token;
|
||||||
await writer.ready;
|
await writer.ready;
|
||||||
@ -92,6 +102,11 @@ export class AgentApi {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
async handleChainError(err, runId, parentRunId, tags) {
|
async handleChainError(err, runId, parentRunId, tags) {
|
||||||
|
if (controller.signal.aborted) {
|
||||||
|
console.warn("[handleChainError]", "abort");
|
||||||
|
await writer.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
console.log("[handleChainError]", err, "writer error");
|
console.log("[handleChainError]", err, "writer error");
|
||||||
var response = new ResponseBody();
|
var response = new ResponseBody();
|
||||||
response.isSuccess = false;
|
response.isSuccess = false;
|
||||||
@ -112,6 +127,11 @@ export class AgentApi {
|
|||||||
// await writer.close();
|
// await writer.close();
|
||||||
},
|
},
|
||||||
async handleLLMError(e: Error) {
|
async handleLLMError(e: Error) {
|
||||||
|
if (controller.signal.aborted) {
|
||||||
|
console.warn("[handleLLMError]", "abort");
|
||||||
|
await writer.close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
console.log("[handleLLMError]", e, "writer error");
|
console.log("[handleLLMError]", e, "writer error");
|
||||||
var response = new ResponseBody();
|
var response = new ResponseBody();
|
||||||
response.isSuccess = false;
|
response.isSuccess = false;
|
||||||
@ -159,6 +179,9 @@ export class AgentApi {
|
|||||||
// console.log("[handleToolEnd]", { output, runId, parentRunId, tags });
|
// console.log("[handleToolEnd]", { output, runId, parentRunId, tags });
|
||||||
},
|
},
|
||||||
async handleAgentEnd(action, runId, parentRunId, tags) {
|
async handleAgentEnd(action, runId, parentRunId, tags) {
|
||||||
|
if (controller.signal.aborted) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
console.log("[handleAgentEnd]");
|
console.log("[handleAgentEnd]");
|
||||||
await writer.ready;
|
await writer.ready;
|
||||||
await writer.close();
|
await writer.close();
|
||||||
@ -301,14 +324,6 @@ export class AgentApi {
|
|||||||
pastMessages.push(new AIMessage(message.content));
|
pastMessages.push(new AIMessage(message.content));
|
||||||
});
|
});
|
||||||
|
|
||||||
// const memory = new BufferMemory({
|
|
||||||
// memoryKey: "chat_history",
|
|
||||||
// returnMessages: true,
|
|
||||||
// inputKey: "input",
|
|
||||||
// outputKey: "output",
|
|
||||||
// chatHistory: new ChatMessageHistory(pastMessages),
|
|
||||||
// });
|
|
||||||
|
|
||||||
let llm = new ChatOpenAI(
|
let llm = new ChatOpenAI(
|
||||||
{
|
{
|
||||||
modelName: reqBody.model,
|
modelName: reqBody.model,
|
||||||
@ -349,7 +364,9 @@ export class AgentApi {
|
|||||||
["human", "{input}"],
|
["human", "{input}"],
|
||||||
new MessagesPlaceholder("agent_scratchpad"),
|
new MessagesPlaceholder("agent_scratchpad"),
|
||||||
]);
|
]);
|
||||||
const modelWithTools = llm.bind({ tools: tools.map(formatToOpenAITool) });
|
const modelWithTools = llm.bind({
|
||||||
|
tools: tools.map(convertToOpenAITool),
|
||||||
|
});
|
||||||
const runnableAgent = RunnableSequence.from([
|
const runnableAgent = RunnableSequence.from([
|
||||||
{
|
{
|
||||||
input: (i: { input: string; steps: ToolsAgentStep[] }) => i.input,
|
input: (i: { input: string; steps: ToolsAgentStep[] }) => i.input,
|
||||||
@ -373,19 +390,21 @@ export class AgentApi {
|
|||||||
tools,
|
tools,
|
||||||
});
|
});
|
||||||
|
|
||||||
// const executor = await initializeAgentExecutorWithOptions(tools, llm, {
|
executor
|
||||||
// agentType: "openai-functions",
|
.call(
|
||||||
// returnIntermediateSteps: reqBody.returnIntermediateSteps,
|
{
|
||||||
// maxIterations: reqBody.maxIterations,
|
input: reqBody.messages.slice(-1)[0].content,
|
||||||
// memory: memory,
|
signal: this.controller.signal,
|
||||||
// });
|
},
|
||||||
|
[handler],
|
||||||
executor.call(
|
)
|
||||||
{
|
.catch((error) => {
|
||||||
input: reqBody.messages.slice(-1)[0].content,
|
if (this.controller.signal.aborted) {
|
||||||
},
|
console.warn("[AgentCall]", "abort");
|
||||||
[handler],
|
} else {
|
||||||
);
|
console.error("[AgentCall]", error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
return new Response(this.transformStream.readable, {
|
return new Response(this.transformStream.readable, {
|
||||||
headers: { "Content-Type": "text/event-stream" },
|
headers: { "Content-Type": "text/event-stream" },
|
||||||
|
@ -2,9 +2,8 @@ import { NextRequest, NextResponse } from "next/server";
|
|||||||
import { AgentApi, RequestBody, ResponseBody } from "../agentapi";
|
import { AgentApi, RequestBody, ResponseBody } from "../agentapi";
|
||||||
import { auth } from "@/app/api/auth";
|
import { auth } from "@/app/api/auth";
|
||||||
import { EdgeTool } from "../../../../langchain-tools/edge_tools";
|
import { EdgeTool } from "../../../../langchain-tools/edge_tools";
|
||||||
import { OpenAI } from "langchain/llms/openai";
|
|
||||||
import { OpenAIEmbeddings } from "langchain/embeddings/openai";
|
|
||||||
import { ModelProvider } from "@/app/constant";
|
import { ModelProvider } from "@/app/constant";
|
||||||
|
import { OpenAI, OpenAIEmbeddings } from "@langchain/openai";
|
||||||
|
|
||||||
async function handle(req: NextRequest) {
|
async function handle(req: NextRequest) {
|
||||||
if (req.method === "OPTIONS") {
|
if (req.method === "OPTIONS") {
|
||||||
@ -21,7 +20,8 @@ async function handle(req: NextRequest) {
|
|||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
const transformStream = new TransformStream();
|
const transformStream = new TransformStream();
|
||||||
const writer = transformStream.writable.getWriter();
|
const writer = transformStream.writable.getWriter();
|
||||||
const agentApi = new AgentApi(encoder, transformStream, writer);
|
const controller = new AbortController();
|
||||||
|
const agentApi = new AgentApi(encoder, transformStream, writer, controller);
|
||||||
|
|
||||||
const reqBody: RequestBody = await req.json();
|
const reqBody: RequestBody = await req.json();
|
||||||
const authToken = req.headers.get("Authorization") ?? "";
|
const authToken = req.headers.get("Authorization") ?? "";
|
||||||
@ -52,6 +52,9 @@ async function handle(req: NextRequest) {
|
|||||||
await writer.write(
|
await writer.write(
|
||||||
encoder.encode(`data: ${JSON.stringify(response)}\n\n`),
|
encoder.encode(`data: ${JSON.stringify(response)}\n\n`),
|
||||||
);
|
);
|
||||||
|
controller.abort({
|
||||||
|
reason: "dall-e tool abort",
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var edgeTool = new EdgeTool(
|
var edgeTool = new EdgeTool(
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
import { NextRequest, NextResponse } from "next/server";
|
import { NextRequest, NextResponse } from "next/server";
|
||||||
import { AgentApi, RequestBody, ResponseBody } from "../agentapi";
|
import { AgentApi, RequestBody, ResponseBody } from "../agentapi";
|
||||||
import { auth } from "@/app/api/auth";
|
import { auth } from "@/app/api/auth";
|
||||||
import { EdgeTool } from "../../../../langchain-tools/edge_tools";
|
|
||||||
import { OpenAI } from "langchain/llms/openai";
|
|
||||||
import { OpenAIEmbeddings } from "langchain/embeddings/openai";
|
|
||||||
import { NodeJSTool } from "@/app/api/langchain-tools/nodejs_tools";
|
import { NodeJSTool } from "@/app/api/langchain-tools/nodejs_tools";
|
||||||
import { ModelProvider } from "@/app/constant";
|
import { ModelProvider } from "@/app/constant";
|
||||||
|
import { OpenAI, OpenAIEmbeddings } from "@langchain/openai";
|
||||||
|
|
||||||
async function handle(req: NextRequest) {
|
async function handle(req: NextRequest) {
|
||||||
if (req.method === "OPTIONS") {
|
if (req.method === "OPTIONS") {
|
||||||
@ -22,7 +20,8 @@ async function handle(req: NextRequest) {
|
|||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
const transformStream = new TransformStream();
|
const transformStream = new TransformStream();
|
||||||
const writer = transformStream.writable.getWriter();
|
const writer = transformStream.writable.getWriter();
|
||||||
const agentApi = new AgentApi(encoder, transformStream, writer);
|
const controller = new AbortController();
|
||||||
|
const agentApi = new AgentApi(encoder, transformStream, writer, controller);
|
||||||
|
|
||||||
const reqBody: RequestBody = await req.json();
|
const reqBody: RequestBody = await req.json();
|
||||||
const authToken = req.headers.get("Authorization") ?? "";
|
const authToken = req.headers.get("Authorization") ?? "";
|
||||||
@ -53,6 +52,9 @@ async function handle(req: NextRequest) {
|
|||||||
await writer.write(
|
await writer.write(
|
||||||
encoder.encode(`data: ${JSON.stringify(response)}\n\n`),
|
encoder.encode(`data: ${JSON.stringify(response)}\n\n`),
|
||||||
);
|
);
|
||||||
|
controller.abort({
|
||||||
|
reason: "dall-e tool abort",
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
var nodejsTool = new NodeJSTool(
|
var nodejsTool = new NodeJSTool(
|
||||||
|
@ -20,12 +20,15 @@
|
|||||||
"@aws-sdk/s3-request-presigner": "^3.414.0",
|
"@aws-sdk/s3-request-presigner": "^3.414.0",
|
||||||
"@fortaine/fetch-event-source": "^3.0.6",
|
"@fortaine/fetch-event-source": "^3.0.6",
|
||||||
"@hello-pangea/dnd": "^16.5.0",
|
"@hello-pangea/dnd": "^16.5.0",
|
||||||
|
"@langchain/community": "^0.0.20",
|
||||||
|
"@langchain/core": "^0.1.17",
|
||||||
|
"@langchain/openai": "^0.0.12",
|
||||||
"@svgr/webpack": "^6.5.1",
|
"@svgr/webpack": "^6.5.1",
|
||||||
"@vercel/analytics": "^0.1.11",
|
"@vercel/analytics": "^0.1.11",
|
||||||
|
"@vercel/speed-insights": "^1.0.2",
|
||||||
"axios": "^1.4.0",
|
"axios": "^1.4.0",
|
||||||
"cheerio": "^1.0.0-rc.12",
|
"cheerio": "^1.0.0-rc.12",
|
||||||
"duck-duck-scrape": "^2.2.4",
|
"duck-duck-scrape": "^2.2.4",
|
||||||
"@vercel/speed-insights": "^1.0.2",
|
|
||||||
"emoji-picker-react": "^4.5.15",
|
"emoji-picker-react": "^4.5.15",
|
||||||
"encoding": "^0.1.13",
|
"encoding": "^0.1.13",
|
||||||
"fuse.js": "^7.0.0",
|
"fuse.js": "^7.0.0",
|
||||||
@ -33,7 +36,7 @@
|
|||||||
"html-to-image": "^1.11.11",
|
"html-to-image": "^1.11.11",
|
||||||
"html-to-text": "^9.0.5",
|
"html-to-text": "^9.0.5",
|
||||||
"https-proxy-agent": "^7.0.2",
|
"https-proxy-agent": "^7.0.2",
|
||||||
"langchain": "^0.0.213",
|
"langchain": "^0.1.6",
|
||||||
"mermaid": "^10.6.1",
|
"mermaid": "^10.6.1",
|
||||||
"nanoid": "^5.0.3",
|
"nanoid": "^5.0.3",
|
||||||
"next": "^13.4.9",
|
"next": "^13.4.9",
|
||||||
@ -55,8 +58,8 @@
|
|||||||
"zustand": "^4.3.8"
|
"zustand": "^4.3.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/html-to-text": "^9.0.1",
|
|
||||||
"@tauri-apps/cli": "1.5.7",
|
"@tauri-apps/cli": "1.5.7",
|
||||||
|
"@types/html-to-text": "^9.0.1",
|
||||||
"@types/node": "^20.9.0",
|
"@types/node": "^20.9.0",
|
||||||
"@types/react": "^18.2.14",
|
"@types/react": "^18.2.14",
|
||||||
"@types/react-dom": "^18.2.7",
|
"@types/react-dom": "^18.2.7",
|
||||||
|
81
yarn.lock
81
yarn.lock
@ -1813,22 +1813,22 @@
|
|||||||
"@jridgewell/resolve-uri" "3.1.0"
|
"@jridgewell/resolve-uri" "3.1.0"
|
||||||
"@jridgewell/sourcemap-codec" "1.4.14"
|
"@jridgewell/sourcemap-codec" "1.4.14"
|
||||||
|
|
||||||
"@langchain/community@~0.0.12":
|
"@langchain/community@^0.0.20", "@langchain/community@~0.0.17":
|
||||||
version "0.0.12"
|
version "0.0.20"
|
||||||
resolved "https://registry.yarnpkg.com/@langchain/community/-/community-0.0.12.tgz#95b5ddfaef47db6a1f665959e417a706cf56057f"
|
resolved "https://registry.yarnpkg.com/@langchain/community/-/community-0.0.20.tgz#a64307e959545fa0b4ed6b67d5aba3437cd76879"
|
||||||
integrity sha512-mcm6FxxnLxSx9PiYvehGGwvcHjsVR5WXfYOwymojf/6d0apyewjOLzKsR3xx0HJVtCs8pff7NZSdDoE+jj8OcA==
|
integrity sha512-maPMjvF50Z+4eMs7HKmY3wfT+k6IjULqLUVPtVdN1zSGobRvnUIbQMKUY2IXVTZmaMXKBAIob+49X8vjO2snDQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@langchain/core" "~0.1.5"
|
"@langchain/core" "~0.1.16"
|
||||||
"@langchain/openai" "~0.0.9"
|
"@langchain/openai" "~0.0.10"
|
||||||
flat "^5.0.2"
|
flat "^5.0.2"
|
||||||
langsmith "~0.0.48"
|
langsmith "~0.0.48"
|
||||||
uuid "^9.0.0"
|
uuid "^9.0.0"
|
||||||
zod "^3.22.3"
|
zod "^3.22.3"
|
||||||
|
|
||||||
"@langchain/core@~0.1.5":
|
"@langchain/core@^0.1.17", "@langchain/core@~0.1.13", "@langchain/core@~0.1.16":
|
||||||
version "0.1.6"
|
version "0.1.17"
|
||||||
resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.1.6.tgz#4b1dfc361379d6bd45c6652418a05f051488e6d9"
|
resolved "https://registry.yarnpkg.com/@langchain/core/-/core-0.1.17.tgz#2718cefe4db67e97fda676a7f654ab79ece60e8b"
|
||||||
integrity sha512-mBXsHHAWgDYJPzPNwOLWXJob3DAlO1tXBybu9cJ+zcVzixiSh/oxQ5eonTK6nlFwO6kGpaIcCD9l9+yq/WCMBg==
|
integrity sha512-PNmQgyAsDFm3DsZD+Djmm+sxH8xTGMlAryhYNgTg1Wkvhh+ztCqcVVYAv+aWch8CM56FBYMD8Guq0TJuRJJxEA==
|
||||||
dependencies:
|
dependencies:
|
||||||
ansi-styles "^5.0.0"
|
ansi-styles "^5.0.0"
|
||||||
camelcase "6"
|
camelcase "6"
|
||||||
@ -1839,16 +1839,17 @@
|
|||||||
p-queue "^6.6.2"
|
p-queue "^6.6.2"
|
||||||
p-retry "4"
|
p-retry "4"
|
||||||
uuid "^9.0.0"
|
uuid "^9.0.0"
|
||||||
zod "^3.22.3"
|
zod "^3.22.4"
|
||||||
|
zod-to-json-schema "^3.22.3"
|
||||||
|
|
||||||
"@langchain/openai@~0.0.9":
|
"@langchain/openai@^0.0.12", "@langchain/openai@~0.0.10", "@langchain/openai@~0.0.12":
|
||||||
version "0.0.9"
|
version "0.0.12"
|
||||||
resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.0.9.tgz#e84b7db0554de75fdd4a8fe12914fdc2b2d2d1f6"
|
resolved "https://registry.yarnpkg.com/@langchain/openai/-/openai-0.0.12.tgz#4c6a4dda3ca96f103482f389299e018340aa2b75"
|
||||||
integrity sha512-Py7rJijOjNtb9pj5He+E9uAj9d8PCX+8Ix4LvY7cUTMCDlfkhngw2DhJ8wlk23u1IvunakdnnN74pfbO2JJBrw==
|
integrity sha512-MR9x1xRXwJpdYlVx9Tga89q/MvxPrSTYyA5vy9tQ8dfQHNWnlgmI4gB/hDIsWUu1ooScagD4wW+aTnohTX+g+g==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@langchain/core" "~0.1.5"
|
"@langchain/core" "~0.1.13"
|
||||||
js-tiktoken "^1.0.7"
|
js-tiktoken "^1.0.7"
|
||||||
openai "^4.19.0"
|
openai "^4.24.2"
|
||||||
zod "^3.22.3"
|
zod "^3.22.3"
|
||||||
zod-to-json-schema "3.20.3"
|
zod-to-json-schema "3.20.3"
|
||||||
|
|
||||||
@ -5492,29 +5493,29 @@ kleur@^4.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
|
resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
|
||||||
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
|
integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
|
||||||
|
|
||||||
langchain@^0.0.213:
|
langchain@^0.1.6:
|
||||||
version "0.0.213"
|
version "0.1.6"
|
||||||
resolved "https://registry.yarnpkg.com/langchain/-/langchain-0.0.213.tgz#52fd367d5f1a100a1cdb775ffbb98eaa5793307b"
|
resolved "https://registry.yarnpkg.com/langchain/-/langchain-0.1.6.tgz#7bd5586aa8c3db31d766ea815f2bd8f82544fcac"
|
||||||
integrity sha512-nQDOJXvtIAIuUzamCiF1AWyi2GH9FSDPR+3XulJUEpdU60aSFPZ9GBiWdu+dVHXeAmm8C0iCVi0+3GWLJrUoXA==
|
integrity sha512-ju4LLw6vTax3bfSkphcK8CE6yIKe1NXLT95Ys/gvoONRfZkV4FpNMjDc9Y+keUvzmTv2buhiFU/gslbA4eJtrw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@anthropic-ai/sdk" "^0.9.1"
|
"@anthropic-ai/sdk" "^0.9.1"
|
||||||
"@langchain/community" "~0.0.12"
|
"@langchain/community" "~0.0.17"
|
||||||
"@langchain/core" "~0.1.5"
|
"@langchain/core" "~0.1.16"
|
||||||
"@langchain/openai" "~0.0.9"
|
"@langchain/openai" "~0.0.12"
|
||||||
binary-extensions "^2.2.0"
|
binary-extensions "^2.2.0"
|
||||||
expr-eval "^2.0.2"
|
expr-eval "^2.0.2"
|
||||||
js-tiktoken "^1.0.7"
|
js-tiktoken "^1.0.7"
|
||||||
js-yaml "^4.1.0"
|
js-yaml "^4.1.0"
|
||||||
jsonpointer "^5.0.1"
|
jsonpointer "^5.0.1"
|
||||||
langchainhub "~0.0.6"
|
langchainhub "~0.0.6"
|
||||||
langsmith "~0.0.48"
|
langsmith "~0.0.59"
|
||||||
ml-distance "^4.0.0"
|
ml-distance "^4.0.0"
|
||||||
openapi-types "^12.1.3"
|
openapi-types "^12.1.3"
|
||||||
p-retry "4"
|
p-retry "4"
|
||||||
uuid "^9.0.0"
|
uuid "^9.0.0"
|
||||||
yaml "^2.2.1"
|
yaml "^2.2.1"
|
||||||
zod "^3.22.3"
|
zod "^3.22.4"
|
||||||
zod-to-json-schema "3.20.3"
|
zod-to-json-schema "^3.22.3"
|
||||||
|
|
||||||
langchainhub@~0.0.6:
|
langchainhub@~0.0.6:
|
||||||
version "0.0.6"
|
version "0.0.6"
|
||||||
@ -5532,6 +5533,17 @@ langsmith@~0.0.48:
|
|||||||
p-retry "4"
|
p-retry "4"
|
||||||
uuid "^9.0.0"
|
uuid "^9.0.0"
|
||||||
|
|
||||||
|
langsmith@~0.0.59:
|
||||||
|
version "0.0.62"
|
||||||
|
resolved "https://registry.yarnpkg.com/langsmith/-/langsmith-0.0.62.tgz#79e306b82436d8f165b976b05842ebd0f7058a1d"
|
||||||
|
integrity sha512-OjjlNbxbfEUSgbBLA7JS7Lwg0M+oMZp4ZSwujR9TZBcSKvpv1f3lE2X9e9vTWe9huoUMlUAvwoaSWdDG6w6QLQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/uuid" "^9.0.1"
|
||||||
|
commander "^10.0.1"
|
||||||
|
p-queue "^6.6.2"
|
||||||
|
p-retry "4"
|
||||||
|
uuid "^9.0.0"
|
||||||
|
|
||||||
language-subtag-registry@~0.3.2:
|
language-subtag-registry@~0.3.2:
|
||||||
version "0.3.22"
|
version "0.3.22"
|
||||||
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
|
resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d"
|
||||||
@ -6491,10 +6503,10 @@ open@^8.4.0:
|
|||||||
is-docker "^2.1.1"
|
is-docker "^2.1.1"
|
||||||
is-wsl "^2.2.0"
|
is-wsl "^2.2.0"
|
||||||
|
|
||||||
openai@^4.19.0:
|
openai@^4.24.2:
|
||||||
version "4.24.1"
|
version "4.25.0"
|
||||||
resolved "https://registry.yarnpkg.com/openai/-/openai-4.24.1.tgz#3759001eca835228289fcf18c1bd8d35dae538ba"
|
resolved "https://registry.yarnpkg.com/openai/-/openai-4.25.0.tgz#b40099d625cccb19cbf1cab88915ac1699ece0ed"
|
||||||
integrity sha512-ezm/O3eiZMnyBqirUnWm9N6INJU1WhNtz+nK/Zj/2oyKvRz9pgpViDxa5wYOtyGYXPn1sIKBV0I/S4BDhtydqw==
|
integrity sha512-qLMFOizjxKuDfQkBrczZPYo6XVL4bdcuz9MR11Q+M91kGcs8dQw+O90nRcC+qWuhaGphQkfXQJMn4cd7Yew3Kg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "^18.11.18"
|
"@types/node" "^18.11.18"
|
||||||
"@types/node-fetch" "^2.6.4"
|
"@types/node-fetch" "^2.6.4"
|
||||||
@ -7906,12 +7918,17 @@ zod-to-json-schema@3.20.3:
|
|||||||
resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.20.3.tgz#8c95d8c20f20455ffa0b4b526c29703f35f6d787"
|
resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.20.3.tgz#8c95d8c20f20455ffa0b4b526c29703f35f6d787"
|
||||||
integrity sha512-/Q3wnyxAfCt94ZcrGiXXoiAfRqasxl9CX64LZ9fj+4dKH68zulUtU0uk1WMxQPfAxQ0ZI70dKzcoW7hHj+DwSQ==
|
integrity sha512-/Q3wnyxAfCt94ZcrGiXXoiAfRqasxl9CX64LZ9fj+4dKH68zulUtU0uk1WMxQPfAxQ0ZI70dKzcoW7hHj+DwSQ==
|
||||||
|
|
||||||
|
zod-to-json-schema@^3.22.3:
|
||||||
|
version "3.22.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/zod-to-json-schema/-/zod-to-json-schema-3.22.3.tgz#1c71f9fa23f80b2f3b5eed537afa8a13a66a5200"
|
||||||
|
integrity sha512-9isG8SqRe07p+Aio2ruBZmLm2Q6Sq4EqmXOiNpDxp+7f0LV6Q/LX65fs5Nn+FV/CzfF3NLBoksXbS2jNYIfpKw==
|
||||||
|
|
||||||
zod@3.21.4:
|
zod@3.21.4:
|
||||||
version "3.21.4"
|
version "3.21.4"
|
||||||
resolved "https://registry.npmmirror.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"
|
resolved "https://registry.npmmirror.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"
|
||||||
integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==
|
integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==
|
||||||
|
|
||||||
zod@^3.22.3:
|
zod@^3.22.3, zod@^3.22.4:
|
||||||
version "3.22.4"
|
version "3.22.4"
|
||||||
resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
|
resolved "https://registry.yarnpkg.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
|
||||||
integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==
|
integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==
|
||||||
|
Loading…
Reference in New Issue
Block a user