GPT의 작업이 수행할 수 있는 가장 일반적인 작업 중 하나는 데이터 검색입니다. 작업은 다음과 같습니다.
- API에 접속하여 키워드 검색을 기반으로 데이터를 검색하세요.
- 관계형 데이터베이스에 액세스하여 구조화된 쿼리를 기반으로 레코드를 검색합니다.
- 의미론적 검색을 기반으로 텍스트 청크를 검색하기 위해 벡터 데이터베이스에 액세스합니다.
이 가이드에서는 다양한 유형의 검색 통합과 관련된 고려 사항을 살펴보겠습니다.
API를 사용한 데이터 검색
많은 조직에서는 중요한 데이터를 저장하기 위해 타사 소프트웨어에 의존합니다. 고객 데이터는 Salesforce, 지원 데이터는 Zendesk, 내부 프로세스 데이터는 Confluence, 비즈니스 문서는 Google Drive를 생각해 보세요. 이러한 공급자는 외부 시스템이 정보를 검색할 수 있도록 하는 REST API를 제공하는 경우가 많습니다.
공급자의 REST API와 통합하기 위한 작업을 구축할 때 기존 문서를 검토하는 것부터 시작하세요. 몇 가지 사항을 확인해야 합니다.
- 검색 방법
- 검색 - 각 공급자는 서로 다른 검색 의미를 지원하지만 일반적으로 키워드나 쿼리 문자열을 가져와 일치하는 문서 목록을 반환하는 메서드를 원합니다. 예를 보려면 Google Drive의 file.list방법을 참조하세요 .
- 가져오기 - 일치하는 문서를 찾았으면 해당 문서를 검색할 방법이 필요합니다. 예를 보려면 Google 드라이브의 file.get방법을 참조하세요 .
- 인증 방식
- 예를 들어 Google 드라이브는 OAuth를 사용하여 사용자를 인증하고 사용 가능한 파일만 검색에 사용할 수 있도록 합니다.
- OpenAPI 사양
- 일부 공급자는 작업으로 직접 가져올 수 있는 OpenAPI 사양 문서를 제공합니다. 예를 보려면 Zendesk를 참조하세요 .
- GPT가 액세스 하지 않는 메서드에 대한 참조를 삭제하여 GPT가 수행할 수 있는 작업을 제한할 수 있습니다.
- OpenAPI 사양 문서를 제공 하지 않는 공급자의 경우 ActionsGPT (OpenAI에서 개발한 GPT)를 사용하여 고유한 문서를 만들 수 있습니다.
- 일부 공급자는 작업으로 직접 가져올 수 있는 OpenAPI 사양 문서를 제공합니다. 예를 보려면 Zendesk를 참조하세요 .
목표는 GPT가 작업을 사용하여 사용자 프롬프트와 관련된 컨텍스트가 포함된 문서를 검색하도록 하는 것입니다. GPT는 지침에 따라 제공된 검색을 사용하고 이 목표를 달성하기 위한 방법을 얻습니다.
관계형 데이터베이스를 사용한 데이터 검색
조직에서는 관계형 데이터베이스를 사용하여 비즈니스와 관련된 다양한 기록을 저장합니다. 이러한 기록에는 GPT 응답을 개선하는 데 도움이 되는 유용한 컨텍스트가 포함될 수 있습니다. 예를 들어 사용자가 보험 청구 상태를 이해하는 데 도움이 되는 GPT를 구축한다고 가정해 보겠습니다. GPT가 청구 번호를 기반으로 관계형 데이터베이스에서 청구를 조회할 수 있다면 GPT는 사용자에게 훨씬 더 유용할 것입니다.
관계형 데이터베이스와 통합할 작업을 구축할 때 염두에 두어야 할 몇 가지 사항이 있습니다.
- REST API의 가용성
- 많은 관계형 데이터베이스는 쿼리 처리를 위해 기본적으로 REST API를 노출하지 않습니다. 이 경우 GPT와 데이터베이스 사이에 위치할 수 있는 미들웨어를 구축하거나 구매해야 할 수도 있습니다.
- 이 미들웨어는 다음을 수행해야 합니다:
- 공식 쿼리 문자열을 수락합니다.
- 쿼리 문자열을 데이터베이스에 전달
- 반환된 기록을 사용하여 요청자에게 다시 응답합니다.
- 공용 인터넷을 통한 접근성
- 공용 인터넷에서 액세스하도록 설계된 API와 달리 관계형 데이터베이스는 전통적으로 조직의 애플리케이션 인프라 내에서 사용되도록 설계되었습니다. GPT는 OpenAI의 인프라에서 호스팅되므로 노출하는 모든 API가 방화벽 외부에서 액세스할 수 있는지 확인해야 합니다.
- 복잡한 쿼리 문자열
- 관계형 데이터베이스는 SQL과 같은 형식적인 쿼리 구문을 사용하여 관련 레코드를 검색합니다. 이는 지원되는 쿼리 구문을 나타내는 추가 지침을 GPT에 제공해야 함을 의미합니다. 좋은 소식은 GPT가 일반적으로 사용자 입력을 기반으로 공식적인 쿼리를 생성하는 데 매우 능숙하다는 것입니다.
- 데이터베이스 권한
- 데이터베이스는 사용자 수준 권한을 지원하지만 최종 사용자는 데이터베이스에 직접 액세스할 수 있는 권한이 없을 가능성이 높습니다. 서비스 계정을 사용하여 액세스를 제공하려는 경우 서비스 계정에 읽기 전용 권한을 부여하는 것이 좋습니다. 이렇게 하면 실수로 기존 데이터를 덮어쓰거나 삭제하는 것을 방지할 수 있습니다.
목표는 GPT가 사용자 프롬프트와 관련된 공식 쿼리를 작성하고 작업을 통해 쿼리를 제출한 다음 반환된 레코드를 사용하여 응답을 늘리도록 하는 것입니다.
벡터 데이터베이스를 사용한 데이터 검색
GPT에 가장 관련성이 높은 검색 결과를 제공하려면 위에서 설명한 대로 의미 체계 검색을 지원하는 벡터 데이터베이스와 GPT를 통합하는 것을 고려할 수 있습니다. 시중에는 다양한 관리형 및 자체 호스팅 솔루션이 있습니다. 일부 목록은 여기를 참조하세요 .
벡터 데이터베이스와 통합할 액션을 구축할 때 염두에 두어야 할 몇 가지 사항이 있습니다.
- REST API의 가용성
- 많은 관계형 데이터베이스는 쿼리 처리를 위해 기본적으로 REST API를 노출하지 않습니다. 이 경우 GPT와 데이터베이스 사이에 위치할 수 있는 미들웨어를 구축하거나 구입해야 할 수도 있습니다(미들웨어에 대한 자세한 내용은 아래 참조).
- 공용 인터넷을 통한 접근성
- 공용 인터넷에서 액세스하도록 설계된 API와 달리 관계형 데이터베이스는 전통적으로 조직의 애플리케이션 인프라 내에서 사용되도록 설계되었습니다. GPT는 OpenAI의 인프라에서 호스팅되므로 노출하는 모든 API가 방화벽 외부에서 액세스할 수 있는지 확인해야 합니다.
- 쿼리 임베딩
- 위에서 설명한 것처럼 벡터 데이터베이스는 일반적으로 쿼리 입력으로 벡터 임베딩(일반 텍스트와 반대)을 허용합니다. 즉, 쿼리 입력을 벡터 데이터베이스에 제출하기 전에 임베딩 API를 사용하여 쿼리 입력을 벡터 임베딩으로 변환해야 합니다. 이 변환은 REST API 게이트웨이에서 가장 잘 처리되므로 GPT가 일반 텍스트 쿼리 문자열을 제출할 수 있습니다.
- 데이터베이스 권한
- 벡터 데이터베이스는 전체 문서가 아닌 텍스트 청크를 저장하기 때문에 원본 소스 문서에 존재했을 수 있는 사용자 권한을 유지하기 어려울 수 있습니다. GPT에 액세스할 수 있는 모든 사용자는 데이터베이스의 모든 텍스트 청크에 액세스할 수 있으며 그에 따라 계획을 세울 수 있다는 점을 기억하세요.
벡터 데이터베이스용 미들웨어
위에서 설명한 대로 벡터 데이터베이스용 미들웨어는 일반적으로 다음 두 가지 작업을 수행해야 합니다.
- REST API를 통해 벡터 데이터베이스에 대한 액세스 노출
- 일반 텍스트 쿼리 문자열을 벡터 임베딩으로 변환
목표는 GPT가 관련 쿼리를 벡터 데이터베이스에 제출하여 의미 체계 검색을 트리거한 다음 반환된 텍스트 청크를 사용하여 응답을 늘리도록 하는 것입니다.
원본: https://platform.openai.com/docs/actions/data-retrieval
관련글:
2024.04.22 - [OpenAI] - [CHATGPT Actions] 프로덕션에서의 작업
2024.04.22 - [OpenAI] - [CHATGPT Actions] 인증
'OpenAI' 카테고리의 다른 글
[CHATGPT Actions 번역] 프로덕션에서의 작업 (0) | 2024.04.22 |
---|---|
[CHATGPT Actions 번역] 인증 (0) | 2024.04.22 |
[CHATGPT Actions 번역] 시작하기 (0) | 2024.04.22 |
[CHATGPT Actions 번역] 소개 (0) | 2024.04.22 |