Update app.py
Browse files
app.py
CHANGED
@@ -7,7 +7,8 @@ from langchain_huggingface import HuggingFaceEmbeddings
|
|
7 |
from langchain.prompts import PromptTemplate
|
8 |
from langchain_core.output_parsers import StrOutputParser
|
9 |
from langchain_core.runnables import RunnablePassthrough
|
10 |
-
from
|
|
|
11 |
from langchain_text_splitters import RecursiveCharacterTextSplitter
|
12 |
|
13 |
# Tiêu đề ứng dụng
|
@@ -54,7 +55,7 @@ def format_docs(docs):
|
|
54 |
def get_chat_google_model(api_key):
|
55 |
os.environ["GOOGLE_API_KEY"] = api_key
|
56 |
return ChatGoogleGenerativeAI(
|
57 |
-
model="gemini-1.5-
|
58 |
temperature=0,
|
59 |
max_tokens=None,
|
60 |
timeout=None,
|
@@ -77,8 +78,6 @@ def get_embedding_model():
|
|
77 |
|
78 |
# Hàm tạo RAG Chain
|
79 |
@st.cache_resource
|
80 |
-
# Hàm tạo RAG Chain với xử lý lưu trữ Chroma
|
81 |
-
@st.cache_resource
|
82 |
def compute_rag_chain(_model, _embd, docs_texts):
|
83 |
if not docs_texts:
|
84 |
raise ValueError("Không có tài liệu nào để xử lý. Vui lòng tải lên các tệp hợp lệ.")
|
@@ -95,9 +94,11 @@ def compute_rag_chain(_model, _embd, docs_texts):
|
|
95 |
if not os.path.exists(persist_dir):
|
96 |
os.makedirs(persist_dir)
|
97 |
|
|
|
|
|
|
|
98 |
# Khởi tạo Chroma và lưu dữ liệu
|
99 |
-
vectorstore = Chroma.from_texts(texts=texts, embedding=_embd,
|
100 |
-
vectorstore.persist() # Lưu dữ liệu vào thư mục persist_dir
|
101 |
retriever = vectorstore.as_retriever()
|
102 |
|
103 |
# Template cho prompt
|
@@ -120,8 +121,6 @@ def compute_rag_chain(_model, _embd, docs_texts):
|
|
120 |
)
|
121 |
return rag_chain
|
122 |
|
123 |
-
|
124 |
-
|
125 |
# Dialog cài đặt Google Gemini
|
126 |
@st.dialog("Setup Gemini")
|
127 |
def setup_gemini():
|
|
|
7 |
from langchain.prompts import PromptTemplate
|
8 |
from langchain_core.output_parsers import StrOutputParser
|
9 |
from langchain_core.runnables import RunnablePassthrough
|
10 |
+
from langchain.vectorstores import Chroma
|
11 |
+
from chromadb.config import Settings
|
12 |
from langchain_text_splitters import RecursiveCharacterTextSplitter
|
13 |
|
14 |
# Tiêu đề ứng dụng
|
|
|
55 |
def get_chat_google_model(api_key):
|
56 |
os.environ["GOOGLE_API_KEY"] = api_key
|
57 |
return ChatGoogleGenerativeAI(
|
58 |
+
model="gemini-1.5-pro",
|
59 |
temperature=0,
|
60 |
max_tokens=None,
|
61 |
timeout=None,
|
|
|
78 |
|
79 |
# Hàm tạo RAG Chain
|
80 |
@st.cache_resource
|
|
|
|
|
81 |
def compute_rag_chain(_model, _embd, docs_texts):
|
82 |
if not docs_texts:
|
83 |
raise ValueError("Không có tài liệu nào để xử lý. Vui lòng tải lên các tệp hợp lệ.")
|
|
|
94 |
if not os.path.exists(persist_dir):
|
95 |
os.makedirs(persist_dir)
|
96 |
|
97 |
+
# Khởi tạo Chroma với cấu hình lưu trữ
|
98 |
+
settings = Settings(persist_directory=persist_dir)
|
99 |
+
|
100 |
# Khởi tạo Chroma và lưu dữ liệu
|
101 |
+
vectorstore = Chroma.from_texts(texts=texts, embedding=_embd, client_settings=settings)
|
|
|
102 |
retriever = vectorstore.as_retriever()
|
103 |
|
104 |
# Template cho prompt
|
|
|
121 |
)
|
122 |
return rag_chain
|
123 |
|
|
|
|
|
124 |
# Dialog cài đặt Google Gemini
|
125 |
@st.dialog("Setup Gemini")
|
126 |
def setup_gemini():
|