UNPKG

langcode

Version:

A Plugin-Based Framework for Managing and Using LangChain

57 lines (51 loc) 1.81 kB
import { FaissStore } from "@langchain/community/vectorstores/faiss"; import { OpenAIEmbeddings } from "@langchain/openai"; import { Document } from "@langchain/core/documents"; import { Logger } from "../../core"; export type FaissCreateConfig = { embeddings: OpenAIEmbeddings; documents: Document[]; logger?: Logger; }; export type FaissSaveConfig = { store: FaissStore; path: string; logger?: Logger; }; export type FaissLoadConfig = { embeddings: OpenAIEmbeddings; path: string; logger?: Logger; }; export async function createFaissStore(config: FaissCreateConfig): Promise<FaissStore> { try { config.logger?.info("📦 FAISS store oluşturuluyor..."); const store = await FaissStore.fromDocuments(config.documents, config.embeddings); config.logger?.success("✅ FAISS store oluşturuldu."); return store; } catch (err) { config.logger?.error("❌ FAISS store oluşturulurken hata:", err); throw err; } } export async function saveFaissStore(config: FaissSaveConfig): Promise<void> { try { config.logger?.info(`💾 FAISS store '${config.path}' konumuna kaydediliyor...`); await config.store.save(config.path); config.logger?.success("✅ FAISS store başarıyla kaydedildi."); } catch (err) { config.logger?.error("❌ FAISS store kaydederken hata:", err); throw err; } } export async function loadFaissStore(config: FaissLoadConfig): Promise<FaissStore> { try { config.logger?.info(`📂 FAISS store '${config.path}' konumundan yükleniyor...`); const store = await FaissStore.load(config.path, config.embeddings); config.logger?.success("✅ FAISS store başarıyla yüklendi."); return store; } catch (err) { config.logger?.error("❌ FAISS store yüklenirken hata:", err); throw err; } }