Spaces:
Runtime error
Runtime error
File size: 1,297 Bytes
08efb1b 65f214d 08efb1b 65f214d 08efb1b 65f214d 739922c 65f214d 739922c 08efb1b 65f214d 08efb1b 65f214d 08efb1b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | import os
import pandas as pd
from langchain_community.vectorstores import FAISS
from langchain_community.embeddings import HuggingFaceInferenceAPIEmbeddings
from src.config import FAQ_CSV_PATH, VECTOR_DB_PATH, HUGGINGFACEHUB_API_TOKEN
def initialize_vector_database(csv_path=FAQ_CSV_PATH):
"""Buat database vektor dari CSV dengan format yang benar."""
df = pd.read_csv(csv_path, sep=None, engine='python')
if "question" not in df.columns or "answer" not in df.columns:
raise ValueError("CSV harus memiliki kolom 'Question' dan 'Answer'.")
texts = [f"Pertanyaan: {q}\nJawaban: {a}" for q, a in zip(df["question"], df["answer"])]
embedding = HuggingFaceInferenceAPIEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2",
api_key=HUGGINGFACEHUB_API_TOKEN,
)
vector_store = FAISS.from_texts(texts, embedding)
vector_store.save_local(VECTOR_DB_PATH)
print("✅ Database vektor berhasil dibuat dan disimpan!")
def load_vector_database():
"""Memuat database FAISS."""
embedding = HuggingFaceInferenceAPIEmbeddings(
model_name="sentence-transformers/all-MiniLM-L6-v2",
api_key=HUGGINGFACEHUB_API_TOKEN,
)
return FAISS.load_local(VECTOR_DB_PATH, embedding, allow_dangerous_deserialization=True) |