| | import os |
| | import argparse |
| | from pathlib import Path |
| | from crawl import * |
| | from chatbot import * |
| |
|
| |
|
| | def main(args): |
| | |
| | api_key = args.api_key |
| | if not api_key: |
| | api_key = str(os.environ.get("GROQ_API_KEY", "")) |
| | print(f"Groq API Key๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ถ๋ฌ์์ต๋๋ค. ๋ท์๋ฆฌ 4๊ธ์ : ...{api_key[-4:]}") |
| |
|
| | if not api_key: |
| | print("API Key๊ฐ ์ค์ ๋์ง ์์์ต๋๋ค. Hugging Face Secrets์์ 'GROQ_API_KEY'๋ฅผ ์ค์ ํ๊ฑฐ๋ --api_key ์ธ์๋ฅผ ์
๋ ฅํด์ฃผ์ธ์.") |
| |
|
| |
|
| | |
| | abs_download_path = os.path.join(args.base_dir, args.download_dir) |
| | abs_db_path = os.path.join(args.base_dir, args.db_dir) |
| |
|
| | collection = make_db(abs_download_path, abs_db_path, args.collection_name) |
| | |
| | |
| |
|
| | crawl_seoultech_notice(abs_download_path, args.base_url, args.num_page, collection) |
| |
|
| | |
| | collection = get_chroma_collection(abs_db_path, args.collection_name) |
| | |
| | |
| | |
| | if collection is None: |
| | print("Chromadb Collection์ ๋ถ๋ฌ์ค์ง ๋ชปํ์ต๋๋ค. ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค. ") |
| | return |
| |
|
| | |
| | system_prompt = get_system_prompt(args.prompt_type) |
| |
|
| | |
| | chat_with_rag(api_key = api_key, |
| | collection = collection, |
| | system_prompt = system_prompt, |
| | args = args) |
| |
|
| |
|
| | if __name__ == "__main__": |
| | parser = argparse.ArgumentParser() |
| | |
| | parser.add_argument("--base_dir", type = str, default = str(Path(__file__).resolve().parent)) |
| | parser.add_argument("--db_dir", type = str, default = "seoultech_data_db") |
| | parser.add_argument("--collection_name", type = str, default = "seoultech_notices") |
| | parser.add_argument("--embedf_name", type = str, default = "BAAI/bge-m3") |
| | |
| | |
| | parser.add_argument("--base_url", type = str, default = "https://www.seoultech.ac.kr/service/info/notice") |
| | parser.add_argument("--download_dir", type = str, default = "seoultech_data_download") |
| | parser.add_argument("--header", type = dict, default = {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}) |
| | parser.add_argument("--num_page", type = int, default = 1) |
| |
|
| | |
| | parser.add_argument("--api_key", type = str, default = "") |
| | parser.add_argument("--log_dir", type = str, default = "chat_log") |
| | parser.add_argument("--model_name", type = str, default = "llama-3.3-70b-versatile") |
| | parser.add_argument("--temperature", type = float, default = 0.5) |
| | parser.add_argument("--n_results", type = int, default = 3) |
| | parser.add_argument("--prompt_type", type = str, default = "v") |
| |
|
| | args = parser.parse_args() |
| | main(args) |