1. RAGRAG는 “Retrieval Augmented Generation”의 약자로, 사용자의 쿼리에 대한 응답을 생성할 때 모델의 내재적 지식에만 의존하지 않고, 외부의 지식을 검색하여 보충하는 방법이다. 이 방법은 크게 세 가지 중요한 단계로 구성된다:Indexing: 외부 지식을 효율적으로 검색할 수 있도록 미리 처리해 두는 단계이다.Retrieval: 사용자의 쿼리에 적합한 지식을 검색하여 모델에 전달하는 단계이다.Generation: 전달받은 지식을 기반으로 사용자의 쿼리에 대응하는 응답을 생성하는 단계이다. 2. Language Models언어 모델은 자연어를 확률적으로 모델링하는 시스템이다. 즉, 주어진 단어나 문장 조합이 얼마나 자연스러운지를 학습하고, 이에 따라 확률을 부여할 수 있다..
분류 전체보기
📌 서론지금까지 챗의 메모리 없이 단일 질문에만 대답하는 챗봇을 만들었다. 이제 history까지 기억할 수 있는 챗봇과 마지막으로 '육아'와 관련되지 않은 질문이 오면 대답을 회피하는 기능을 추가해 보자! (이전 글과 이어지는 내용이니 참고하시면 좋을것같습니다~)[팀프로젝트] 페르소나를 이용한 오은영 박사님 챗봇 (1) 데이터 수집 및 임베딩, 쿼리 테스트 [팀프로젝트] 페르소나를 이용한 오은영 박사님 챗봇 (1) 데이터 수집 및 임베딩, 쿼리 테스트📌 서론첫 번째 팀프로젝트다! 우리는 페르소나를 이용해 챗봇을 만다는 과제를 받았다. 어떤 캐릭터를 진행할까 하다가 일반적인 소설 속 캐릭터, 애니메이션 캐릭터는 말투정도밖에 따라 하yijoon009.tistory.com 1. 메모리 객체from la..
이번 글은 이전 글과 이어지는 내용이다. 이전 글은 여기서 볼 수 있다.페르소나를 이용한 챗봇 (1) - 셜록 홈즈 데이터 준비 및 검색 엔진 설정 페르소나를 이용한 챗봇 (1) - 셜록 홈즈 데이터 준비 및 검색 엔진 설정셜록 홈즈와 대화하는 챗봇을 만들어보자! 1. 데이터 준비a. 원본 데이터 다운로드!curl https://sherlock-holm.es/stories/plain-text/cano.txt -o ../dataset/holmes/canon.txt 위 명령어는 curl을 사용하여 URL에서 텍스yijoon009.tistory.com 1. bot with prompt우선 메모리가 없는 페르소나 챗봇을 베이스라인 삼아서 만들어보자.template = """I want you to act l..
📌 서론첫 번째 팀프로젝트다! 우리는 페르소나를 이용해 챗봇을 만다는 과제를 받았다. 어떤 캐릭터를 진행할까 하다가 일반적인 소설 속 캐릭터, 애니메이션 캐릭터는 말투정도밖에 따라 하지 못할 거 같은데 우리는 그 안에서 콘텐츠도 주고받을 수 있고 반대 의견을 제시했을 때 대립할 수 있는 인물을 잡고자 했다. 그래서 우리는 오은영 박사 챗봇을 만들기로 했다. 오은영 박사님의 나긋나긋한 말투는 일단 바로 알아볼 수 있고, 오은영 박사님의 가치관과 대립하는 의견을 제시했을 때 과연 챗봇은 어떻게 대답할까?라는 궁금증도 있었다. 우리는 임베딩 모델, LLM 모두 solar api를 사용했다. 여기서 나오는 코드들은 전부 이전에 작성한 코드를 조금씩 변형하고 openai api를 solar api로 수정한 내용..
셜록 홈즈와 대화하는 챗봇을 만들어보자! 1. 데이터 준비a. 원본 데이터 다운로드!curl https://sherlock-holm.es/stories/plain-text/cano.txt -o ../dataset/holmes/canon.txt 위 명령어는 curl을 사용하여 URL에서 텍스트 파일을 다운로드하고, 이를 ../dataset/holmes/canon.txt 경로에 저장하는 것이다. 이 파일에는 셜록 홈즈 소설 전체가 담겨 있다. b. API 키 설정여기서는 OpenAI API 키를 설정하는 과정이다. os.environ을 사용하여 환경 변수 OPENAI_API_KEY에 API 키를 저장한다. 이후 이 키를 사용하여 OpenAI의 서비스를 호출할 수 있게 된다.import osapi_key =..
rebasegit rebase는 Git에서 브랜치의 커밋 히스토리를 재정렬하고, 지정한 브랜치의 가장 최신 커밋 뒤에 현재 브랜치의 커밋들을 다시 적용하는 명령어이다. 일반적으로 두 가지 상황에서 사용된다:커밋 히스토리를 정리할 때: 여러 개의 중간 커밋을 합쳐서 하나의 커밋으로 만드는 등, 깔끔한 히스토리를 유지하고자 할 때 사용된다.브랜치 간의 변경 사항을 합칠 때: merge와 유사하게 사용되지만, rebase는 커밋을 병합하는 대신 새로운 커밋 뒤에 이어 붙인다. 이로 인해 히스토리가 더 직관적이고 일관되게 유지된다. rebase squashSquash는 여러 개의 커밋을 하나로 합치는 작업을 말한다. 이 과정에서 합쳐지는 커밋들의 메시지 또한 하나로 합쳐지게 된다. 지금 진행할 예시에서는 '로그..
📌 문제 발생새로운 Conda 가상환경을 만들어 활성화했지만, which python 명령어를 실행하면 계속 기본 파이썬 경로인 /usr/bin/python3이 나오는 문제가 발생했다. conda로 새로운 가상 환경을 만들어주고 활성화를 했는데 python 경로가 기본 파이썬 경로로 나오는 문제가 발생했다.원래 conda 가상환경이 활성화된 상태에서 which python 명령어를 실행하면 가상환경 내의 Python 경로를 출력해야 한다.그런데 계속 기존 파이썬 기본 경로인 /usr/bin/python3이 나오는 에러가 있었다. green ~ conda activate langchain(langchain) green ~ (langchain) green ~ which python..
HEADHEAD는 Git에서 현재 체크아웃된 브랜치 또는 커밋을 가리키는 포인터이다. HEAD는 작업 트리의 마지막 커밋을 가리키며, 현재 작업 중인 브랜치를 가리킨다. 예를 들어, main 브랜치가 체크아웃되어 있다면, HEAD는 main 브랜치를 가리키고, main 브랜치는 마지막 커밋을 가리킨다. • 현재 작업 위치: HEAD는 현재 작업 중인 브랜치나 커밋을 나타낸다. • 포인터: HEAD는 커밋을 가리키는 포인터로서, 현재 체크아웃된 브랜치의 최신 커밋을 가리킨다. 예를 들어, git checkout main 명령어를 실행하면 HEAD는 main 브랜치를 가리키게 된다. 만약 특정 커밋 해시를 사용하여 체크아웃한다면, HEAD는 해당 커밋을 가리키게 된다. 체크아웃 (checkout)작업할 ..