@langchain/community
Version:
Third-party integrations for LangChain.js
1 lines • 2.16 kB
Source Map (JSON)
{"version":3,"file":"arxiv.cjs","names":["BaseRetriever","searchArxiv","loadDocsFromResults","getDocsFromSummaries"],"sources":["../../src/retrievers/arxiv.ts"],"sourcesContent":["import { BaseRetriever, BaseRetrieverInput } from \"@langchain/core/retrievers\";\nimport { Document } from \"@langchain/core/documents\";\nimport {\n searchArxiv,\n loadDocsFromResults,\n getDocsFromSummaries,\n} from \"../utils/arxiv.js\";\n\nexport type ArxivRetrieverOptions = {\n getFullDocuments?: boolean;\n maxSearchResults?: number;\n} & BaseRetrieverInput;\n\n/**\n * A retriever that searches arXiv for relevant articles based on a query.\n * It can retrieve either full documents (PDFs) or just summaries.\n */\nexport class ArxivRetriever extends BaseRetriever {\n static lc_name() {\n return \"ArxivRetriever\";\n }\n\n lc_namespace = [\"langchain\", \"retrievers\", \"arxiv_retriever\"];\n\n getFullDocuments = false;\n\n maxSearchResults = 10;\n\n constructor(options: ArxivRetrieverOptions = {}) {\n super(options);\n this.getFullDocuments = options.getFullDocuments ?? this.getFullDocuments;\n this.maxSearchResults = options.maxSearchResults ?? this.maxSearchResults;\n }\n\n async _getRelevantDocuments(query: string): Promise<Document[]> {\n try {\n const results = await searchArxiv(query, this.maxSearchResults);\n\n if (this.getFullDocuments) {\n // Fetch and parse PDFs to get full documents\n return await loadDocsFromResults(results);\n } else {\n // Use summaries as documents\n return getDocsFromSummaries(results);\n }\n } catch {\n throw new Error(`Error retrieving documents from arXiv.`);\n }\n }\n}\n"],"mappings":";;;;;;;;;;AAiBA,IAAa,iBAAb,cAAoCA,2BAAAA,cAAc;CAChD,OAAO,UAAU;AACf,SAAO;;CAGT,eAAe;EAAC;EAAa;EAAc;EAAkB;CAE7D,mBAAmB;CAEnB,mBAAmB;CAEnB,YAAY,UAAiC,EAAE,EAAE;AAC/C,QAAM,QAAQ;AACd,OAAK,mBAAmB,QAAQ,oBAAoB,KAAK;AACzD,OAAK,mBAAmB,QAAQ,oBAAoB,KAAK;;CAG3D,MAAM,sBAAsB,OAAoC;AAC9D,MAAI;GACF,MAAM,UAAU,MAAMC,cAAAA,YAAY,OAAO,KAAK,iBAAiB;AAE/D,OAAI,KAAK,iBAEP,QAAO,MAAMC,cAAAA,oBAAoB,QAAQ;OAGzC,QAAOC,cAAAA,qBAAqB,QAAQ;UAEhC;AACN,SAAM,IAAI,MAAM,yCAAyC"}