> 기술 주변기기 > 일체 포함 > 조직에서 현명한 의사 결정을위한 헝겊 시스템 구축

조직에서 현명한 의사 결정을위한 헝겊 시스템 구축

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-03-07 09:11:10
원래의
188명이 탐색했습니다.

오늘날의 빠르게 진행되는 비즈니스 환경에서 조직에는 의사 결정을 주도하고 운영을 최적화하며 경쟁력을 유지하는 데이터가 침수됩니다. 그러나이 데이터에서 실행 가능한 통찰력을 추출하는 것은 여전히 ​​큰 장애물입니다. 에이전트 AI와 통합 될 때 RAG (Recreved-Augmented Generation) 시스템은 관련 정보를 검색 할뿐만 아니라 컨텍스트 인식 통찰력을 실시간으로 처리하고 전달 함으로써이 과제를 해결합니다. 이 조합은 비즈니스가 데이터 세트를 자율적으로 쿼리하고 제품 기능, 통합 및 운영에 대한 통찰력을 추출하는 지능형 에이전트를 만들 수 있습니다. ag를 에이전트 AI와 병합함으로써 기업은 의사 결정을 향상시키고 산란 된 데이터를 귀중한 인텔리전스로 변환 할 수 있습니다. 이 블로그는 에이전트 AI를 사용하여 Rag Pipeline을 구축하는 프로세스를 탐색하여 조직에서 현명한 의사 결정을 강화하기 위해 기술적 인 통찰력 및 코드 예제를 제공합니다.

학습 목표

Python 및 Scraping Tools를 사용하여 여러 웹 소스에서 관련 데이터를 자동으로 추출하고 긁어 내고 모든 회사 인텔리전스 플랫폼의 기초를 형성하는 방법을 배우십시오. AI 기반 기술을 사용하여 제품 기능, 통합 및 문제 해결 단계와 같은 주요 포인트를 추출하여 소중한 실행 가능한 통찰력으로 스크래프 데이터를 구조화하고 처리하는 방법을 배우십시오. RAG를 문서 검색 및 자연어 생성과 통합하여 방대한 데이터 세트에서 컨텍스트 인식 답변을 전달할 수있는 지능형 쿼리 시스템을 구축하는 방법을 배우십시오. 데이터 스크래핑, 지식 추출 및 실시간 쿼리 처리를 결합한 에이전트 AI 시스템을 구축하는 방법을 이해하여 비즈니스가 실행 가능한 통찰력을 자율적으로 추출 할 수 있도록합니다. 클라우드 플랫폼 및 분산 아키텍처를 사용하여 이러한 시스템을 확장하고 배포하는 방법을 이해하여 대형 데이터 세트와 높은 쿼리로드를 효과적으로 처리 할 수 ​​있도록합니다.

이 기사는 데이터 과학 블로그 톤의
  • 의 일부로 출판되었습니다. 목차

    BFS를 사용한 데이터 추출 및 데이터를 긁어 내고 AI 에이전트

    로 정보 추출을 긁어내는 데이터 추출
      검색 대기 생성 파이프 라인 구현
    • BFS를 사용한 데이터 추출 및 데이터를 긁어내는 데이터 추출 회사 인텔리전스를위한 강력한 걸레 시스템을 구축하는 첫 번째 단계는 필요한 데이터를 수집하는 것입니다. 데이터는 다양한 웹 소스에서 나올 수 있으므로 효율적으로 폐기하고 구성하는 것이 중요합니다. 관련 페이지를 발견하고 수집하는 효과적인 기술 중 하나는 BFS (Brodth First Search)입니다. BFS는 메인 페이지에서 시작하여 링크를 재귀 적으로 발견하여 점차 검색을 더 깊은 수준으로 확장하는 데 도움이됩니다. 이를 통해 불필요한 데이터로 시스템을 압도하지 않고 모든 관련 페이지를 수집 할 수 있습니다. 이 섹션에서는 BFS를 사용하여 웹 사이트에서 링크를 추출한 다음 해당 페이지에서 컨텐츠를 긁어내는 방법을 살펴 봅니다. BFS를 사용하여 웹 사이트를 체계적으로 가로 지르고 데이터를 수집하며 RAG 파이프 라인에서 처리하기위한 의미있는 데이터 세트를 만듭니다. 1 단계 : BFS를 사용한 링크 추출 시작하려면 주어진 웹 사이트에서 모든 관련 링크를 수집해야합니다. BFS를 사용하여 홈페이지의 링크를 탐색 할 수 있으며 거기서부터 다른 페이지의 링크를 다시 지정된 깊이까지 따릅니다. 이 방법은 제품 기능, 통합 또는 기타 주요 세부 사항과 같은 관련 회사 데이터를 포함 할 수있는 필요한 모든 페이지를 캡처 할 수 있습니다. 아래 코드는 BFS를 사용하여 시작 URL에서 링크 추출을 수행합니다. 메인 페이지를 가져와 모든 링크 (& lt; a & gt; 태그가있는 태그)를 추출한 다음 다음 링크를 따라 후속 페이지를 따라 주어진 깊이 한계를 기반으로 검색을 재귀 적으로 확장합니다.
    • . 링크 추출을 수행하는 코드는 다음과 같습니다
    • 우리는 해당 깊이와 함께 방문 할 URL을 추적하여 효율적인 횡단을 보장하기위한 대기열을 유지합니다. 방문 된 세트는 동일한 URL을 여러 번 다시 방문하는 것을 방지하는 데 사용됩니다. 각 URL에 대해 BeautifulSoup을 사용하여 HTML을 구문 분석하고 모든 링크 (HREF 속성이있는 태그)를 추출합니다. 이 프로세스는 BFS Traversal을 사용하여 각 URL의 컨텐츠를 재귀 적으로 가져오고 링크를 추출하며 깊이 한계에 도달 할 때까지 더 탐색합니다. 이 접근법은 우리가 중복성없이 웹을 효율적으로 탐색 할 수 있도록합니다.
    • 출력 이 코드는 웹 사이트에서 추출한 링크 목록을 지정된 깊이까지 출력합니다.
    출력은 시스템이 시작 웹 사이트에서 1500 개의 링크와 링크 된 페이지에서 최대 3의 깊이를 찾아 수집했음을 보여줍니다. https://www.example.com을 실제 대상 URL로 대체합니다. 아래는 원본 코드의 출력 스크린 샷입니다. 무결성을 유지하기 위해 민감한 정보가 가려졌습니다2 단계 : 추출 된 링크에서 데이터를 긁어냅니다 BFS를 사용하여 관련 링크를 추출하면 다음 단계는이 페이지에서 내용을 긁어내는 것입니다. RAG 시스템을위한 구조화 된 데이터 세트를 구축하는 데 도움이되는 제품 기능, 통합 및 기타 관련 데이터와 같은 주요 정보를 찾을 것입니다. 이 단계에서는 추출 된 링크 목록을 살펴보고 페이지 제목 및 주요 컨텐츠와 같은 주요 컨텐츠를 스크랩합니다. 필요에 따라 추가 데이터 포인트 (예 : 제품 기능, 가격 또는 FAQ 정보)를 긁어 내기 위해이 코드를 조정할 수 있습니다.

    목록의 각 URL에 대해 HTTP 요청을 보내 페이지의 컨텐츠를 가져오고 BeautifulSoup을 사용하여 제목과 주요 컨텐츠를 추출합니다. 추출 된 데이터를 각각 URL, 제목 및 컨텐츠를 포함하는 사전 목록에 저장합니다. 마지막으로, 스크랩 된 데이터를 JSON 파일에 저장하여 RAG 파이프 라인에서 나중에 처리 할 수 ​​있도록합니다. 이 프로세스는 추가 사용을 위해 관련 데이터의 효율적인 수집 및 저장을 보장합니다.

    출력 이 코드의 출력은 링크에서 스크래프 데이터를 포함하는 저장된 JSON 파일 (scraped_data.json)입니다. 데이터 구조의 예는 다음과 같이 보일 수 있습니다.

    이 JSON 파일에는 긁힌 각 페이지의 URL, 제목 및 내용이 포함되어 있습니다. 이 구조화 된 데이터는 이제 RAG 시스템의 임베딩 생성 및 질문 응답과 같은 추가 처리에 사용될 수 있습니다. 아래는 원본 코드의 출력 스크린 샷입니다. 무결성을 유지하기 위해 민감한 정보가 가려졌습니다

    ai 에이전트

    로 정보 추출 자동화
    이전 섹션에서는 BFS (Brad First Search) 전략을 사용하여 링크를 폐기하고 원시 웹 컨텐츠를 수집하는 프로세스를 다루었습니다. 필요한 데이터가 긁히면이 원시 콘텐츠에서 실행 가능한 통찰력을 구성하고 추출하기위한 강력한 시스템이 필요합니다. 이곳은 에이전트 AI가 발전하는 곳입니다. 스크랩 된 데이터를 처리함으로써 정보를 의미있는 섹션으로 자동 구성합니다. 이 섹션에서는 에이전트 AI가 스크래그 데이터에서 관련 제품 정보를 추출하여 이해 관계자 소비를 준비하는 방법에 중점을 둡니다. 데이터로드에서 처리에 이르기까지 관련된 주요 단계를 세분화하고 최종적으로 결과를 구조화 된 형식으로 저장합니다. 1 단계 : 스크랩 된 데이터로드 이 과정의 첫 번째 단계는 원시 긁힌 컨텐츠를 시스템에로드하는 것입니다. 앞에서 보았 듯이 스크래프 데이터는 JSON 형식으로 저장되며 각 항목에는 URL 및 관련 컨텐츠가 포함됩니다. 우리는이 데이터가 AI가 처리하기에 적합한 형식인지 확인해야합니다.
    import requests
    from bs4 import BeautifulSoup
    from collections import deque
    
    # Function to extract links using BFS
    def bfs_link_extraction(start_url, max_depth=3):
        visited = set()  # To track visited links
        queue = deque([(start_url, 0)])  # Queue to store URLs and current depth
        all_links = []
    
        while queue:
            url, depth = queue.popleft()
    
            if depth > max_depth:
                continue
    
            # Fetch the content of the URL
            try:
                response = requests.get(url)
                soup = BeautifulSoup(response.content, 'html.parser')
    
                # Extract all links in the page
                links = soup.find_all('a', href=True)
                for link in links:
                    full_url = link['href']
                    if full_url.startswith('http') and full_url not in visited:
                        visited.add(full_url)
                        queue.append((full_url, depth + 1))
                        all_links.append(full_url)
            except requests.exceptions.RequestException as e:
                print(f"Error fetching {url}: {e}")
    
        return all_links
    
    # Start the BFS from the homepage
    start_url = 'https://www.example.com'  # Replace with the actual homepage URL
    all_extracted_links = bfs_link_extraction(start_url)
    print(f"Extracted {len(all_extracted_links)} links.")
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    코드 스 니펫 :

    import requests
    from bs4 import BeautifulSoup
    from collections import deque
    
    # Function to extract links using BFS
    def bfs_link_extraction(start_url, max_depth=3):
        visited = set()  # To track visited links
        queue = deque([(start_url, 0)])  # Queue to store URLs and current depth
        all_links = []
    
        while queue:
            url, depth = queue.popleft()
    
            if depth > max_depth:
                continue
    
            # Fetch the content of the URL
            try:
                response = requests.get(url)
                soup = BeautifulSoup(response.content, 'html.parser')
    
                # Extract all links in the page
                links = soup.find_all('a', href=True)
                for link in links:
                    full_url = link['href']
                    if full_url.startswith('http') and full_url not in visited:
                        visited.add(full_url)
                        queue.append((full_url, depth + 1))
                        all_links.append(full_url)
            except requests.exceptions.RequestException as e:
                print(f"Error fetching {url}: {e}")
    
        return all_links
    
    # Start the BFS from the homepage
    start_url = 'https://www.example.com'  # Replace with the actual homepage URL
    all_extracted_links = bfs_link_extraction(start_url)
    print(f"Extracted {len(all_extracted_links)} links.")
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    여기에서는 Python의 내장 JSON 라이브러리를 사용하여 전체 데이터 세트를 메모리에로드합니다. 데이터 세트의 각 항목에는 소스의 URL과 Text_Content 필드가 포함되어 있으며,이 필드는 원시 스크랩 된 텍스트를 보유합니다. 이 내용은 다음 단계에서 처리 할 것입니다.

    2 단계 : 원시 텍스트 컨텐츠 추출 다음, 우리는 데이터 세트를 반복하여 각 항목에 대해 관련 Text_content를 추출합니다. 이를 통해 필요한 컨텐츠가 포함 된 유효한 항목 만 작업 할 수 있습니다. 프로세스의 무결성을 유지하기 위해 유효하지 않거나 불완전한 항목이 건너 뜁니다.

    코드 스 니펫 :

    이 시점에서 input_text 변수에는 추가 처리를 위해 AI 모델로 보낼 원시 텍스트 컨텐츠가 포함되어 있습니다. 각 항목을 처리하기 전에 필요한 키의 존재를 보장하는 것이 중요합니다.

    3 단계 : 처리를 위해 AI 에이전트에 데이터를 전송합니다 원시 함량을 추출한 후 구조화 된 추출을 위해 에이전트 AI 모델로 보냅니다. 우리는 Groq API와 상호 작용하여 사전 정의 된 프롬프트를 기반으로 구조화 된 통찰력을 요청합니다. AI 모델은 콘텐츠를 처리하고 제품 기능, 통합 및 문제 해결 단계와 같은 주요 측면을 다루는 조직화 된 정보를 반환합니다.

    코드 스 니펫 :

    여기서, 코드는 GROQ에 API 호출을 시작하여 input_text를 보내고 메시지 페이로드의 일부로 지침을 보냅니다. 시스템 메시지는 정확한 작업에 대한 AI 모델을 지시하고 사용자 메시지는 처리 할 컨텐츠를 제공합니다. 우리는 온도, max_tokens 및 top_p 매개 변수를 사용하여 생성 된 출력의 무작위성과 길이를 제어합니다. API 호출 구성 : <b> </b>

    모델 :
    Extracted 1500 links.
    로그인 후 복사
    로그인 후 복사

    사용할 모델을 지정합니다. 이 경우 텍스트 데이터를 처리하고 응답을 생성 할 수 있도록 언어 모델이 선택됩니다.

    온도 :

    는 응답의 창의성을 제어합니다. 가치가 높을수록 더 창의적 인 반응을 가져 오는 반면, 더 낮은 값은 더 결정 론적으로 만듭니다.

    max_tokens :

    생성 된 응답의 최대 길이를 설정합니다 top_p :

    토큰 선택에 대한 누적 확률 분포를 결정하여 응답의 다양성을 제어합니다.
    import json
    
    # Function to scrape and extract data from the URLs
    def scrape_data_from_links(links):
        scraped_data = []
    
        for link in links:
            try:
                response = requests.get(link)
                soup = BeautifulSoup(response.content, 'html.parser')
    
                # Example: Extract 'title' and 'content' (modify according to your needs)
                title = soup.find('title').get_text()
                content = soup.find('div', class_='content').get_text()  # Adjust selector
    
                # Store the extracted data
                scraped_data.append({
                    'url': link,
                    'title': title,
                    'content': content
                })
            except requests.exceptions.RequestException as e:
                print(f"Error scraping {link}: {e}")
    
        return scraped_data
    
    # Scrape data from the extracted links
    scraped_contents = scrape_data_from_links(all_extracted_links)
    
    # Save scraped data to a JSON file
    with open('/content/scraped_data.json', 'w') as outfile:
        json.dump(scraped_contents, outfile, indent=4)
    
    print("Data scraping complete.")
    로그인 후 복사
    4 단계 : 결과 처리 및 수집 결과

    일단 AI 모델이 컨텐츠를 처리하면 구조화 된 정보의 덩어리를 반환합니다. 우리는이 청크를 수집하고 연락하여 전체 결과 세트를 생성하여 데이터가 손실되지 않고 최종 출력이 완료되도록합니다.

    .

    코드 스 니펫 :

    import requests
    from bs4 import BeautifulSoup
    from collections import deque
    
    # Function to extract links using BFS
    def bfs_link_extraction(start_url, max_depth=3):
        visited = set()  # To track visited links
        queue = deque([(start_url, 0)])  # Queue to store URLs and current depth
        all_links = []
    
        while queue:
            url, depth = queue.popleft()
    
            if depth > max_depth:
                continue
    
            # Fetch the content of the URL
            try:
                response = requests.get(url)
                soup = BeautifulSoup(response.content, 'html.parser')
    
                # Extract all links in the page
                links = soup.find_all('a', href=True)
                for link in links:
                    full_url = link['href']
                    if full_url.startswith('http') and full_url not in visited:
                        visited.add(full_url)
                        queue.append((full_url, depth + 1))
                        all_links.append(full_url)
            except requests.exceptions.RequestException as e:
                print(f"Error fetching {url}: {e}")
    
        return all_links
    
    # Start the BFS from the homepage
    start_url = 'https://www.example.com'  # Replace with the actual homepage URL
    all_extracted_links = bfs_link_extraction(start_url)
    print(f"Extracted {len(all_extracted_links)} links.")
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    이 코드 스 니펫은 각 청크에서 pm_points

    변수로 내용을 연결하여 전체적이고 구조화 된 통찰력 세트를 초래합니다. 이해 관계자가 추가 분석을 위해 쉽게 소비하거나 사용할 수있는 형식으로 이러한 통찰력을 추출합니다. 아래는 원래 코드의 출력 스크린 샷이며, 무결성을 유지하기 위해 민감한 정보가 마스크되었습니다. 5 단계 : 오류 처리 및 데이터 무결성 유지 처리하는 동안 불완전한 컨텐츠 또는 네트워크 문제와 같은 오류가 발생할 가능성이 항상 있습니다. 오류 처리 메커니즘을 사용하여 모든 유효한 항목에 대해 프로세스가 원활하게 계속되도록합니다. 코드 스 니펫 :

    이 시도 공간 블록은 오류를 잡고 기록하여 시스템이 다른 항목을 계속 처리 할 수 ​​있도록합니다. 특정 항목이 문제를 일으키는 경우 시스템은 전체 프로세스를 중단하지 않고 검토 할 수 있습니다. 6 단계 : 처리 된 데이터 저장 AI가 컨텐츠를 처리하고 구조화 된 통찰력을 반환 한 후 마지막 단계는 나중에 사용하기 위해이 데이터를 저장하는 것입니다. 우리는 구조화 된 결과를 JSON 파일로 다시 작성하여 모든 항목이 추가 분석을 위해 자체 처리 된 정보를 보장합니다.

    코드 스 니펫 :

    이 코드는 처리 된 데이터를 효율적으로 저장하고 나중에 쉽게 액세스 할 수 있습니다. 각 항목을 각각의 구조화 된 지점으로 저장하여 추출 된 정보를 검색하고 분석합니다.

    출력 위의 코드를 실행 한 후 처리 된 JSON 파일에는 각 항목에 대한 추출 된 포인트가 포함됩니다. Fields PM_Points는 제품 기능, 통합, 문제 해결 단계 등과 관련된 구조화 된 정보를 보유합니다.

    아래는 원래 코드의 출력 스크린 샷입니다. 무결성을 유지하기 위해 민감한 정보가 가려졌습니다

    검색을 위해 섭취 한 생성 파이프 라인 구현

    이전 섹션에서는 웹 페이지의 데이터 추출에 중점을두고 JSON과 같은 구조적 형식으로 변환했습니다. 또한 관련 데이터를 추출하고 정리하는 기술을 구현하여 더 깊은 분석을위한 데이터 세트를 생성 할 수 있습니다. 이 섹션에서는이 섹션에서, 우리는 RAG (Respreval-Augmented Generation) 파이프 라인을 구현할 것입니다.이 파이프 라인은 문서 검색 및 언어 모델 생성을 결합하여 추출 된 정보를 기반으로 질문에 답변합니다. 우리가 이전에 긁고 처리 한 구조화 된 데이터를 통합 함으로써이 RAG 파이프 라인은 가장 관련성이 높은 문서 청크를 검색 할뿐만 아니라 해당 컨텍스트에 따라 정확하고 통찰력있는 응답을 생성합니다.
    . 1 단계 : 환경 설정 우선 Rag 파이프 라인에 필요한 모든 종속성을 설치하겠습니다.

    이 패키지는 Langchain 내의 문서 처리, 벡터화 및 OpenAI 모델을 통합하는 데 중요합니다. JQ는 경량 JSON 프로세서이며 Langchain은 언어 모델 파이프 라인을 구축하는 핵심 프레임 워크 역할을합니다. Langchain-Openai는 GPT와 같은 OpenAI 모델의 통합을 용이하게하며 Langchain-Chroma는 문서 임베딩을 관리하기위한 크로마 기반 벡터 스토어를 제공합니다. 또한, 우리는 문장 변환기를 사용하여 미리 훈련 된 변압기 모델로 텍스트 임베딩을 생성하여 효율적인 문서 처리 및 검색을 가능하게합니다. 2 단계 : 추출 된 데이터로드 이제 JSONLOADER를 사용하여 이전 섹션에서 추출 및 처리 된 구조화 된 데이터를로드합니다. 예를 들어이 데이터는 웹 페이지에서 구조화 된 JSON으로 긁어 냈으며, 특정 주제 나 질문과 관련된 키 값 쌍이 있습니다.

    이 단계에서는 이전에 추출 된 데이터 (아마도 제품 기능, 통합 및 기능 포함)가 추가 처리를 위해로드되었습니다. 3 단계 : 문서를 작은 덩어리로 분할 이제 원시 데이터가 있으므로 RecursiveCharacterTexTsplitter를 사용하여 문서를 작은 덩어리로 나눕니다. 이렇게하면 단일 청크가 언어 모델의 토큰 한계를 초과 할 수 없습니다.

    recursiveCharacterTextSplitter는 문서를 더 작은 세그먼트로 나누어 청크 겹침이 더 나은 상황에 대한 이해를 위해 보존되도록합니다. chunk_size 매개 변수는 각 청크의 크기를 결정하고 chunk_overlap은 인접한 청크에 중요한 정보가 유지되도록합니다. 또한 add_start_index는 인덱스를 포함하여 문서의 순서를 유지하는 데 도움이되므로 각 청크가 원본 문서에서 시작된 위치를 쉽게 추적 할 수 있습니다. 4 단계 : 문서 청크에 대한 임베드 생성 이제, 우리는 sentencetransformer를 사용하여 각 텍스트 덩어리를 임베딩으로 변환합니다. 이러한 임베딩은 고차원 벡터 공간에서 텍스트의 의미를 나타내며, 이는 나중에 관련 문서를 검색하고 검색하는 데 유용합니다.

    import requests
    from bs4 import BeautifulSoup
    from collections import deque
    
    # Function to extract links using BFS
    def bfs_link_extraction(start_url, max_depth=3):
        visited = set()  # To track visited links
        queue = deque([(start_url, 0)])  # Queue to store URLs and current depth
        all_links = []
    
        while queue:
            url, depth = queue.popleft()
    
            if depth > max_depth:
                continue
    
            # Fetch the content of the URL
            try:
                response = requests.get(url)
                soup = BeautifulSoup(response.content, 'html.parser')
    
                # Extract all links in the page
                links = soup.find_all('a', href=True)
                for link in links:
                    full_url = link['href']
                    if full_url.startswith('http') and full_url not in visited:
                        visited.add(full_url)
                        queue.append((full_url, depth + 1))
                        all_links.append(full_url)
            except requests.exceptions.RequestException as e:
                print(f"Error fetching {url}: {e}")
    
        return all_links
    
    # Start the BFS from the homepage
    start_url = 'https://www.example.com'  # Replace with the actual homepage URL
    all_extracted_links = bfs_link_extraction(start_url)
    print(f"Extracted {len(all_extracted_links)} links.")
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    sentencetransformer는 텍스트 청크에 대한 임베딩을 생성하는 데 사용되어 의미 정보를 캡처하는 밀도가 높은 벡터 표현을 만듭니다. embed_documents 함수는 여러 문서를 처리하고 임베딩을 반환하는 반면 embed_query는 사용자 쿼리에 대한 임베딩을 생성합니다. 벡터 스토어 인 Chroma는 이러한 내장을 관리하고 유사성을 기반으로 효율적인 검색을 가능하게하여 빠르고 정확한 문서 또는 쿼리 일치를 허용합니다. 5 단계 : 리트리버 설정 이제 리트리버를 구성합니다. 이 구성 요소는 사용자 쿼리를 기반으로 가장 관련성이 높은 텍스트 청크를 검색합니다. 쿼리에 가장 유사한 문서 청크를 검색합니다.

    리트리버는 유사성 검색을 사용하여 벡터 스토어에서 가장 관련성이 높은 덩어리를 찾습니다. k = 6은 쿼리와 가장 관련이있는 상위 6 개 청크를 반환한다는 것을 의미합니다.

    6 단계 : 프롬프트 템플릿 생성
    import requests
    from bs4 import BeautifulSoup
    from collections import deque
    
    # Function to extract links using BFS
    def bfs_link_extraction(start_url, max_depth=3):
        visited = set()  # To track visited links
        queue = deque([(start_url, 0)])  # Queue to store URLs and current depth
        all_links = []
    
        while queue:
            url, depth = queue.popleft()
    
            if depth > max_depth:
                continue
    
            # Fetch the content of the URL
            try:
                response = requests.get(url)
                soup = BeautifulSoup(response.content, 'html.parser')
    
                # Extract all links in the page
                links = soup.find_all('a', href=True)
                for link in links:
                    full_url = link['href']
                    if full_url.startswith('http') and full_url not in visited:
                        visited.add(full_url)
                        queue.append((full_url, depth + 1))
                        all_links.append(full_url)
            except requests.exceptions.RequestException as e:
                print(f"Error fetching {url}: {e}")
    
        return all_links
    
    # Start the BFS from the homepage
    start_url = 'https://www.example.com'  # Replace with the actual homepage URL
    all_extracted_links = bfs_link_extraction(start_url)
    print(f"Extracted {len(all_extracted_links)} links.")
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    다음, 언어 모델의 입력을 형식화하는 프롬프트 템플릿을 만듭니다. 이 템플릿에는 컨텍스트 (검색된 청크)와 사용자 쿼리가 모두 포함되어 있으며 제공된 컨텍스트만으로 답을 생성하도록 모델을 안내합니다.
    • ChatPromptTemplate은 주어진 컨텍스트에만 기반을 두어야 할 필요성을 강조하는 방식으로 모델의 입력을 형식화합니다. {context}가 관련 텍스트 청크로 대체되고 {Question}은 사용자 쿼리로 대체됩니다.
    • 7 단계 : 언어 모델 설정 이 단계에서는 OpenAI GPT 모델을 초기화합니다. 이 모델은 리트리버가 제공하는 구조화 된 컨텍스트를 기반으로 답변을 생성합니다.
    • 우리는 chatopenai 모델을 초기화하여 프롬프트를 처리하고 답을 생성합니다. 우리는 효율적인 처리를 위해 더 작은 모델 인“GPT-4O-MINI”를 사용하지만 더 복잡한 작업에는 큰 모델이 사용될 수 있습니다.
    8 단계 : 헝겊 파이프 라인 구성

    여기서, 우리는 모든 구성 요소 (Retriever, Prompt, LLM)를 응집력있는 걸레 파이프 라인에 통합합니다. 이 파이프 라인은 쿼리를 취하고 관련 컨텍스트를 검색하고 모델을 통과하며 응답을 생성합니다.

    runnablePassthrough는 쿼리가 프롬프트로 직접 전달되도록합니다. Stroutputparser는 모델에서 출력을 문자열 형식으로 정리하고 형식화하는 데 사용됩니다.

    9 단계 : 헝겊 파이프 라인 테스트
    Extracted 1500 links.
    로그인 후 복사
    로그인 후 복사
    마지막으로 다양한 사용자 쿼리로 파이프 라인을 테스트합니다. 각 쿼리에 대해 시스템은 관련 문서 청크를 검색하고 언어 모델을 통해 전달하고 응답을 생성합니다.
    • 시스템은 각 쿼리를 통해 반복되어 파이프 라인을 호출하고 생성 된 답변을 인쇄합니다. 각 쿼리에 대해 모델은 검색된 컨텍스트를 처리하고 컨텍스트에 근거한 답변을 제공합니다.
    • 아래는 원래 코드의 헝겊 출력의 스크린 샷입니다. 무결성을 유지하기 위해 민감한 정보가 가려졌습니다
    • 웹 스크래핑, 데이터 추출 및 고급 검색 증거 생성 (RAG) 기술을 결합하여 회사 인텔리전스를위한 강력하고 확장 가능한 프레임 워크를 만들었습니다. 링크를 추출하고 데이터를 폐기하는 첫 번째 단계는 웹에서 관련 및 최신 정보를 수집 할 수 있도록합니다. 두 번째 섹션은 특정 제품 관련 세부 정보를 찾아내는 데 중점을 두어 데이터를보다 쉽게 ​​분류하고 처리 할 수 ​​있습니다.

      마지막으로, RAG를 활용하면 방대한 데이터 세트에서 상황 정보를 검색하고 합성하여 복잡한 쿼리에 동적으로 응답 할 수 있습니다. 이러한 구성 요소는 함께 회사에 대한 실행 가능한 통찰력을 수집, 처리 및 제공 할 수있는 에이전트 플랫폼을 구축하는 데 사용할 수있는 포괄적 인 설정을 형성합니다. 이 프레임 워크는 고급 인텔리전스 시스템을 개발하기위한 토대 역할을 할 수 있으며, 조직이 경쟁 분석을 자동화하고 시장 동향을 모니터링하며 해당 산업에 대한 정보를 유지할 수 있도록 할 수 있습니다. 배포 및 스케일링 일단 회사 인텔리전스 시스템이 구축되면 다음 단계는 생산 사용을 위해 배치하고 확장하는 것입니다. 유연성 및 확장 성을 위해 AWS 또는 GCP와 같은 클라우드 플랫폼에 시스템을 배포하거나 데이터 개인 정보가 우선 순위 인 경우 온 프레미스 솔루션을 선택할 수 있습니다. 시스템을보다 사용자 친화적으로 만들려면 사용자가 플랫폼과 상호 작용하고 통찰력을 쉽게 검색 할 수있는 간단한 API 또는 UI를 구축하는 것을 고려하십시오. 시스템이 더 큰 데이터 세트와 더 높은 쿼리로드를 처리하기 시작하면 효율적으로 확장해야합니다.

      이것은 분산 벡터 저장소를 활용하고 검색 프로세스를 최적화함으로써 달성 할 수 있으며, 이는 파이프 라인이 많이 사용되고 빠르고 빠르게 유지되도록합니다. 올바른 인프라 및 최적화 기술을 통해 에이전트 플랫폼은 대규모 운영을 지원하기 위해 성장하여 실시간 통찰력을 제공하고 회사 인텔리전스의 경쟁 우위를 유지할 수 있습니다.

      결론 오늘날의 데이터 중심 세계에서 구조화되지 않은 회사 데이터에서 실행 가능한 통찰력을 추출하는 것이 중요합니다. RAG (Resprieved-Augmented Generation) 시스템은 데이터 스크래핑, 포인터 추출 및 지능형 쿼리를 결합하여 회사 인텔리전스를위한 강력한 플랫폼을 만듭니다. Rag Systems는 주요 정보를 구성하고 실시간, 상황 별 응답을 가능하게함으로써 조직에서 현명한 의사 결정을 강화하고 비즈니스가 데이터를 지원하고 적응 가능한 의사 결정을 내릴 수 있도록 도와줍니다. 이 확장 가능한 솔루션은 정확도를 유지하면서 복잡한 쿼리 및 더 큰 데이터 세트를 처리하는 요구에 따라 커집니다. 올바른 인프라를 통해이 AI 중심 플랫폼은 더 똑똑한 운영을위한 초석이되어 조직이 조직의 현명한 의사 결정을 통해 데이터를 활용하고 경쟁력을 유지하며 혁신을 주도 할 수 있습니다. 키 테이크 아웃

      링크 추출 및 웹 스크래핑은 최소한의 노력으로 여러 소스의 자동적이고 효율적인 데이터 수집을 가능하게하여 회사 인텔리전스를 향상시킵니다. 주요 데이터 포인트 추출은 구조화되지 않은 컨텐츠를 체계적이고 실행 가능한 지식으로 변환하여 AI 중심의 통찰력을위한 회사 인텔리전스를 강화합니다. RAG를 맞춤형 벡터 스토어와 최적화 된 리트리버를 결합하면 더 나은 의사 결정을위한 지능적이고 상황을 인식하는 응답이 가능합니다. 클라우드 기반 솔루션 및 분산 벡터 스토어는 성능 손실없이 더 큰 데이터 세트 및 쿼리로드를 효율적으로 스케일링하여. RAG 파이프 라인은 실시간 쿼리를 처리하여 지식 기반에서 직접 주문형 통찰력을 제공합니다.

      보너스 :
        여기에서 논의 된 모든 코드는 다음 링크에서 제공됩니다. 각 노트북에 대한 자체 설명 이름이있는 총 4 개의 노트북을 사용할 수 있습니다. 기업을 탐색, 개발 및 혁명을 자유롭게하십시오! 자주 묻는 질문
      • q 1. 이 설정에서 RAG (Retrieval-Augmented Generation)를 사용하는 목적은 무엇입니까?
      • 회사 인텔리전스 를 향상시켜 비즈니스가 실시간, 실행 가능한 통찰력을 추출 할 수 있도록합니다. 회사 인텔리전스에 데이터를 긁어내는 이유는 무엇입니까? 데이터 스크래핑은 정보에 입각 한 의사 결정을 위해 여러 출처에서 귀중한 정보를 수집하고 구성하여 강력한
      • 회사 인텔리전스
      • 시스템을 구축하는 데 도움이됩니다.이 기사에 나와있는 미디어는 Analytics Vidhya가 소유하지 않으며 저자의 재량에 따라 사용됩니다.

위 내용은 조직에서 현명한 의사 결정을위한 헝겊 시스템 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿