2024/11 30

TIL 51

사이드바에 대화 내역 버튼 생성버튼 생성 1대화 내역을 csv 파일로 저장하고 불러와서 사이드바에서 확인할 수 있게 했다. 버튼을 클릭해 해당 대화 내역 전체를 확인할 수 있다. 참고 코드는 아래와 같다.CSV_FILE = "chat_history.csv"try: chat_history_df = pd.read_csv(CSV_FILE)except FileNotFoundError: chat_history_df = pd.DataFrame(columns=["ChatID", "Role", "Content"]) def get_button_label(chat_df, chat_id): first_message = chat_df[(chat_df["ChatID"] == chat_id) & (c..

TIL 50

이전 대화내용에서 quiz만 불러오기quiz 중에서도 보기를 제외하고 질문 부분만 추출해오기 위해서, 특정 패턴만 추출하도록 정규식을 사용했다.  # '퀴즈:'로 시작하는 내용만 추출quiz_pattern = r"퀴즈: .*"quiz_onlys = re.findall(quiz_pattern, previous_conversation)quiz_onlys를 for문으로 하나 씩 출력해서 질문 부분만 추출되었는지 확인할 수 있다.# 필요한 부분 출력print("추출된 퀴즈:")for quiz_only in quiz_onlys: print(quiz_only)feedback_prompt에 '대화 기록' 부분에 불러오는 내용과 모델에 전달하는 데이터를 previous_conversation에서 quiz_only..

TIL 49

챗봇과의 대화 내용을 txt 파일로 저장하고, 그 txt 파일을 다음 대화에 불러올 수 있게 해야 한다.1. 폴더 생성 및 파일 경로 설정import osfrom datetime import datetime# 폴더 이름folder_name = "previous_conversation"# 폴더가 없으면 생성if not os.path.exists(folder_name): os.makedirs(folder_name)# 파일 이름에 타임스탬프 추가timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") # "20241126_153045" 형식file_name = f"conversation_log_{timestamp}.txt"file_path = os.path.join..

TIL 48

팀 프로젝트를 진행하면서 각자 코드를 짜보는 식으로 초반에 진행했다. 그러나 다른 팀원의 코드를 내가 실행할 때, 환경 차이로 인해 코드가 실행되지 않는 상황이 계속됐다. 나는 Chroma를 사용하지 않았다. 그러나 팀원은 Chroma를 사용했고, 내가 그 코드를 실행하면서 나의 하루가 시작되었다. 오늘은 원래 내가 맡은 부분인, 챗봇과의 대화를 저장하고 불러오는 부분을 시작하려고 했다. 그러나 기본 코드로 참고하기로 한 팀원의 코드를 내가 실행하는 과정에서 문제가 시작됐다. 하루가 다 지나고, 모든 것이 해결된 지금, 정리해보니 가장 문제된 부분은 바로 Chroma를 불러오는 부분인 것 같다. 팀원의 코드를 실행시키니, 설치되지 않은 프로그램들이 많았다. 그래서 그 프로그램들을 실행시키기 위해서 설치하..

TIL 47

강의 외부에서 추가로 알게 된 내용re.sub() 함수정규 표현식을 사용해 문자열에서 특정 패턴을 찾아 원하는 값으로 대체하는 데 사용된다. 문법은 아래와 같다.re.sub(pattern, replacement, string, count=0, flags=0)pattern: 찾고자 하는 정규 표현식(패턴).replacement: 대체할 문자열 또는 함수.string: 패턴을 찾을 대상 문자열.count: 대체할 횟수(기본값은 0으로, 제한 없음).flags: 정규식 플래그로, 대소문자 구분 등 옵션을 지정.예시를 통해 자세히 알아보자.예시 1) 단순한 문자열 대체문자열에서 숫자를 공백으로 대체하는 예시다.import retext = "딥러닝의 발전은 2010년대부터 시작되었습니다."result = re.s..

WIL 7

팀 프로젝트가 시작됐다. 배우는 입장에서 이것저것 다 해보고 싶은 마음이 크다. 그러나 팀원분들과 나와의 배경 지식 차이가 매우 크다는 느낌을 받았다. 내가 이것저것 해본다고 시간을 많이 쓰게 된다면, 그만큼 다른 팀원들의 속도에 따라가지 못하게 된다. 팀 프로젝트를 완성도있게 해내는 것이 궁극적인 목표이기 때문에, 그보다 작은 목표들은 일단은 내려놓아야 겠다는 생각을 했다. 나는 전처리 부분을 꼼꼼히 해보고 싶었다. 그러나 예상치 못하게 데이터 로드하는 부분에서 너무 많은 시간을 써버렸다. 쓸데없는 작업에 몰두해서 하루를 통으로 날린 것이다. 내가 몰두했던 부분은 이미지의 텍스트를 읽어오는 것이었는데, 결국 이 작업은 현업에서도 쉽지 않은 일임을 알게 되었다. 하루를 통으로 날린 기분이지만, 연연하지 ..

TIL 46 팀 프로젝트

팀 프로젝트데이터셋 로드하기1. NotionDirectoryLoader로 노션 파일 읽어오기노션의 API를 활용하는 방법도 있지만, API를 활용하는 방법을 사용하지 않고 싶어서 노션 파일을 html, md, pdf 형식으로 각각 저장해서 읽어오는 방법을 선택했다.from langchain_community.document_loaders.notion import NotionDirectoryLoader위의 코드는 langchain_community 패키지의 document_loaders.notion 모듈에서 NotionDirectoryLoader 클래스를 가져오는 코드다.패키지/라이브러리: langchain_community이 패키지는 LangChain이라는 자연어 처리(NLP) 프레임워크와 관련된 커뮤니..