이전에 우리는 사용자가 ‘채팅'할 수 있는 파이썬 앱을 통해 Couchbase RAG 기능을 사용하는 방법을 보여주었습니다.’ PDF와 함께 또는 X와 함께. 구축하기는 간단하지만, 더 간단하게 만들 수 있을까요? 저는 최근에 Couchbase Shell을 많이 사용해 보았는데, 이를 통해 비슷한 작업을 할 수 있을 것입니다.
범위 및 컬렉션 설정
이미 잘 알고 계실 것으로 생각합니다 카우치베이스 셸 (cbsh), 그리고 구성된 클러스터와 모델이 있습니다.
범위와 컬렉션을 생성 및 선택한 다음, 기본 인덱스를 생성합니다:
|
1 2 3 4 5 |
< 범위 만들다 PDF < 씨비–환경 범위 PDF < 컬렉션 만들다 PDF < 씨비–환경 컬렉션 PDF < 질의 “`default`:`cbsh`.`pdf`.`pdf`에 기본 인덱스 생성” |
PDF를 청크 단위의 텍스트로 변환하기
PDF을 텍스트로 변환할 수 있는 다양한 도구가 있습니다. 대부분의 리눅스 배포판에서 다음을 찾을 수 있습니다. pdftotext.
|
1 |
< pdftotext ~/독점 설명.PDF |
이렇게 하면 동일한 경로에 텍스트 버전의 파일이 생성되지만, 다음이 추가됩니다. .txt 확장 프로그램.
함께 누셸 (cbsh은 Nushell을 기반으로 합니다) split 명령어 덕분에 텍스트를 쉽게 쪼갤 수 있습니다. 문제는 파일을 청크로 나누는 데 필요한 올바른 구분자(delimiter)를 찾는 것입니다. 다행히도 여러 줄 문자열을 지원하므로, 파일에서 두 문단 사이의 텍스트를 복사해서 붙여넣었습니다. 하지만 정규식을 사용하면 좀 더 정교한 작업을 할 수 있어야 합니다. 그것이 블로그 소재와 프로덕션의 차이입니다 😇.
|
1 2 3 |
< 열다 ~/독점 설명.txt |분할하다 열 “ ::: ::: “|포장하다 텍스트 |
이것은 텍스트 문자열 테이블을 생성합니다. Couchbase로 가져오기 위해 이를 content JSON 객체 안의 텍스트 필드로 감싸고, 무작위로 생성된 UUID를 추가한 뒤 결과를 upsert합니다.
|
1 2 3 |
< 열다 ~/독점 설명.txt |분할하다 열 “ ::: ::: “|포장하다 텍스트 |포장하다 콘텐츠 | 각각 { 삽입하다 아이디 { 무작위의 UUID } } | 의사 업서트 |
다음 단계는 텍스트의 임베딩, 즉 벡터 표현을 생성하는 것입니다:
|
1 |
< 질의 “SELECT meta().id as id, p.* from pdf as p” | 포장하다 콘텐츠| 벡터 풍부하게 하다–의사 텍스트 | 의사 업서트 |
그런 다음 벡터 검색 인덱스를 생성합니다. 여기서는 pdf라고 부르며, 필드를 색인화합니다. 텍스트 벡터, 1536차원 벡터를 생성하고 사용하세요 L2 노름 기본값이므로 유사도 알고리즘의 경우입니다.
|
1 |
< 벡터 만들다–색인 PDF 텍스트 벡터 1536 |
모노폴리 규칙을 가져왔고 감옥에서 나오는 법을 묻고 있습니다. 원래 예시에서는 맥락이 있는 답변과 없는 답변이 각각 하나씩 있었습니다.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
< 묻다 “감옥에서 나오는 법” 만약 당신 또는 누군가 당신 알다 이다 안으로 감옥 그리고 필요한 것들 -로 있다 출시된, 여기 이다 일부 일반적인 단계 -로 가지다: 연락처 a 변호사: 만약 당신 가지다 법률의 표현 또는 알다 의 a 변호사 누구 할 수 있다 도와주세요 ~와 함께 당신의 경우, 도달하다 밖으로 -로 그들을 ~를 위해 지원 안으로 탐색하는 중 그 법률의 과정. 획득하다 a 보석금 채권: 안에 많은 경우, 개인들 할 수 있다 있다 출시된 에서 감옥 ~에 의해 게시물 보석금. 이것 요구한다 결제 중 a 설정 금액 의 돈 -로 그 법원, 어느 것 이다 일반적으로 반환된 한 번 그 개인 참석합니다 모두 필수 법원 날짜들. 참석하다 법원 청문회: 그것‘예정된 심리에 출석하고 법원이 설정한 석방 조건을 준수하는 것을 포함하여 모든 법원 요구 사항을 준수하는 것이 중요합니다. 지원 요청하기: 이 어려운 시기에 도움이나 조언을 제공할 수 있는 가족, 친구 또는 지역 단체에 연락하는 것을 고려해 보세요. 구속 상태에서 풀려나는 절차는 사건의 구체적인 정황과 관할 구역에 따라 다를 수 있음을 명심하시기 바랍니다.’s 항상 최고의 -로 상담하다 ~와 함께 법률의 전문가들 ~를 위해 맞춤형 조언 그리고 지원. |
그리고 문맥과 함께:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
< 하다 질문 = “감옥에서 나오는 법”; 벡터 풍부하게 하다–텍스트 $질문 | 벡터 검색 PDF 텍스트 벡터 | 선택 아이디 |의사 얻다| 선택 콘텐츠.텍스트 | 묻다 $질문 👤 로랑 도귄 🏠 카펠라 안으로 구름 cbsh.깃 로그.PDF < 하다 질문 = “감옥에서 나오는 법”; 벡터 풍부하게 하다–텍스트 $질문 | 벡터 검색 PDF 텍스트 벡터 | 선택 아이디 |의사 얻다| 선택 콘텐츠.텍스트 | 묻다 $질문 임베딩 배치 1/1& ; 당신 할 수 있다 얻다 밖으로 의 감옥 ~에 의해 다음에 이것들 방법들: **구르다 복식:** 만약 당신 굴리기 a 더블 ~와 함께 그 하얀색 주사위 ~에 아무런 의 당신의 다음 셋 차례, 당신 할 수 있다 즉시 이동 밖으로 의 감옥. 당신 그렇다면 이동 그 번호 의 공백 보여진 ~에 의해 당신의 복식 굴리기. **“감옥에서 무조건 석방” 카드:** 만약 당신 가지다 a “감옥에서 무조건 석방” 카드, 당신 할 수 있다 사용하다 그것 -로 얻다 밖으로 의 감옥 ~없이 구르는 중 복식. 이것 카드 할 수 있다 있다 획득한 ~에 의해 구매 그것 에서 다른 플레이어 또는 그리기 그것 에서 그 기회 또는 커뮤니티 Chest cards. **Pay Fine:** 당신 할 수 있다 also choose -로 pay a fine 의 $50 이전 당신 굴리기 그 주사위 ~에 either 의 당신의 다음 two 차례. After 결제 중 그 fine, 당신 이다 free -로 이동 그리고 continue playing. Remember, 만약 당신 하다 not 굴리기 복식 ~에 의해 당신의 third turn 또는 사용하다 a “감옥에서 무조건 석방” 카드, 당신 반드시 해야 한다 pay 그 $50 fine -로 얻다 밖으로 의 감옥. |
Let’s simplify this by putting everything in a script. This is the content of myScript.nu:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
def initRAGPipeline [] { 범위 만들다 PDF 씨비–환경 범위 PDF 컬렉션 만들다 PDF 씨비–환경 컬렉션 PDF 질의 “`default`:`cbsh`.`pdf`.`pdf`에 기본 인덱스 생성” 벡터 만들다–색인 PDF 텍스트 벡터 1536 } def storeRAGDoc [] { 포장하다 텍스트 |포장하다 콘텐츠 | 각각 { 삽입하다 아이디 { 무작위의 UUID } } | 의사 업서트 질의 “SELECT meta().id as id, p.* from `pdf` as p” | 포장하다 콘텐츠| 벡터 풍부하게 하다–의사 텍스트 | 의사 업서트 } def myAsk [$질문: 문자열] { 하다 norag = 묻다 $질문 하다 rag = 벡터 풍부하게 하다–텍스트 $질문 | 벡터 검색 PDF 텍스트 벡터 | 선택 아이디 |의사 얻다| 선택 콘텐츠.텍스트 | 묻다 $질문 {“rag”:$rag, “norag”:$norag} } |
You can source the script file and then call those functions:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
< 원천 ./ragDemo/ragScript.nu < initRAGPipeline < 열다 독점 설명.txt |분할하다 열 “ ::: ::: “| store < myAsk “감옥에서 나오는 법” 임베딩 배치 1/1 ╭───────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ rag │ Here 이다 그 ways -로 얻다 밖으로 의 감옥 안으로 그 game 의 Monopoly: │ │ │ │ │ │ 1. **구르다 복식:** 그 most common way -로 얻다 밖으로 의 감옥 이다 ~에 의해 구르는 중 복식 ~에 당신의 turn. 만약 당신 굴리기 │ │ │ 복식 ~와 함께 그 regular 하얀색 주사위 ~에 아무런 의 당신의 다음 셋 차례 after being sent -로 감옥, 당신 할 수 있다 즉시 이동 당신의 토큰 밖으로 의 감옥 그리고 advance 그 해당하는 │ │ │ 번호 의 공백. Remember that 당신 할 수 있다 오직 사용하다 그 하얀색 주사위 ~를 위해 이것 purpose. │ │ │ │ │ │ 2. **사용하여 “감옥에서 무조건 석방” 카드:** 만약 당신 가지다 a “감옥에서 무조건 석방” 카드, 당신 할 수 있다 │ │ │ 사용하다 그것 -로 얻다 밖으로 의 감옥 ~없이 구르는 중 복식. Simply present 그 카드 -로 그 Banker -로 얻다 밖으로 의 감옥 ~를 위해 free. 그 카드 이다 그렇다면 반환된 -로 그 bottom 의 그 deck. │ │ │ │ │ │ 3. │ │ │ **Purchase 그 카드:** 만약 다른 플레이어 가지고 있다 a “감옥에서 무조건 석방” 카드 그리고 이다 willing -로 sell 그것, 당신 할 수 있다 purchase 그 카드 에서 그들을 at a mutually agreed–upon 가격. │ │ │ 이것 allows 당신 -로 얻다 밖으로 의 감옥 even 만약 당신 don‘t have the card yourself. │ │ │ │ │ │ 4. **Pay the Fine:** If you do not roll doubles within three turns or do not have a “Get Out of │ │ │ Jail Free” card, you must pay a fine of $50 to the Bank before you roll the dice on either of your next two turns. Once you pay the fine, you are immediately released from │ │ │ jail and can move your token as per the dice roll. │ │ │ │ │ │ These are the four main ways to get out of jail in Monopoly. │ │ norag │ If you or someone you know is currently in jail and looking to get released, here are some general steps to consider: │ │ │ │ │ │ 1. Contact a lawyer: A criminal defense attorney can │ │ │ provide guidance on legal options and help navigate the legal process for release. │ │ │ │ │ │ 2. Attend court hearings: It is important to attend all court hearings and follow any │ │ │ conditions set by the court to demonstrate cooperation with the legal system. │ │ │ │ │ │ 3. Consider bail: If bail is an option, you may be able to pay a set amount to be released from │ │ │ jail pending trial. If you cannot afford the bail amount, you may seek assistance from a bail bond agent. │ │ │ │ │ │ 4. Seek alternative options: Depending on the circumstances of your │ │ │ case, there may be alternative options for release such as pretrial services, diversion programs, or supervised release. │ │ │ │ │ │ 5. Follow legal advice: It is crucial to follow the │ │ │ advice of your legal counsel and comply with all legal requirements to increase the chances of a successful release. │ │ │ │ │ │ It’s important -로 note that 그 과정 의 getting 밖으로 의 │ │ │ 감옥 할 수 있다 vary depending ~에 그 specific circumstances 의 그 경우 그리고 그 laws 안으로 당신의 jurisdiction. For 맞춤형 guidance, 그것‘s recommended -로 speak ~와 함께 a 변호사 또는 │ │ │ 법률의 professional specializing 안으로 criminal law. │ ╰───────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ |
Here, you can see the same kind of result we achieved in the Python RAG demo, but this time using Couchbase Shell. It should be easier to manipulate, change or extend, because you don’t need to deploy an app or know Python. However, it will be less flexible than what you can achieve with Python and Langchain.
If this interests you, stay tuned–more AI and Couchbase Shell content is on the way!
- 자세히 알아보기 카우치베이스 셸
- 그리고 Couchbase vector search capabilities

댓글 남기기
댓글을 달기 위해서는 로그인해야합니다.