전체 글 116

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

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처럼 기존 리스트를 수정하려는 시도는 문법적으로 허..

TIL 43 도전 과제

도전 구현 과제LangSmith의 Prompt Library를 참고하여 prompt engineering을 수행해보자.  RAG의 성능은 prompt 의 품질에도 많은 영향을 받는다. 이번 도전 구현과제는 prompt engineering을 해보고, prompt 실험 결과를 외부에서 잘 비교 정리할 수 있도록 코드를 고쳐보는 것이다.LangSmith의 Prompt Library 를 참고하여 프롬프트를 3개 이상 아래와 같은 파일 구조로 저장하자.예시).├── main.jupynb└── Prompts/ ├── prompt1.txt ├── prompt2.txt └── prompt3.txt 각 프롬프트를 외부에서 불러와서 실행할 수 있도록 코드를 고쳐보자.실행 결과는 자동으로 Result 디렉..