M17idd commited on
Commit
283f324
·
verified ·
1 Parent(s): 936909b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +61 -0
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',