Update app.py
Browse files
app.py
CHANGED
@@ -182,6 +182,8 @@ st.markdown('<div class="chat-message">👋 سلام! چطور میتونم کم
|
|
182 |
#if user_input:
|
183 |
# st.markdown(f'<div class="chat-message">📩 شما: {user_input}</div>', unsafe_allow_html=True)
|
184 |
|
|
|
|
|
185 |
# ----------------- لود PDF و ساخت ایندکس -----------------
|
186 |
class TogetherEmbeddings(Embeddings):
|
187 |
def __init__(self, model_name: str, api_key: str):
|
@@ -209,7 +211,66 @@ def get_pdf_index():
|
|
209 |
).from_loaders(loader)
|
210 |
|
211 |
index = get_pdf_index()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
213 |
llm = ChatOpenAI(
|
214 |
base_url="https://api.together.xyz/v1",
|
215 |
api_key='0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979',
|
|
|
182 |
#if user_input:
|
183 |
# st.markdown(f'<div class="chat-message">📩 شما: {user_input}</div>', unsafe_allow_html=True)
|
184 |
|
185 |
+
|
186 |
+
""""
|
187 |
# ----------------- لود PDF و ساخت ایندکس -----------------
|
188 |
class TogetherEmbeddings(Embeddings):
|
189 |
def __init__(self, model_name: str, api_key: str):
|
|
|
211 |
).from_loaders(loader)
|
212 |
|
213 |
index = get_pdf_index()
|
214 |
+
"""
|
215 |
+
|
216 |
+
# ----------------- لود csv و ساخت ایندکس -----------------
|
217 |
+
|
218 |
+
|
219 |
+
class TogetherEmbeddings(Embeddings):
|
220 |
+
def __init__(self, model_name: str, api_key: str):
|
221 |
+
self.model_name = model_name
|
222 |
+
self.client = Together(api_key=api_key)
|
223 |
+
|
224 |
+
def embed_documents(self, texts: List[str]) -> List[List[float]]:
|
225 |
+
response = self.client.embeddings.create(model=self.model_name, input=texts)
|
226 |
+
return [item.embedding for item in response.data]
|
227 |
+
|
228 |
+
def embed_query(self, text: str) -> List[float]:
|
229 |
+
return self.embed_documents([text])[0]
|
230 |
+
|
231 |
+
@st.cache_resource
|
232 |
+
def get_csv_index(csv_file):
|
233 |
+
with st.spinner('📄 در حال پردازش فایل CSV...'):
|
234 |
+
# خواندن دادههای CSV
|
235 |
+
df = pd.read_csv(csv_file)
|
236 |
+
|
237 |
+
# فرض بر این است که شما میخواهید ستون خاصی از CSV را برای ایندکس کردن استفاده کنید
|
238 |
+
texts = df['your_column_name'].tolist() # ستون مورد نظر خود را مشخص کنید
|
239 |
+
|
240 |
+
# ایجاد embeddings
|
241 |
+
embeddings = TogetherEmbeddings(
|
242 |
+
model_name="togethercomputer/m2-bert-80M-8k-retrieval",
|
243 |
+
api_key="0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979"
|
244 |
+
)
|
245 |
+
|
246 |
+
# استفاده از VectorstoreIndexCreator برای ساخت ایندکس
|
247 |
+
return VectorstoreIndexCreator(
|
248 |
+
embedding=embeddings,
|
249 |
+
text_splitter=RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=0)
|
250 |
+
).from_documents(texts)
|
251 |
+
|
252 |
+
# مسیر فایل CSV به صورت دستی
|
253 |
+
csv_file_path = 'testttt.csv'
|
254 |
+
|
255 |
+
# در اینجا فایل را به صورت دستی میخوانیم
|
256 |
+
if csv_file_path:
|
257 |
+
csv_index = get_csv_index(csv_file_path)
|
258 |
+
st.success("ایندکس فایل CSV با موفقیت ساخته شد!")
|
259 |
+
|
260 |
+
|
261 |
|
262 |
+
|
263 |
+
|
264 |
+
|
265 |
+
index = get_csv_index()
|
266 |
+
|
267 |
+
|
268 |
+
#------------------------------------------
|
269 |
+
|
270 |
+
|
271 |
+
|
272 |
+
|
273 |
+
|
274 |
llm = ChatOpenAI(
|
275 |
base_url="https://api.together.xyz/v1",
|
276 |
api_key='0291f33aee03412a47fa5d8e562e515182dcc5d9aac5a7fb5eefdd1759005979',
|