LangChain을 이용해 RAG 와 같은 토이프로젝트를 실행해보셨던 분들이라면 익숙하실 python 모듈입니다. https://pypi.org/project/chromadb/ chromadb Chroma. pypi.org RAG를 구현하려면 벡터 데이터베이스로부터 정보를 가져와 LLM에 전달해야 하죠? 벡터 데이터베이스 역할을 하는 것이 바로 Chromadb 모듈입니다. pypi 에 나와있는 모듈 특징을 보더라도 LangChain, LlamaIndex를 위주로 하는 데이터베이스 모델임을 확인할 수 있습니다. 다음 명령어를 통해 설치할 수 있습니다. pip install chromadb https://velog.io/@dasiy/%EB%AC%B8%EC%84%9C%EB%A5%BC-%EA%B8%B0%EB%B..
백준 5430 문제를 풀다가..입력이 [1,2,3,4] 이렇게 문자열 형식으로 들어오는데 이걸 바로 list로 받아볼 수 없을까 해서 찾아보다 알게 되었다. ast 모듈을 이용하면 됨! import astlist = ast.literal_eval(input()) 이런식으로 코드를 작성하면 된다. 만약 이미 리스트로 저장되어있는 경우여서 원소의 타입만 변경해주어야 하는 경우라면map 을 이용하면 된다. int_list = list(map(int, str_list)) map을 이용하는 방법은 잘 알지만, 입력으로 [1,2,3,4] 이런식으로 str을 받게 되어버리면 리스트로 인식하는게 아니라 '[' 기호 ',' 기호 등 따로 입력으로 인식되기 때문에 아래 방법이 통하지 않는다. ++)근데 ast 모듈이 어느..
백준 10799번 문제입니다. 이젠 괄호만 봐도 스택이 생각나버리는...😞 이번 문제는 이해하는게 너무 오래 걸리고 어려워서 글을 작성하게 되었습니다. 문제 해결 아이디어 괄호 문제의 포인트는 괄호를 스택에 넣고 쌍이 맞게 되면 pop()을 통해 빼내는 방식으로 해내는 것입니다. "(" 기호가 들어오게 되면 쇠막대기가 있거나 or 레이저로 시작점을 자르는 경우가 됩니다. "(" 기호가 들어오고 ")" 기호가 바로 들어오는 경우 -> 레이저로 자르게 되는 경우 (막대의 오른쪽 끝) ")" 만 들어온 경우 -> "(" 기호는 막대의 시작점이 된다. (막대의 왼쪽 끝) 위의 두 아이디어를 가지고 문제의 그림을 다시 봅시다. ()로 괄호가 완성된 시점에서 레이저를 통해 막대를 자를 수 있습니다. 첫 번째 괄호 ..
백준 11726번 타일링 문제입니다. DP 문제의 특징은 전에 계산된 식의 결과값을 다시 사용함으로써 메모리 효용성을 기대하는 것이죠. 그래서 문제에 대한 반복적인 규칙을 찾아 점화식을 만들어 푸는 방법으로 접근해야합니다. 문제 분석 $2*n$ 크기의 직사각형을 $1*2$ 혹은 $2*1$ 의 타일로 채우는 방법은 두 가지 경우의 수로 나눌 수 있습니다. 마지막 직사각형이 $1*2$ 타일이 한 개 들어가는 경우 마지막 직사각형으로 $2*1$ 타일이 두 개 들어가는 경우 첫 번째 경우는 마지막은 $1*2$ 타일로 놓고, $2*(n-1)$ 크기의 직사각형을 채우는 방법의 수와 같죠. 두 번째 경우는 마지막에 타일이 두 개가 들어가기 때문에 $2*(n-2)$ 크기의 직사각형을 채우는 방법의 수와 같아집니다. 그..
https://fastcampus.co.kr/b2g_kdigitaltraining_ai Upstage AI Lab | 패스트캠퍼스 LLM부문 세계 1위를 석권한 AI 기업 업스테이지와 AI 실무 교육 최강자 패스트캠퍼스가 만든 Upstage AI Lab에서 AI 인재가 되어보세요 fastcampus.co.kr 업스테이지 AI lab 은 패스트캠퍼스와 함께 주관하는 KDT 과정입니다. (내가 등록 취소해야만 했던 이유...) 훈련과정 난이도는 중급 - 고급으로 설정되어 있어, 아 나 인공지능이 뭔지 잘 모르지만 한 번 배워보고 싶은데? 하시는 분들 보다는 아 나 인공지능 배웠는데 이 분야 프로젝트나 커리어나 실적좀 쌓고 대학원이나 취업에 더 도움됐으면 좋겠다! 하시는 분들이 참가하시면 좋을 것 같습니다. ..
LangChain 관련 프레임워크를 공부하다 보면 각종 API key들을 호출하고 관리해야 할 필요가 있습니다.특히 OpenAI API key 처럼 토큰마다 유료 결제를 해 사용해야 하는 항목들의 경우 더 예민하게 관리해야겠죠😔 예를 들어 코드를 수정하다가 Github 과 같은 오픈 레지스토리에 내 API key를 실수로 올리게 된다면... 과금 대참사가 일어날지도 모릅니다..! 또 OpenAI 관련 Cookbook 들을 실습하다 보면 종종 OpenAI API key 가 환경변수로부터 호출되도록 코드가 짜여 있는 것 처럼API, Github Token 등등... 관리는 매우 중요합니다! 그래서 오늘은 OpenAI API key를 Python-dotenv 를 이용하여 환경변수에 관리하는 방법에 대해 알아..