Docs 에이전트를 사용하여 AI 콘텐츠 검색 빌드

정보 검색은 인위적인 정보 수집의 가장 일반적인 용도 중 지능적 (AI) 생성 모델입니다. 대화형 검색 인터페이스 빌드 사용자가 AI를 사용해 특정 질문을 하고 직접 답변하는 것입니다.

이 튜토리얼에서는 AI 기반 대화형 검색을 빌드하는 방법을 보여줍니다. 인터페이스를 구현해 보세요. 그것은 다음을 기반으로 합니다. Docs 에이전트, Google Gemini API를 사용해 대화형 대화를 생성하는 오픈소스 프로젝트 검색 인터페이스를 제공하므로 새 AI 모델을 학습시키거나 Gemini 모델을 사용합니다. 즉, 이러한 검색 기능을 신속하게 구축하여 크고 작은 콘텐츠 세트에서 사용할 수 있습니다

통계를 포함한 프로젝트 개요 및 확장 방법에 대한 동영상 보기 개발자들의 생생한 경험담을 확인해 보세요. AI 콘텐츠 검색 | Google AI로 빌드 아니면 안내에 따라 프로젝트 확장을 시작할 수 있습니다. 참조하세요.

개요

Docs 에이전트 프로젝트는 특정 문서에 대한 대화형 검색 인터페이스를 콘텐츠 세트는 Google Gemini API와 생성 모델을 기반으로 합니다. 사용자가 할 수 있는 작업 대화 형식으로 자세한 질문을 하고 자세한 답변을 얻음 광고를 게재할 수 있습니다. 뒤에서 문서 에이전트는 질문을 하고 콘텐츠의 벡터 데이터베이스를 검색하여 관련 텍스트의 스니펫을 포함한 생성 모델에 관한 자세한 프롬프트 생성 모델이 질문에 대한 응답을 생성하고 Docs 에이전트가 응답의 형식을 지정하고 사용자에게 표시합니다.

Docs 에이전트의 기능 다이어그램그림 1. Docs 에이전트 프로젝트 앱의 기능 다이어그램

Docs 에이전트가 콘텐츠에 관한 질문에 답할 수 있게 하는 비결은 벡터 데이터베이스를 생성합니다. 콘텐츠를 텍스트를 논리적 청크로 생성하고 각 텍스트를 위한 벡터를 생성합니다. 이러한 벡터는 정보를 숫자로 나타낸 텍스트 데이터를 추출하고 텍스트 임베딩 함수를 생성합니다.

사용자가 질문하면 Docs 에이전트는 동일한 텍스트 삽입을 사용합니다. 함수를 사용하여 질문을 숫자 표현을 만들고 값을 사용하여 벡터 데이터베이스를 검색하고 관련 콘텐츠를 찾습니다. 그것은 최고의 해당 정보를 생성 모델의 프롬프트에 추가합니다. AI 질문에 추가 컨텍스트 정보를 가져와 있습니다.

프로젝트 설정

다음 안내는 Google Cloud 콘솔의 Docs 에이전트 프로젝트를 개발 및 테스트입니다 일반적인 단계는 몇 가지 기본 요건 설치입니다. 몇 가지 환경 변수 설정, 코드에서 프로젝트 클론 구성 설치 실행을 지원합니다 코드 프로젝트는 Python 시를 사용하여 패키지 및 Python 런타임 환경입니다.

기본 요건 설치

Docs 에이전트 프로젝트는 Python 3 및 Python Poetry를 사용해 애플리케이션을 실행할 수 있습니다 다음 설치 안내는 Linux 호스트 머신을 실행합니다.

필수 소프트웨어를 설치하려면 다음 단계를 따르세요.

  1. Python 3와 venv Python용 가상 환경 패키지를 설치합니다.
    <ph type="x-smartling-placeholder">
    sudo apt update
    sudo apt install git pip python3-venv
    
    </ph>
  2. Python Poetry를 설치하여 종속 항목과 패키징 프로젝트.
    curl -sSL https://install.python-poetry.org | python3 -
    

살펴보겠습니다

환경 변수 설정하기

Docs 에이전트 코드를 허용하는 데 필요한 몇 가지 환경 변수를 설정합니다. Google Gemini API 키 및 Python을 포함해 실행할 프로젝트 시 배경입니다. 다음 변수를 $HOME/.bashrc 파일에 추가하는 것이 좋습니다. Linux를 사용하는 경우 터미널의 기본 설정으로 지정합니다. 세션.

환경 변수를 설정하려면 다음 안내를 따르세요.

  1. Google Gemini API 키를 가져와 키 문자열을 복사합니다.
  2. API 키를 환경 변수로 설정합니다. Linux 호스트에서는 다음 명령어를 실행합니다.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. 알려진 문제 해결 문제 PYTHON_KEYRING_BACKEND 매개변수를 설정하여 Python Poetry에 관해 알아보세요. Linux 호스트에서는 다음 명령어를 사용합니다.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

프로젝트 클론 및 구성

프로젝트 코드를 다운로드하고 시 설치 명령어를 사용하여 다운로드합니다. 필요한 종속 항목을 삭제하고 프로젝트를 구성할 수 있습니다 요구사항 git 소스 제어 소프트웨어를 사용하여 소스 코드를 가져옵니다. 외부 사용자 프로젝트 코드를 다운로드하고 구성하려면 다음 안내를 따르세요.

  1. 다음 명령어를 사용하여 git 저장소를 클론합니다.
    git clone https://github.com/google/generative-ai-docs
    
  2. 원하는 경우 스파스 체크아웃을 사용하도록 로컬 git 저장소를 구성합니다. Docs 에이전트 프로젝트의 파일만 있으면 됩니다.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. docs-agent 프로젝트 루트 디렉터리로 이동합니다.
    <ph type="x-smartling-placeholder">
    cd examples/gemini/python/docs-agent/
    
    </ph>
  4. Poetry 설치 명령어를 실행하여 종속 항목을 다운로드하고 구성합니다. 프로젝트:
    poetry install
    

콘텐츠 준비

Docs 에이전트 프로젝트는 텍스트 콘텐츠로 작동하도록 설계되었으며 특히 마크다운을 소스 형식으로 사용하는 웹사이트에서 작동하도록 하는 도구를 제공합니다. 웹사이트 콘텐츠로 작업하는 경우 콘텐츠 처리 작업을 사용할 수 있도록 게재된 웹사이트의 디렉터리 구조 해당 콘텐츠를 매핑하고 링크를 생성할 수 있습니다

콘텐츠의 형식과 세부정보에 따라 비공개 정보, 내부 메모 또는 기타 정보를 삭제하기 위한 콘텐츠 URL을 입력합니다. 다음과 같은 기본 형식을 유지해야 합니다. 제목 및 표제로 구성하여 텍스트에 논리적 텍스트 분할 또는 청크를 콘텐츠 처리 단계

처리할 콘텐츠를 준비하려면 다음 단계를 따르세요.

  1. AI 에이전트가 검색할 콘텐츠를 위한 디렉터리를 만듭니다.
    mkdir docs-agent/content/
    
  2. 콘텐츠를 docs-agent/content/ 디렉터리에 복사합니다. 만약 콘텐츠가 웹사이트로서 디렉토리 구조를 유지하거나 복제하여 확인할 수 있습니다.
  3. 필요에 따라 콘텐츠를 정리하거나 수정하여 비공개 정보를 삭제합니다. 특정 검색어에 포함되지 않도록 할 수 있습니다.

테스트에 Flutter 문서 사용

Docs 에이전트를 테스트하는 데 필요한 콘텐츠 모음이 필요한 경우 Flutter 개발자 문서를 참조하세요.

Flutter 개발자 문서를 가져오는 방법은 다음과 같습니다.

  1. AI 에이전트가 제공할 콘텐츠의 콘텐츠 디렉터리로 이동합니다. 검색
    cd docs-agent/content/
    
  2. Flutter 문서를 docs-agent/content/ 디렉터리에 클론합니다.
    <ph type="x-smartling-placeholder">
    git clone --recurse-submodules https://github.com/flutter/website.git
    
    </ph>

콘텐츠 처리

검색 에이전트가 사용자 인코더-디코더 아키텍처를 나타내는 벡터로 구성된 데이터베이스를 있습니다. 벡터는 텍스트 임베딩입니다. 텍스트 임베딩은 텍스트를 숫자 표현으로 표현 있습니다. 텍스트의 의미적 의미를 있습니다. 정보를 숫자로 표현하면 시스템은 동일한 텍스트 임베딩을 사용하여 질문의 근사치를 구합니다. 함수를 사용하여 관련 정보를 수학적 계산으로 찾을 수 있습니다. k-최근접 이웃 (k-NN) 알고리즘입니다.

텍스트 콘텐츠 분할

텍스트 임베딩 벡터가 효과적으로 표현할 수 있는 텍스트 양은 제한됩니다. 이 프로젝트에서는 벡터에 표시되는 텍스트를 3,000자(영문 기준)로 제한합니다. 이 경우 콘텐츠를 그 아래에 있는 청크로 분할해야 합니다. 글자 수 제한 이 섹션에서는 마크다운 파일을 더 작은 텍스트 청크로 분할하는 Docs 에이전트 프로젝트입니다. 다음에 관한 팁: 다른 콘텐츠 형식과 조합하는 경우 다른 형식 처리.

마크다운 형식 콘텐츠를 분할하려면 다음 안내를 따르세요.

  1. 다음을 수정하여 처리 스크립트의 입력 매개변수를 구성합니다. docs-agent/config.yaml 파일. 이 예에서는 다음 Flutter 문서:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. 이 구성 파일의 변경사항을 저장합니다.
  3. docs-agent 프로젝트 디렉터리로 이동합니다.
    <ph type="x-smartling-placeholder">
    cd docs-agent/
    
    </ph>
  4. agent chunk 명령어
    를 실행하여 마크다운 소스 콘텐츠를 분할합니다. <ph type="x-smartling-placeholder">
    agent chunk
    
    </ph>

스크립트는 입력 콘텐츠를 처리하고 docs-agent/data 디렉터리에서, 제목, 제목, 텍스트에 따라 관련된 단락입니다. 파일 크기에 따라 처리에 다소 시간이 걸릴 수 있습니다. 있습니다.

텍스트 임베딩 벡터 만들기

콘텐츠를 적절한 크기이고 의미 있는 덩어리로 분할했다면 텍스트 임베딩을 사용하여 벡터 데이터베이스에 콘텐츠를 채울 수 있습니다. 함수를 사용하세요. Docs 에이전트 프로젝트는 Chroma를 사용합니다 텍스트 임베딩 벡터를 저장하는 데 사용합니다. 이 안내에서는 를 사용하여 문서 에이전트 스크립트를 사용하여 분할로 벡터 데이터베이스를 채웁니다. 있습니다.

텍스트 임베딩을 생성하고 벡터 데이터베이스를 채우려면 다음 단계를 따르세요.

  1. docs-agent 프로젝트 디렉터리로 이동합니다.
    <ph type="x-smartling-placeholder">
    cd docs-agent/
    
    </ph>
  2. agent populate를 사용하여 벡터 데이터베이스에 콘텐츠를 채웁니다. 명령어:
    <ph type="x-smartling-placeholder">
    agent populate
    
    </ph>

이 스크립트는 Google Gemini API를 사용하여 텍스트 임베딩 그런 다음 벡터 데이터베이스에 출력을 저장합니다. 처리하는 데 콘텐츠 크기에 따라 다소 시간이 걸릴 수 있습니다.

다른 형식 처리

Docs 에이전트 프로젝트는 마크다운에서 웹사이트 콘텐츠를 사용하도록 설계되었습니다. 형식으로 입력합니다. 프로젝트 작성자는 소스 코드를 생성하기 위한 변환기 스크립트를 다른 유형의 콘텐츠를 마크다운 형식으로 변환(예: Google Docs, Portable, Document Format (PDF) 및 Gmail입니다. 이러한 기능의 사용에 대한 자세한 내용은 전환 방문자는 docs-agent/apps_script 코드 저장소의 디렉터리입니다.

다른 콘텐츠 형식 변환

프로젝트에서 다른 콘텐츠 형식을 사용할 수 있지만 본인 또는 커뮤니티의 다른 구성원이 빌드해야 하는 추가 메서드가 있습니다. 코드 저장소 확인 문제pull 요청 유사한 솔루션을 빌드하는 분들을 위해 이를 학습했습니다.

다른 콘텐츠 형식을 지원하기 위해 빌드해야 하는 키 코드는 스플리터 스크립트를 files_to_plain_text.py 있습니다. 이와 유사한 출력을 생성하는 스크립트나 프로그램을 있습니다. 최종 텍스트 출력은 최소한의 서식과 있습니다. HTML 또는 JSON과 같은 콘텐츠 형식을 사용하는 경우 정보 제공이 아닌 형식 (태그, 태그, 스크립팅, CSS)를 조정하여 텍스트 값을 왜곡하지 않도록 합니다. 임베딩을 얻을 수 있습니다.

콘텐츠 형식에 대한 스플리터 스크립트를 작성하고 나면 다음을 수행할 수 있습니다. 실행 populate_vector_database.py 스크립트를 사용하여 벡터 데이터베이스를 채웁니다. 처리 방법에 대한 자세한 내용은 문서 에이전트에 사용할 파일에 대한 자세한 내용은 문서 에이전트 사전 처리 리드미.

앱 테스트

벡터 데이터베이스 채우기를 완료하면 프로젝트가 준비됩니다. 사용할 수 있습니다 이 프로젝트에서는 배포할 수 있습니다

프로젝트 웹 인터페이스를 실행하고 테스트하려면 다음 안내를 따르세요.

  1. docs-agent 프로젝트 디렉터리로 이동합니다.
    <ph type="x-smartling-placeholder">
    cd docs-agent/
    
    </ph>
  2. 웹 애플리케이션 실행 스크립트를 실행합니다.
    agent chatbot
    
  3. 웹브라우저를 사용하여 애플리케이션을 테스트합니다.
    * Running on http://your-hostname-here:5000
    

구현 옵션

Gemini API는 Gemini API의 구성요소를 대체할 수 있는 Docs 에이전트 구현(구체적으로는 시맨틱 검색 및 기여 분석) 질의 응답 (AQA) Gemini 모델 변형입니다. Gemini API의 시맨틱 검색 기능을 사용하여 별도의 벡터 데이터베이스를 대체할 수 있습니다. 시맨틱 검색 기능 을 사용하면 콘텐츠에 대한 임베딩을 생성하고 해당 콘텐츠를 저장할 수 있습니다. 이 AQA Gemini 모델은 프롬프트에 제공된 소스 자료를 사용하여 질문에 답변하는 것입니다 시맨틱을 사용하는 경우 AQA 모델과 함께 검색하여 질문에 답변 Gemini API 내에서 여러분의 콘텐츠에 관한 모든 정보를 얻을 수 있습니다

Docs 에이전트에는 시맨틱 또는 시맨틱(시맨틱) 함수를 사용하기 위한 Retrieval API 기능, 해당 AQA Gemini 모델 또는 둘 다. 자세한 내용은 Docs 에이전트 추가 정보.

추가 리소스

Docs 에이전트 프로젝트에 대한 자세한 내용은 코드 저장소에 있어야 합니다. 애플리케이션 빌드에 도움이 필요하거나 개발자를 찾고 있는 경우 자세한 내용은 Google Developers 커뮤니티 Discord 있습니다.

프로덕션 애플리케이션

대규모 잠재고객에게 Docs 에이전트를 배포하려는 경우 Google Gemini API에는 비율 제한 및 기타 비용이 적용될 수 있습니다 사용 제한에 대해 자세히 알아보세요. 다음과 같은 Gemini API로 프로덕션 애플리케이션을 빌드하려는 경우 Docs 에이전트, 확인해 보세요 Google Cloud Vertex AI Google Cloud 서비스를 통해 앱의 확장성과 안정성을 향상할 수 있습니다.