Retrieval-Augmented Generation (RAG) for The SAS System in 2024.
請先到 Ollama 官網下載並安裝對應系統的 Ollama 軟體:Ollama 官網
安裝完成後,啟動 Ollama,並確認模型可以在本地端運行:
ollama run llama3
conda create -n SAS_env python=3.11
conda activate SAS_env
pip install -r requirements.txt
streamlit run chatbot.py #chemical_mapping No. --server.port #xxxx
streamlit run chatbot.py 59 --server.port 2024
streamlit run chatbot_openai.py 59 --server.port 2024
將 SAS 平台上化合物資訊下載後,放入 ./SAS_file
資料夾,並轉檔為 txt 格式:
python load_csv_to_txt.py
更改 vectorstore.py
中的 file_path
路徑,並執行以下指令:
python vectorstore.py
- 更改 RAG 人物設定的 Prompt 內容:調整
retriever_chain.py
。 - 更改 Nemoguardrails 限制條件:編輯
./config/config.yml
。
化合物向量資料庫與 SAS 平台流水號的對應文件位於 chemical_mapping.txt
。
- 將新化合物的 CSV 檔放入
./SAS_file
資料夾。 - 使用
load_csv_to_txt.py
進行轉檔。 - 利用
vectorstore.py
轉換為向量資料庫。- 由於每份文件差異,需嘗試不同的文字分割塊尺寸與重疊數,建議初始設定:
chunk_size=1000
,chunk_overlap=200
,SAS chemical number=對應流水號
。
- 由於每份文件差異,需嘗試不同的文字分割塊尺寸與重疊數,建議初始設定:
- 將對應流水號新增至
chemical_mapping.txt
。 - 執行
chatbot.py
啟動 RAG。
檔案皆放在 ./Benzene_txt
內
設定好 gen_summary.py
中的 input_file
跟 output_file
,並執行以下指令:
python gen_summary.py
更改 vectorstore.py
中的 file_path
路徑為 ./Benzene_txt/Benzene_summary_gpt.txt
,並執行以下指令:
python vectorstore.py
設定:chunk_size=1000
,chunk_overlap=200
,SAS chemical number=59_sum
將苯的安全替代物資料放入 ./SAS_file/Benzene_alternatives
資料夾,並轉檔為 txt 格式:
python load_csv_to_txt_alternatives.py
以苯的兒童產品化學替代物為例:
更改 vectorstore.py
中的 file_path
路徑為 ./Benzene_txt/Benzene_alternatives_Childrens_Products.txt
,並執行以下指令:
python vectorstore.py
設定:chunk_size=1000
,chunk_overlap=200
,SAS chemical number=59_alternatives_children_product