티스토리챌린지 19

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..

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) 프레임워크와 관련된 커뮤니..

TIL 45

수준별 수업 - 베이직반파이썬 코딩테스트 복습캐릭터의 좌표문제 설명문제 설명머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요.[0, 0]은 board의 정 중앙에 위..

TIL 44

강의 외부에서 추가로 알게 된 내용리스트 컴프리헨션에서 사용하지 못하는 것들할당 연산자+=, -=, *=, /=, %=, 등 변수나 객체의 값을 직접 변경하는 연산은 허용되지 않는다.예: [arr[i] += 1 for i in range(10)]는 문법 오류다.더보기리스트 컴프리헨션에서는 +=, -=, *=, %=와 같은 할당 연산자를 사용할 수 없다. 리스트 컴프리헨션은 새로운 리스트를 생성하기 위한 구문이며, 기존 데이터를 수정하거나 부수적인 효과(side effect)를 발생시키는 작업에는 적합하지 않다. 리스트 컴프리헨션은 값을 생성해서 반환하는 것이 목적이지, 기존 데이터를 수정하는 작업에는 설계되지 않았기 때문이다. 따라서 arr[i] += 1처럼 기존 리스트를 수정하려는 시도는 문법적으로 허..