Zilliz와 Milvus를 사용한 ChatGPT 검색 플러그인
소개
인공지능 연구소인 OpenAI는 최근 지식 기반 검색 플러그인의 코드를 오픈 소스로 공개했다고 발표했습니다. 제가 참여한 이 프로젝트는 ChatGPT가 다양한 데이터 소스의 관련 문서 스니펫에서 지식 기반 데이터를 검색하여 정보를 보강할 수 있게 해줍니다. 이 블로그 게시물에서는 이 프로젝트의 의미와 기업에 제공하는 이점에 대해 논의하겠습니다.
지식 기반 검색 플러그인
지식 기반 검색 플러그인은 ChatGPT가 외부 당사자가 호스팅하는 관련 문서 스니펫에서 정보를 검색할 수 있게 해주는 도구입니다. ChatGPT는 자연어로 질문하거나 필요를 표현함으로써 파일, 노트 또는 이메일과 같이 사용자가 수집하고 저장한 다양한 소스에서 관련 데이터를 검색할 수 있습니다. 이 기능은 ChatGPT가 정보를 검색하는 쉽고 효율적인 방법을 제공하여 더 정확하고 신뢰할 수 있게 만듭니다.
기업을 위한 이점
기업은 이 플러그인을 통해 내부 문서를 ChatGPT를 통해 직원들이 이용할 수 있게 함으로써 큰 이점을 얻을 수 있습니다. 이는 직원들이 여러 소스를 검색하지 않고도 내부 문서에서 정보를 검색할 수 있는 간소화된 방법을 제공합니다. 또한 검색된 정보가 정확하고 최신 상태임을 보장합니다. 개발자도 이 플러그인을 사용하여 자체 지식 기반을 호스팅함으로써 자체 소스에서 데이터를 더 쉽게 검색할 수 있습니다.
작동 방식
이 플러그인은 OpenAI의 text-embedding-ada-002 임베딩 모델을 사용하여 문서 청크의 임베딩을 생성한 다음, 임베딩을 벡터 데이터베이스에 저장하고 쿼리합니다. 여기서 제가 참여했습니다. 저는 OpenAI 팀과 협력하여 Milvus와 Zilliz가 이러한 임베딩을 저장하는 선호 벡터 데이터베이스 중 하나가 되도록 했습니다.
간단한 API는 문서의 업서트, 쿼리 및 삭제를 위한 플러그인의 엔드포인트를 노출합니다. 소스, 날짜, 작성자 등으로 메타데이터 필터를 사용하여 검색 결과를 세분화할 수 있습니다. Milvus 또는 Zilliz를 최신 문서로 업데이트된 상태로 유지하기 위해, 플러그인은 업서트 및 삭제 엔드포인트로 들어오는 웹훅을 사용하여 다양한 데이터 소스의 문서를 지속적으로 처리하고 저장할 수 있습니다.
다음은 Zilliz Plugin을 사용하여 Apple의 서비스 약관(TOS) 내 DRM 정책을 찾는 간단한 예입니다. ChatGPT는 Zilliz Cloud 내에서 프롬프트를 검색하는 것으로 시작한 다음 결과를 요약합니다. 그런 다음 ChatGPT는 검색 플러그인을 통해 Zilliz에 액세스하여 가장 관련성 높은 데이터를 검색합니다.
Zilliz Cloud 설정 방법
Zilliz Cloud를 사용하면 계정을 만들고 임베딩으로 인스턴스를 설정하기만 하면 됩니다. 다음은 빠른 시작 가이드와 구성해야 하는 검색 플러그인의 환경 변수입니다:
환경 변수
| Name | Required | Description |
|---|---|---|
DATASTORE | Yes | 데이터스토어 이름, zilliz로 설정 |
BEARER_TOKEN | Yes | 비밀 토큰 |
OPENAI_API_KEY | Yes | OpenAI API 키 |
ZILLIZ_COLLECTION | Optional | Zilliz 컬렉션 이름. 기본값은 임의의 UUID |
ZILLIZ_URI | Optional | Zilliz 인스턴스의 URI |
ZILLIZ_USER | Optional | Zilliz 사용자 이름 |
MILVUS_USER | Optional | Zilliz 비밀번호 |
이 구성이 완료되면 다음 테스트를 실행하여 이 명령으로 통합이 작동하는지 확인하세요.
pytest ./tests/datastore/providers/zilliz/test_zilliz_datastore.py
Milvus 설정 방법
물론 오픈 소스 Milvus를 선호한다면 Docker Compose, Helm, K8's Operator 또는 Ansible을 사용하여 Milvus를 배포하고 관리할 수 있습니다. 시작하려면 지침을 따르세요.
환경 변수
| 이름 | 필수 여부 | 설명 |
|---|---|---|
DATASTORE | 예 | Datastore 이름, milvus로 설정 |
BEARER_TOKEN | 예 | 베어러 토큰 |
OPENAI_API_KEY | 예 | OpenAI API 키 |
MILVUS_COLLECTION | 선택 사항 | Milvus 컬렉션 이름, 기본값은 임의 UUID |
MILVUS_HOST | 선택 사항 | Milvus 호스트 IP, 기본값은 localhost |
MILVUS_PORT | 선택 사항 | Milvus 포트, 기본값은 19530 |
MILVUS_USER | 선택 사항 | RBAC가 활성화된 경우 Milvus 사용자 이름, 기본값은 None |
MILVUS_PASSWORD | 선택 사항 | 필요한 경우 Milvus 비밀번호, 기본값은 None |
이 구성이 완료되면 다음 테스트를 실행하여 이 명령으로 통합이 작동하는지 확인하세요.
pytest ./tests/datastore/providers/milvus/test_milvus_datastore.py
플러그인 배포
플러그인 테스트가 완료되면 배포 단계로 넘어갈 수 있습니다. ChatGPT는 Amazon ECS, Fly.io, Heroku 등 플러그인 서버가 실행 중인 곳으로 요청을 보내 플러그인에 액세스합니다. 이를 구성하는 방법에 대한 자세한 가이드는 GitHub readme의 배포 섹션을 참조하세요.
메모리 기능
이 새 플러그인의 멋진 기능 중 하나는 memory라고 부르는 기능입니다. 이를 통해 ChatGPT는 대화에서 정보를 기억하고 나중에 사용할 수 있도록 벡터 데이터베이스에 저장할 수 있습니다.
감사의 말
이 프로젝트는 즐거웠으며 Isabella Fulford로 구성된 OpenAI 팀과 Frank Liu 및 Robert Guo로 구성된 Ziliz 팀에 감사드리고 싶습니다. 피드백이 있거나 직접 사용해 보고 싶다면 GitHub repo를 확인해 보세요. 개인적으로 ChatGPT Retrieval Plugin readme에 나열된 많은 훌륭한 아이디어 중 하나에 기여하기를 기대하고 있습니다!
계속 읽기

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

Democratizing AI: Making Vector Search Powerful and Affordable
Zilliz democratizes AI vector search with Milvus 2.6 and Zilliz Cloud for powerful, affordable scalability, cutting costs in infrastructure, operations, and development.

DeepRAG: Thinking to Retrieval Step by Step for Large Language Models
Discover DeepRAG, an advanced retrieval-augmented generation (RAG) model that improves LLM accuracy by retrieving only essential data through step-by-step reasoning.



