ArturG9 commited on
Commit
ca65ca1
1 Parent(s): 8be0d81

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -4
app.py CHANGED
@@ -18,6 +18,8 @@ from langchain_community.document_loaders.directory import DirectoryLoader
18
  from HTML_templates import css, bot_template, user_template
19
  from langchain_core.output_parsers import StrOutputParser
20
  from langchain_core.runnables import RunnablePassthrough
 
 
21
 
22
 
23
  def create_retriever_from_chroma(vectorstore_path="docs/chroma/", search_type='mmr', k=7, chunk_size=250, chunk_overlap=20):
@@ -32,6 +34,22 @@ def create_retriever_from_chroma(vectorstore_path="docs/chroma/", search_type='m
32
  encode_kwargs=encode_kwargs
33
  )
34
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  # Check if vectorstore exists
36
  if os.path.exists(vectorstore_path) and os.listdir(vectorstore_path):
37
  # Load the existing vectorstore
@@ -58,8 +76,26 @@ def create_retriever_from_chroma(vectorstore_path="docs/chroma/", search_type='m
58
  documents=split_docs, embedding=embeddings, persist_directory=vectorstore_path
59
  )
60
 
61
- # Create and return the retriever
62
- retriever = vectorstore.as_retriever(search_type=search_type, search_kwargs={"k": k})
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  return retriever
64
 
65
 
@@ -132,13 +168,13 @@ def create_conversational_rag_chain(retriever):
132
  llm = llamacpp.LlamaCpp(
133
  model_path=model_path,
134
  n_gpu_layers=0,
135
- temperature=0.0,
136
  top_p=0.9,
137
  n_ctx=22000,
138
  n_batch=2000,
139
  max_tokens=200,
140
  repeat_penalty=1.7,
141
- #last_n_tokens_size = 200,
142
  # callback_manager=callback_manager,
143
  verbose=False,
144
  )
 
18
  from HTML_templates import css, bot_template, user_template
19
  from langchain_core.output_parsers import StrOutputParser
20
  from langchain_core.runnables import RunnablePassthrough
21
+ from langchain.retrievers.self_query.base import SelfQueryRetriever
22
+ from langchain.chains.query_constructor.base import AttributeInfo
23
 
24
 
25
  def create_retriever_from_chroma(vectorstore_path="docs/chroma/", search_type='mmr', k=7, chunk_size=250, chunk_overlap=20):
 
34
  encode_kwargs=encode_kwargs
35
  )
36
 
37
+
38
+ llm = llamacpp.LlamaCpp(
39
+ model_path=model_path,
40
+ n_gpu_layers=0,
41
+ temperature=0.0,
42
+ top_p=0.9,
43
+ n_ctx=22000,
44
+ n_batch=2000,
45
+ max_tokens=200,
46
+ repeat_penalty=1.7,
47
+ last_n_tokens_size = 1500,
48
+ # callback_manager=callback_manager,
49
+ verbose=False,
50
+ )
51
+
52
+
53
  # Check if vectorstore exists
54
  if os.path.exists(vectorstore_path) and os.listdir(vectorstore_path):
55
  # Load the existing vectorstore
 
76
  documents=split_docs, embedding=embeddings, persist_directory=vectorstore_path
77
  )
78
 
79
+ metadata_field_info = [
80
+ AttributeInfo(
81
+ name="source",
82
+ description="The document chunk is from, should be one of documents in data folder`, or `docs/cs229_lectures/MachineLearning-Lecture03.pdf`",
83
+ type="string",
84
+ ),
85
+ AttributeInfo(
86
+ name="page",
87
+ description="The page from the document",
88
+ type="integer",
89
+ ),
90
+ ]
91
+ document_content_description = "Respublic of Lithuania law documents"
92
+ retriever = SelfQueryRetriever.from_llm(
93
+ llm,
94
+ vectorstore,
95
+ document_content_description,
96
+ metadata_field_info,
97
+ verbose=True
98
+ )
99
  return retriever
100
 
101
 
 
168
  llm = llamacpp.LlamaCpp(
169
  model_path=model_path,
170
  n_gpu_layers=0,
171
+ temperature=0.4,
172
  top_p=0.9,
173
  n_ctx=22000,
174
  n_batch=2000,
175
  max_tokens=200,
176
  repeat_penalty=1.7,
177
+ last_n_tokens_size = 200,
178
  # callback_manager=callback_manager,
179
  verbose=False,
180
  )