Cloudflare
최근에는 AutoRAG
서비스 오픈 베타. 완전히 호스팅되는 이 검색 증강 세대(RAG) 서비스는 세계 최초의 서비스입니다. RAG) 파이프라인은 개발자가 애플리케이션에 상황 인식 AI 기능을 통합하는 프로세스를 간소화하도록 설계되었으며, RAG 기술은 개발자가 소유한 데이터에서 정보를 검색하고 이를 대규모 언어 모델(LLM)에 공급하여 보다 신뢰할 수 있는 사실 기반 응답을 생성함으로써 AI 응답의 정확도를 향상시킵니다.
RAG 파이프라인 구축은 많은 개발자에게 지루한 작업인 경우가 많습니다. 데이터 저장소, 벡터 데이터베이스, 임베디드 모델, 대규모 언어 모델, 사용자 지정 인덱싱, 검색 및 생성 로직 등 여러 도구와 서비스를 통합해야 하기 때문입니다. 프로젝트를 시작하기 위해서만 많은 '연결'이 필요하며, 이후 유지 관리는 훨씬 더 어렵습니다. 데이터가 변경되면 수동으로 색인을 다시 생성하고 임베딩 벡터를 생성하여 시스템의 관련성과 성능을 유지해야 했습니다. "질문하면 지능적인 답변을 얻을 수 있을 것"이라고 기대했던 경험은 종종 취약한 통합, 끈적끈적한 코드, 지속적인 유지보수로 이루어진 복잡한 시스템으로 바뀌게 됩니다.
AutoRAG
목표는 이러한 복잡성을 없애는 것입니다. 개발자는 클릭 몇 번으로 엔드투엔드 완전 관리형 RAG 파이프라인을 이용할 수 있습니다. 이 서비스는 데이터 액세스, 자동화된 청킹 및 임베딩, 벡터 저장에 이르기까지 모든 것을 다룹니다. Cloudflare
(명목식 형태로 사용됨) Vectorize
를 데이터베이스에 저장한 다음 의미 검색을 수행하고 Workers AI
고품질 응답을 생성하는 전체 프로세스.AutoRAG
데이터 소스는 백그라운드에서 지속적으로 모니터링되고 인덱싱되어 업데이트가 이루어지므로 사람의 개입 없이도 AI 앱을 자동으로 최신 상태로 유지할 수 있습니다. 이러한 추상화는 개발자가 더 집중할 수 있는 기능을 캡슐화합니다. Cloudflare
의 개발 플랫폼에서 더 스마트하고 빠른 애플리케이션을 구축할 수 있습니다.
RAG 애플리케이션의 가치
대규모 언어 모델(예: 메타 Llama 3.3
)은 강력하지만 지식은 학습 데이터에 국한되어 있습니다. 새롭고 독점적이거나 도메인에 특화된 정보를 요청하면 정확한 답변을 제공하는 데 어려움을 겪는 경우가 많습니다. 시스템 프롬프트를 통해 관련 정보를 제공하면 도움이 될 수 있지만 입력 크기가 커지고 컨텍스트 창의 길이에 따라 제한됩니다. 또 다른 접근 방식은 모델을 미세 조정하는 것이지만 비용이 많이 들고 정보 업데이트를 따라잡기 위해 지속적인 재교육이 필요합니다.
RAG는 쿼리 시점에 지정된 데이터 소스에서 관련 정보를 검색하고 이를 사용자의 입력 쿼리와 결합한 다음 두 정보를 모두 LLM에 제공하여 응답을 생성합니다. 이 접근 방식을 통해 LLM은 개발자가 제공한 데이터를 기반으로 응답을 생성하므로 정보가 정확하고 최신 상태인지 확인할 수 있습니다. 따라서 RAG는 AI 기반 고객 서비스 로봇, 내부 지식 기반 도우미, 문서 시맨틱 검색 및 지속적으로 업데이트되는 정보 소스가 필요한 기타 애플리케이션 시나리오를 구축하는 데 매우 적합합니다. 미세 조정에 비해 RAG는 동적으로 업데이트되는 데이터를 처리하는 데 있어 더 비용 효율적이고 유연합니다.

AutoRAG의 작동 메커니즘에 대한 설명
AutoRAG
활용 Cloudflare
개발자 플랫폼의 기존 구성 요소는 사용자를 위해 RAG 파이프라인을 자동으로 구성합니다. 개발자가 직접 코드를 작성할 필요가 없습니다. Workers AI
및Vectorize
노래로 응답 AI Gateway
및 기타 서비스에서 AutoRAG
인스턴스를 생성하고 데이터 소스( R2
저장 버킷)으로 충분합니다.
AutoRAG
이 핵심은 두 가지 프로세스에 의해 구동됩니다:인덱싱 노래로 응답 쿼리하기.
- 인덱싱 는 백그라운드에서 실행되는 비동기 프로세스입니다. 이 프로세스는
AutoRAG
인스턴스는 생성 직후에 시작되어 라운드 로빈 방식으로 자동으로 실행되며, 각 작업이 완료된 후 새 파일이나 업데이트된 파일을 처리합니다. 색인 과정에서 콘텐츠는 시맨틱 검색에 최적화된 벡터로 변환됩니다. - 상담(문서 등) 는 사용자가 검색 요청을 보내면 트리거되는 동기화된 프로세스입니다.
AutoRAG
쿼리를 받으면 벡터 데이터베이스에서 가장 관련성이 높은 콘텐츠가 검색되고 이 콘텐츠와 LLM을 사용하여 문맥 인식 응답이 생성됩니다.
인덱싱 프로세스 설명
데이터 원본이 연결되면AutoRAG
다음 단계는 자동으로 수행되어 데이터를 추출, 변환 및 벡터로 저장하며, 이후 쿼리 시 시맨틱 검색에 최적화됩니다:
- 데이터 소스에서 파일을 추출합니다:
AutoRAG
구성된 데이터 소스에서 직접 파일을 읽습니다. 현재Cloudflare R2
PDF, 이미지, 텍스트, HTML, CSV 및 기타 여러 형식의 문서를 처리할 수 있는 통합 기능을 제공합니다. - 마크다운 전환: 활용
Workers AI
마크다운 변환 기능은 모든 파일을 구조화된 마크다운 형식으로 변환하여 다양한 파일 유형에서 일관성을 보장합니다. 이미지 파일의 경우Workers AI
객체가 감지된 다음 시각적 언어 변환을 통해 그 내용이 마크다운 텍스트로 설명됩니다. - 청크: 추출된 텍스트는 검색의 세분성을 높이기 위해 더 작은 덩어리로 분할됩니다.
- 임베딩: 각 텍스트 블록은
Workers AI
임베딩 모델은 콘텐츠를 벡터 표현으로 변환하기 위해 처리됩니다. - 벡터 스토리지: 생성된 벡터는 소스 위치, 파일 이름 등과 같은 메타데이터와 함께 자동으로 생성되는
Cloudflare Vectorize
데이터베이스에서.

문의 프로세스 세부 정보
최종 사용자가 요청을 시작하면AutoRAG
다음 작업을 조정합니다:
- 쿼리 요청을 받습니다: 쿼리 워크플로는 다음과 같이 시작됩니다.
AutoRAG
AI 검색 또는 검색 API 엔드포인트로 요청을 전송합니다. - 쿼리 재작성(선택 사항):
AutoRAG
다음을 사용할 수 있는 옵션을 제공합니다.Workers AI
LLM은 원래 입력 쿼리를 재작성하여 보다 효율적인 검색 쿼리로 변환하여 검색 품질을 개선합니다. - 쿼리 임베딩: 재작성된(또는 원본) 쿼리는 저장된 벡터 데이터와의 유사성 비교를 위해 데이터 임베딩 시와 동일한 모델에 의해 벡터로 변환됩니다.
- 벡터 검색을 벡터화합니다: 쿼리 벡터는 다음과 일치합니다.
AutoRAG
관련Vectorize
데이터베이스를 검색하여 가장 관련성이 높은 벡터를 찾습니다. - 메타데이터 및 콘텐츠 검색:
Vectorize
가장 관련성이 높은 텍스트 블록과 해당 메타데이터를 반환합니다. 동시에 가장 관련성이 높은 텍스트 블록과 해당 메타데이터의 목록이R2
스토리지 버킷에서 해당 원시 콘텐츠가 검색됩니다. 이 정보는 텍스트 생성 모델에 전달됩니다. - 응답 생성:
Workers AI
의 텍스트 생성 모델은 검색된 콘텐츠와 사용자의 원래 쿼리를 사용하여 최종 답변을 생성합니다.
최종 결과는 개인 사용자 데이터를 기반으로 한 정확하고 최신의 AI 기반 답변입니다.

실습: 브라우저 렌더링 API로 RAG 애플리케이션을 빠르게 구축하기
일반적으로 스타트업은 AutoRAG
기존 R2
스토리지 버킷. 하지만 콘텐츠 소스가 가져오기 전에 렌더링해야 하는 동적 웹 페이지인 경우에는 어떻게 해야 할까요?Cloudflare
제공 브라우저 렌더링 API (현재 공식 출시)로 이 문제를 해결할 수 있습니다. 개발자는 이 API를 통해 헤드리스 브라우저 인스턴스를 프로그래밍 방식으로 제어하여 HTML 콘텐츠 크롤링, 스크린샷 찍기, PDF 생성 등의 일반적인 작업을 수행할 수 있습니다.
다음 단계는 다음과 같은 방법으로 Browser Rendering API
웹사이트 콘텐츠 크롤링, 입금 R2
에 연결하고 AutoRAG
를 클릭하여 사이트 콘텐츠에 기반한 Q&A 기능을 활성화합니다.
1단계: 웹 페이지를 캡처하여 R2에 업로드하는 워커 만들기
먼저 Cloudflare Worker
사용 Puppeteer
는 지정된 URL에 액세스하여 페이지를 렌더링하고 전체 HTML 콘텐츠를 R2
저장 버킷. 이미 저장 버킷이 있는 경우 R2
버킷을 사용하면 이 단계를 건너뛸 수 있습니다.
- 새 작업자 프로젝트를 초기화합니다(예
browser-r2-worker
):npm create cloudflare@latest browser-r2-worker
옵션
Hello World Starter
(수학.) 속Worker only
평화TypeScript
. - 마운팅
@cloudflare/puppeteer
::npm i @cloudflare/puppeteer
- 라는 파일을 만듭니다.
html-bucket
R2 스토리지 버킷:npx wrangler r2 bucket create html-bucket
- 존재
wrangler.toml
(또는wrangler.json
) 구성 파일을 추가하여 브라우저 렌더링 및 R2 버킷 바인딩을 추가합니다:# wrangler.toml compatibility_flags = ["nodejs_compat"] [browser] binding = "MY_BROWSER" [[r2_buckets]] binding = "HTML_BUCKET" bucket_name = "html-bucket"
- 다음 스크립트로 대체합니다.
src/index.ts
이 스크립트는 POST 요청에서 URL을 가져와 Puppeteer를 사용하여 페이지 HTML을 가져와 R2에 저장합니다:import puppeteer from "@cloudflare/puppeteer"; interface Env { MY_BROWSER: puppeteer.BrowserWorker; // Correct typing if available, otherwise 'any' HTML_BUCKET: R2Bucket; } interface RequestBody { url: string; } export default { async fetch(request: Request, env: Env): Promise<Response> { if (request.method !== 'POST') { return new Response('Please send a POST request with a target URL', { status: 405 }); } try { const body = await request.json() as RequestBody; // Basic validation, consider adding more robust checks if (!body.url) { return new Response('Missing "url" in request body', { status: 400 }); } const targetUrl = new URL(body.url); // Use URL constructor for parsing and validation const browser = await puppeteer.launch(env.MY_BROWSER); const page = await browser.newPage(); await page.goto(targetUrl.href, { waitUntil: 'networkidle0' }); // Wait for network activity to cease const htmlPage = await page.content(); // Generate a unique key for the R2 object const key = `${targetUrl.hostname}_${Date.now()}.html`; await env.HTML_BUCKET.put(key, htmlPage, { httpMetadata: { contentType: 'text/html' } // Set content type }); await browser.close(); return new Response(JSON.stringify({ success: true, message: 'Page rendered and stored successfully', key: key }), { headers: { 'Content-Type': 'application/json' } }); } catch (error) { console.error("Error processing request:", error); // Return a generic error message to the client return new Response(JSON.stringify({ success: false, message: 'Failed to process request' }), { status: 500, headers: { 'Content-Type': 'application/json' } }); } } } satisfies ExportedHandler<Env>;
- Worker를 배포합니다:
npx wrangler deploy
- 테스트 워커, 예: 캡처
Cloudflare
이 블로그 게시물의curl -X POST https://browser-r2-worker.<YOUR_SUBDOMAIN>.workers.dev \ -H "Content-Type: application/json" \ -d '{"url": "https://blog.cloudflare.com/introducing-autorag-on-cloudflare"}'
최고 사령관(군)
<YOUR_SUBDOMAIN>
교체Cloudflare Workers
하위 도메인.
2단계: AutoRAG 인스턴스 생성 및 인덱스 모니터링
의 콘텐츠를 채웁니다. R2
버킷이 생성되면 AutoRAG
예시:
- 존재
Cloudflare
제어판에서 AI > AutoRAG로 이동합니다. - 'AutoRAG 만들기'를 선택하고 설정을 완료합니다:
- 다음 내용이 포함된 지식창고를 선택합니다.
R2
저장 버킷(이 경우html-bucket
). - 임베딩 모델을 선택합니다(기본값 권장).
- 응답을 생성하는 데 사용되는 LLM을 선택합니다(기본값 권장).
- 선택 또는 생성
AI Gateway
를 사용하여 모델 사용을 모니터링합니다. - 때문에
AutoRAG
인스턴스 이름 지정(예my-rag
). - 권한을 부여하는 서비스 API 토큰을 선택하거나 생성합니다.
AutoRAG
계정에서 리소스를 만들고 액세스합니다.
- 다음 내용이 포함된 지식창고를 선택합니다.
- '만들기'를 선택하여
AutoRAG
예시.
생성 후AutoRAG
은 자동으로 Vectorize
데이터베이스를 생성하고 데이터 인덱싱을 시작합니다. 데이터베이스를 만들려면 AutoRAG
의 개요 페이지에서 인덱싱 진행 상황을 확인합니다. 인덱싱 시간은 데이터 소스에 있는 파일의 수와 유형에 따라 다릅니다.

3단계: 테스트 및 애플리케이션에 통합
인덱싱이 완료되면 쿼리를 시작할 수 있습니다. 인덱싱은 AutoRAG
인스턴스 놀이터 탭에서 업로드에 따라 질문(예: "AutoRAG란 무엇인가요?")을 합니다.
테스트가 만족스러우면 AutoRAG
애플리케이션에 직접 통합됩니다. 사용하는 경우 Cloudflare Workers
AI 바인딩을 통해 직접 호출할 수 있는 애플리케이션을 구축하세요. AutoRAG
::
존재 wrangler.toml
바인딩을 추가합니다:
# wrangler.toml
[ai]
binding = "AI"
그런 다음 작업자 코드에서 aiSearch()
메서드(AI가 생성한 답을 얻기 위해) 또는 Search()
메서드(검색 결과 목록만 가져오기):
// Example in a Worker using the AI binding
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
// Assuming 'env' includes the AI binding: interface Env { AI: Ai }
if (!env.AI) {
return new Response("AI binding not configured.", { status: 500 });
}
try {
const answer = await env.AI.run('@cf/meta/llama-3.1-8b-instruct', { // Example model, replace if needed
prompt: 'What is AutoRAG?', // Simple prompt example
rag: { // Use the RAG configuration via the binding
autorag_id: 'my-rag' // Specify your AutoRAG instance name
}
});
// Or using the specific AutoRAG methods if available via the binding
// const searchResults = await env.AI.autorag('my-rag').Search({ query: 'What is AutoRAG?' });
// const aiAnswer = await env.AI.autorag('my-rag').aiSearch({ query: 'What is AutoRAG?' });
return new Response(JSON.stringify(answer), { headers: { 'Content-Type': 'application/json' }});
} catch (error) {
console.error("Error querying AutoRAG:", error);
return new Response("Failed to query AutoRAG", { status: 500 });
}
}
}
참고: 위의 Worker 코드 예제는 일반적인 AI 바인딩과 RAG 기능 통합을 기반으로 하며, 특히 다음과 같습니다. AutoRAG
바인딩 호출에 대한 자세한 내용은 Cloudflare
가장 정확한 최신 사용법에 대한 공식 문서입니다.
통합에 대한 자세한 내용은 다음을 확인하세요. AutoRAG
AutoRAG 사용" 섹션을 참조하거나 개발자 설명서를 참조하세요.
전략적 중요성 및 개발자 가치
AutoRAG
이번 출시로 Cloudflare
개발자 플랫폼에서 AI 기능의 통합을 더욱 강화합니다. RAG 파이프라인의 주요 구성 요소를 통합하여(R2
, Vectorize
, Workers AI
, AI Gateway
)를 호스팅 서비스로 캡슐화합니다.Cloudflare
개발자가 자신의 데이터로 스마트 앱을 구축하는 데 있어 장벽을 크게 낮춥니다.
개발자용AutoRAG
의 주요 가치편의성복잡한 RAG 인프라를 수동으로 구성하고 유지 관리해야 하는 부담을 덜어줍니다. 복잡한 RAG 인프라를 수동으로 구성하고 유지 관리해야 하는 부담을 없애주며, 특히 빠르게 프로토타이핑해야 하거나 전용 MLOps 리소스가 부족한 팀에 적합합니다. 자체 RAG를 완전히 구축하는 것과 비교하면, 개발 속도를 높이고 관리 오버헤드를 줄이기 위해 기본 제어 및 사용자 지정 유연성을 일부 희생해야 하는 절충안이 있습니다.
동시에 이것은 Cloudflare
플랫폼 전략의 확장: 글로벌 네트워크의 엣지에서 점점 더 포괄적인 컴퓨팅, 스토리지 및 AI 서비스를 제공하여 긴밀하게 통합된 에코시스템을 형성합니다. 개발자 사용 AutoRAG
더욱 긴밀한 통합을 의미합니다. Cloudflare
기술 스택을 가져올 수 있습니다.공급업체 종속고려할 뿐만 아니라 에코시스템 내 서비스 간의 최적화된 통합 덕분에 가능합니다.
공개 테스트 기간 동안AutoRAG
무료 출시를 사용하지만 인덱싱, 검색 및 향상과 같은 계산 작업은 Workers AI
노래로 응답 Vectorize
개발자와 같은 기본 서비스를 사용하는 경우 이러한 관련 비용을 고려해야 합니다. 현재 각 계정은 10 AutoRAG 인스턴스를 처리하며, 각 인스턴스는 최대 100,000개의 문서이러한 제한 사항은 향후 조정될 수 있습니다.
향후 개발 로드맵
Cloudflare
표시 AutoRAG
는 2025년에 더 많은 기능을 도입할 계획으로 계속 확장될 예정입니다:
- 더 많은 데이터 소스 통합: 를 제외하고
R2
이 요금제는 웹 사이트 URL의 직접 구문 분석(브라우저 렌더링 기술 사용)과 다음에 대한 액세스를 지원합니다.Cloudflare D1
및 기타 구조화된 데이터 소스. - 응답 품질을 개선하세요: 순위 재지정 및 재귀 청킹과 같은 기본 제공 기술을 살펴보고 생성된 답변의 관련성과 품질을 개선하세요.
AutoRAG
개발 방향은 사용자 피드백과 적용 시나리오에 따라 지속적으로 조정될 예정입니다.
즉각적인 경험
오른쪽 AutoRAG
관심 있는 개발자는 다음을 방문하세요. Cloudflare
제어판의 AI > AutoRAG 섹션에서 생성 및 시험을 시작하세요. AI 검색 환경을 구축하든, 내부 지식 도우미를 구축하든, LLM 애플리케이션을 시험해 보든 상관없습니다.AutoRAG
이 두 가지 방법 모두 Cloudflare
글로벌 네트워크에서 RAG 프로젝트를 빠르게 시작할 수 있는 방법입니다. 더 자세한 정보는 개발자 문서. 한편, 현재 공식적으로 사용 가능한 브라우저 렌더링 API 또 다른 관심사.
© 저작권 정책
이 글은 저작권이 있으며 무단으로 복제해서는 안 됩니다.
관련 문서
댓글 없음...