@jackhua/mini-langchain
Version:
A lightweight TypeScript implementation of LangChain with cost optimization features
89 lines • 2.58 kB
TypeScript
/**
* Retrieval-based chains for RAG
*/
import { BaseChain } from './base';
import { BaseChatLLM } from '../llms/base';
import { VectorStore } from '../vectorstores/base';
import { Document, ChainValues } from '../core/types';
import { PromptTemplate } from '../prompts/prompt';
/**
* Base retriever interface
*/
export interface BaseRetriever {
getRelevantDocuments(query: string): Promise<Document[]>;
}
/**
* Vector store retriever
*/
export declare class VectorStoreRetriever implements BaseRetriever {
private vectorStore;
private k;
private filter?;
private searchType;
private searchKwargs;
constructor(config: {
vectorStore: VectorStore;
k?: number;
filter?: Record<string, any>;
searchType?: 'similarity' | 'mmr';
searchKwargs?: Record<string, any>;
});
getRelevantDocuments(query: string): Promise<Document[]>;
}
/**
* Retrieval QA Chain
*/
export declare class RetrievalQAChain extends BaseChain {
private llm;
private retriever;
private prompt;
private inputKey;
private outputKey;
constructor(config: {
llm: BaseChatLLM;
retriever: BaseRetriever;
prompt?: PromptTemplate;
inputKey?: string;
outputKey?: string;
});
get inputKeys(): string[];
get outputKeys(): string[];
call(inputs: ChainValues): Promise<ChainValues>;
static fromLLM(llm: BaseChatLLM, retriever: BaseRetriever, options?: {
prompt?: PromptTemplate;
inputKey?: string;
outputKey?: string;
}): RetrievalQAChain;
}
/**
* Conversational Retrieval Chain
*/
export declare class ConversationalRetrievalChain extends BaseChain {
private llm;
private retriever;
private questionGeneratorPrompt;
private qaPrompt;
private inputKey;
private outputKey;
private chatHistoryKey;
constructor(config: {
llm: BaseChatLLM;
retriever: BaseRetriever;
questionGeneratorPrompt?: PromptTemplate;
qaPrompt?: PromptTemplate;
inputKey?: string;
outputKey?: string;
chatHistoryKey?: string;
});
get inputKeys(): string[];
get outputKeys(): string[];
call(inputs: ChainValues): Promise<ChainValues>;
static fromLLM(llm: BaseChatLLM, retriever: BaseRetriever, options?: {
questionGeneratorPrompt?: PromptTemplate;
qaPrompt?: PromptTemplate;
inputKey?: string;
outputKey?: string;
chatHistoryKey?: string;
}): ConversationalRetrievalChain;
}
//# sourceMappingURL=retrieval.d.ts.map