마침내 래그가 활약하는 걸 보러 왔죠
그렇게 떠들어대더니 결국 이렇게 됐네요
주피터랩의 5주 차 폴더에 있어요
4일째인 노트북을 보고 있는데요 3일째에 추가된 걸 복제한 거예요
가상의 보험 기술 회사의 지식 노동자 세럼의 문제를 여전히 해결하는
중이니까요
기존의 수입품부터 시작할 거예요
랑체인용 수입 기능도 추가했는데요 랑체인 메모리에서 두 가지를 추가했어요
대화 버퍼 메모리를 불러올게요
랭 체인에서 대화용 회수 체인을 가져왔어요
이건 제가 전에 언급한 추상화 두 가지인데요
눈치 빠른 분들은 눈치챘겠지만 세 번째 추상화도 여기 들어 있어요
이전 강의에서 언급하지 않고 이미 불러왔지만 여기 있네요
챗 오픈아이는 이미 랑가 체인에서 수입되고 있어요
오픈AI, 지금까지 오픈AI 엠딩만 사용했는데 이번에는 채팅 오픈AI를
사용할 거예요
수입 검사를 해 봐야겠어요
Get it 안 하면 멀리 못 가요
그런 다음 상수를 하죠
환경 변수를 로드해요
이제 익숙해질 거예요
하지만 검토하고 저기 있는 지식 기반 디렉터리에서 문서를 갖고 오죠
이제 텍스트 덩어리를 갖고 와서 얼마나 많은지 보죠
123번인 건 확실해요
네, 123개요
직원, 제품 회사, 계약이죠
이제 다시 벡터 데이터베이스에 Put을 할게요
벡터 데이터베이스를 삭제하고 다시 생성하죠
각 벡터는 1536개의 차원을 가지고 있죠
상상하긴 어렵지만 2D로 처리할 수 있어요
그게 우리 일이죠
저기 있네요
3D로 보자고 할 수도 있어요
비트가 좀 불필요하네요
이걸 전부 다시 볼 필요는 없었지만 이 도표들을 보니 좋네요
난 거짓말한 적 없어요
이 코드 네 줄만큼 간단해요
먼저 새 LM 추상화를 생성하죠
채팅방 오픈라이예요
아까 가져온 것을 put을 거예요
드디어 그걸 쓸 수 있게 됐죠 Put it up Put it up Put it up Put it up Put it up Put it
온도와 모델명 메모리를 제공해요
전달되는 대화 버퍼 메모리를 생성합니다 아까 말씀드렸듯이 키를 생성하고
목록의 형태로 반환하라고 하죠
크로마 벡터 스토어를 가져와서 리트리버를 호출합니다 이 추상화, 리트리버에서 래핑하기
위해서요 랭 체인에 필요한 거죠
그래서 지금 대화 회수 체인을 만들 때 거기에 도달하는 거죠 get it
LM, 리트리버, 메모리를 전달하는 거죠
그게 다예요
실행해 보죠
네
그래서 실행했죠
살짝 실망스럽긴 하지만요
뭘 기대하셨는지 모르겠지만요 갑자기 get이 나타날 거라고 생각하셨는지
모르겠네요
실제로 호출해야 해요
그걸 활용할 방법을 찾아야 해요
그래서 우리가 하려는 말은 쿼리 호출이라고 하죠
짧은 영상으로 짧게 설명해 주시겠어요? 간단하게 시작할게요
좋아요
이렇게 말해요
결과가 대화의 사슬이라고 하셨죠?
방금 생성한 거요 메서드 호출이라고 부르죠
인보크는 질문이 열쇠인 사전을 선택해요
철자가 맞나요?
네
질문 있어요
그리고 메시지 쿼리를 입력해야 해요 Put
다 됐어요
그런 다음 print결과를 하죠
이건 그 결과의 해답 키 아래에 있어야 해요
이게 우리가 합친 마지막 코드입니다 래그 파이프라인을 사용하기 위해서요
어떻게 될 것 같아요?
쿼리를 가져가요
벡터로 바꿀 거예요
크롬 데이터 스토어에서 찾아볼 거예요
관련 있는 덩어리를 찾을 거예요
덩어리 복수형이라고 하죠
그건 나중에 다시 얘기하죠
관련 있는 덩어리를 찾죠
프롬프트에 그걸 넣어 OpenAI에 보내죠
GPT for 미니로 보낼 겁니다 여기서 지정했거든요
그리고 돌아온 것은 그것을 패키지로 해서 answer key에 두죠
이게 통할지 보죠
됐어요
쇼어햄에서 처음으로 래그 파이프라인을 탔어요
혁신적인 보험 기술 회사 에이버리 랭커스터가 설립했죠 지금도 잘 알려진 이름이에요
정보도 좀 있고요
여러분이 갖고 놀 수 있는 연습용으로 남겨두겠습니다만 다양한 문서에서
그걸 갖고 온 걸 보실 수 있어요 회사 섹션의 모든 것에서 나온 거겠죠
다양한 정보로부터 그걸 검색한 걸 보셨으면 좋겠네요
좋아요
그럼 좋겠죠?
어떻게 될지 알아요?
그걸 멋진 사용자 인터페이스로 패키지할 수 있다면 좋지 않을까요? 채팅
UI를 통해 사용할 수 있도록요
물론 그라디오는 아주 간단하게 만들고요
이 시점에서 우리가 할 일은 그라디오가 기대하는 포맷으로 채팅 함수를 만드는 거예요
그러려면 메시지와 역사가 필요하죠
제가 한 일은 방금 작성한 바로 그 줄을 취해 여기 둔 겁니다 그런 다음 우리가
기대하는 걸 정확히 반환하죠
뭔가 이상한 점이 보일 수도 있으니 잠시 시간을 두고 살펴보세요 뭔가 이상한
점이 보이나요?
한 가지 이상하게 생각하실 만한 건 이 역사 매개 변수를
실제로 아무것도 안 한다는 거예요
완전히 무시해요
우리가 그걸 무시하는 이유는 랭 체인이 이미 역사를 다루기 때문이죠
그래디오에 채팅 UI가 있어서 사용자 인터페이스에서 대화 기록을 유지하고 매번 전체
대화 기록과 함께 호출되지만 말이에요
랭이 이미 우리에게 메모리를 줬기 때문에 지금까지의 대화를
기록하고 있어요
새 메시지와 새 답만 알면 돼요
어쨌든 이 감방을 다시 찍고 있어요
사실 이미 재실행했는데 메모리를 지우려고 재실행 중이에요
완전히 새롭게 시작하는 거죠
이걸 불러오면 이제 채팅할 수 있어요
안녕하세요
무엇을 도와드릴까요?
보험이 뭐죠?
네
됐어요
놀랍지도 않네요
이제 몰래 뭔가 할 수 있어요
이런 식으로요
에이버리는 뭘 했죠?
제가 이 얘기를 꺼낸 이유는 이런 질문에서 몇 가지 짚고 넘어가고 싶은
게 있어서예요
먼저, 무력을 이용한 해결책이 명확합니다 장난감 버전 래그에서는 랭커스터를 성으로
보고 문서에서 검색할 수 없었지만 가망이 없었죠
새장이라는 단어를 쓰면 안 돼요
여기서 시도하는 건 당연히 흥미롭죠
둘째, aviery를 소문자 a로 썼어요. 왜냐하면
a는 철자가 다르기 때문에 텍스트로 검색하면 틀릴 테니까요.
그래서 우리가 제대로 된 케이스를 사용하지 않았다는 사실을 감당할 수 있을지 보는 것도 흥미로울 거예요
세 번째는 메모리라는 개념을 이용하는 거예요 그녀가 전에 했던 걸 말하는
거니까요
엘름에 설립하기 전에 뭘 했는지 묻는 거예요
모델이 현재 상황을 잘 파악하고 맥락을 유지하는지 볼 거예요 조류 새장에
관한 정보와 이전 행동을 둘 다 검색할 수 있는지요
직원 기록에서 찾아봐야 해요
그리고 일관성 있게 질문에 대답하세요
어디 보죠
쇼어햄에 입사하기 전 에이버리 랭커스터는 이노베이트 보험 솔루션스의 수석 제품 관리자로 일했습니다
혁신적인 보험을 개발한 곳이죠
그 전에는 시장 경향에 초점을 맞춘 사업 분석가였죠
그래서 여러분이 에이버리의 직원 기록을 확인하시도록
남겨둘게요 그리고 에이버리의 신원을 제대로 파악하고 있는지 확인하세요 재미있는 실험이니까요
물론 다른 어려운 질문들도 시도해 보세요
무슨 뜻이죠?
네
어디 보죠
침착하게가 그 차의 제품이었어요
네
아니면 다르게 물어보죠
자동차 보험 회사에서 자동차에 제품을 공급하나요?
까다로운 문제를 내 보죠
다 됐어요
네
자동차 보험 회사들을 위한 포털인 안정감을 주는 보험이죠
그래서 제가 진정이나 자동차라는 단어를 사용하지 않는데도 관련 문서와 관련
덩어리를 찾아 정확한 답변을 할 수 있죠
랙으로 하는 첫 실험이었군요
이제 이걸 드셔 보세요
여러분이 수사하고 어려운 질문을 해서 그걸 깨뜨리거나 잘못된 정보를 제공할 수 있는지 알아내길
바랍니다 아니면 선을 벗어나 한계까지 밀어붙여 보세요 get it get it
다음 시간엔 몇 가지 다른 걸 포함해 방법 몇 가지를 다루겠습니다 이런 종류의 프롬프트와 관련해
공통된 문제 몇 가지와 어떻게 디버그 하고 Get up 밑에서 무슨 일이 있는지
알아내는 방법도요
하지만 쇼어햄에 있는 우리 가상 보험 기술 회사를 위해 만든 래그 파이프라인을 즐겁게 보셨길
바라요
다음에 봐요