[M1 Mac, Monterey 12.6.3, Python 3.10.4]
LlamaIndexアプリが簡単には落ちないよう例外処理を強化しました。
def makeIDX(self):
# インデックスの作成および保存
llm_predictor = LLMPredictor(llm=OpenAI(temperature=0, model_name="text-embedding-ada-002"))
service_context = ServiceContext.from_defaults(llm_predictor=llm_predictor)
data_path = self.input.text()
data_path2 = data_path.replace("'", "") # 拡張子判定用
data_path3 = Path(data_path2) # loader用
if data_path2.endswith('.csv'):
SimpleCSVReader = download_loader("SimpleCSVReader")
loader = SimpleCSVReader()
elif data_path2.endswith('.pdf'):
PDFReader = download_loader("PDFReader")
loader = PDFReader()
else:
print('ファイルがcsv,pdfではありません')
self.output.setText("ファイルがcsv,pdfではありません")
self.box.setStyleSheet('background-color: #ff00ff')
return
try:
nodes = loader.load_data(file=data_path3)
except Exception as e:
print('エラーが発生しました:', e)
self.output.setText(str(e))
self.box.setStyleSheet('background-color: #ff00ff')
return
else:
self.box.setStyleSheet('background-color: #00ffff')
index = GPTSimpleVectorIndex.from_documents(nodes, service_context=service_context)
now = datetime.datetime.now()
formatted_time = now.strftime('%y%m%d_%H%M%S')
index_file = "/AI/LlamaIndex/index/" + formatted_time + "_index.json"
index.save_to_disk(index_file)
self.input2.setText(index_file)
self.idxBtn2.click()