langchain日记

2024-07-20 14:53:42 阅读:1 编辑

异常处理(假设key不对)

https://juejin.cn/book/7347579913702293567/section/7346773004967215144

let chat_param = {
    openAIApiKey: 's123',
    temperature: 0.9,
    modelName: "gpt-3.5-turbo",
    maxTokens:500,
    maxRetries: 0,
    configuration: {
        baseURL: 'https://api.openai-proxy.org/v1',
    },
};
const model = new ChatOpenAI(chat_param);

try{
    var res = await model.invoke([
        new HumanMessage("福建厦门的土特产有哪些?,列出3个,字数不超过30个字")
    ])
    console.log(res);
}catch (e) {
    console.error(e.error.message);
}

realLLM表示可以成功的llm,可以是本地模型,当fakeLLM失败时,调用realLLM

import { ChatOpenAI } from "@langchain/openai";

const fakeLLM = new ChatOpenAI({
    azureOpenAIApiKey: "123",
    maxRetries: 0,
});
const realLLM = new ChatOpenAI()
const llmWithFallback = fakeLLM.withFallbacks({
    fallbacks: [realLLM]
})

await llmWithFallback.invoke("你好")

pdf的加载

import * as pdfParse from "pdf-parse";
import { PDFLoader } from "langchain/document_loaders/fs/pdf";

const loader = new PDFLoader("data/github-copliot.pdf");
const pdfs = await loader.load()
console.log(pdfs);
D:\edison\langchainjs\node_modules\pdf-parse\index.js
let isDebugMode = !module.parent;

改成

let isDebugMode = false;

获取web文件

import "cheerio";
import { CheerioWebBaseLoader } from "@langchain/community/document_loaders/web/cheerio";

let url = "https://kaiyi.cool/blog/github-copilot";
url = "https://www.zhyxm.com/aboutme";
const loader = new CheerioWebBaseLoader(
    url
);

const docs = await loader.load();
console.log(docs);

获取markdown文件

https://github.com/michelf/php-markdown 先用php把md文件转成文本

https://github.com/cebe/markdown

搜索功能

https://js.langchain.com/v0.2/docs/integrations/document_loaders/web_loaders/serpapi

import { SerpAPILoader } from "@langchain/community/document_loaders/web/serpapi";

const apiKey = "serp-apikey";
const question = "什么 github copliot"
const loader = new SerpAPILoader({ q: question, apiKey });
const docs = await loader.load();
console.log(docs);