>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 Langchain에 대한 완전한 가이드

JavaScript의 Langchain에 대한 완전한 가이드

William Shakespeare
William Shakespeare원래의
2025-02-08 10:24:13858검색

코어 포인트 : A Complete Guide to LangChain in JavaScript

Langchainjs는 개발자가 웹 애플리케이션에 원활하게 통합 된 AI 중심 언어 모델 및 에이전트를 구축하고 실험 할 수있는 강력한 JavaScript 프레임 워크입니다.

이 프레임 워크를 통해 다양한 도구 및 데이터 소스를 활용하여 인터넷 검색 및 수학적 계산과 같은 복잡한 언어 작업을 수행하여 응답의 정확성과 관련성을 향상시킬 수있는 에이전트를 생성 할 수 있습니다. langchain은 간단한 텍스트 출력을위한 언어 모델, 대화식 대화를위한 채팅 모델 및 텍스트를 숫자 벡터로 변환하기위한 모델을 포함시켜 다양한 NLP 응용 프로그램의 개발을 촉진하는 다양한 모델을 지원합니다. 텍스트 데이터는 사용자 정의 가능한 청킹 방법을 통해 효율적으로 관리 및 처리 할 수있어 큰 텍스트를 처리 할 때 최적의 성능과 상황에 맞는 관련성을 보장 할 수 있습니다.

Langchain은 OpenAI 모델을 사용하는 것 외에도 다른 대형 언어 모델 (LLM) 및 AI 서비스와 호환되므로 프로젝트에서 다양한 AI의 통합을 탐색하는 개발자에게 유연성 및 확장 기능을 제공합니다.
  • 이 안내서는 Langchain의 주요 구성 요소로 뛰어 들어 JavaScript에서 그 힘을 활용하는 방법을 보여줍니다. Langchainjs는 개발자와 연구원이 언어 모델 및 에이전트를 생성, 실험 및 분석 할 수있는 일반적인 JavaScript 프레임 워크입니다. NLP (Natural Language Processing) 애호가에게 맞춤형 모델 구축에서 효율적인 조작 텍스트 데이터에 이르기까지 다양한 기능을 제공합니다. JavaScript 프레임 워크로서 개발자는 AI 응용 프로그램을 웹 응용 프로그램에 쉽게 통합 할 수 있습니다.
  • 전제 조건 :
  • 이 기사를 배우려면 새 폴더를 만들고 langchain npm 패키지를 설치하십시오 :
  • 새 폴더를 작성한 후 접미사를 사용하여 새 JS 모듈 파일을 만듭니다 (예 : ).
  • 에이전트 :
  • Langchain에서 에이전트는 텍스트를 이해하고 생성 할 수있는 엔티티입니다. 이 에이전트는 특정 동작 및 데이터 소스를 구성 할 수 있으며 다양한 언어 관련 작업을 수행하도록 교육을 받으므로 다양한 응용 프로그램을위한 다기능 도구가됩니다.
  • 랑 체인 에이전트 생성 : 대행사는 "도구"를 사용하여 필요한 데이터를 수집하고 좋은 응답을 개발하도록 구성 할 수 있습니다. 아래 예제를 참조하십시오. SERP API (인터넷 검색 API)를 사용하여 질문 또는 입력과 관련된 정보를 검색하고 응답합니다. 또한 도구를 사용하여 수학 작업을 수행합니다. 예를 들어 단위를 변환하거나 두 값 사이의 백분율 변경을 찾습니다.
    <code class="language-bash">npm install -S langchain</code>
    를 사용하여 모델 변수를 생성 한 후 생성 된 모델과 지정된 도구 (Serpapi 및 Calculator)를 결합하는 실행자를 만듭니다. 입력에서 나는 LLM에 인터넷을 검색하고 (Serpapi를 사용하여) 2010 년 이후 NAS 또는 Boldy James (Boldy James)를 더 많은 앨범을 출시 한 아티스트를 찾아 계산기를 사용하여 비율 차이를 보여 주도록 요청했습니다. modelName: "gpt-3.5-turbo" 이 예에서는 LLM에 "인터넷 검색을 통해 ..."를 통해 OpenAI 기본값을 2021 년에만 사용하지 않고 오늘날까지 인터넷을 사용하여 데이터를 얻도록 명시 적으로 알려야합니다. temperature: 0 출력은 다음과 같습니다 모델 (모델) :

    Langchain에는 LLM, 채팅 모델 및 텍스트 임베딩 모델의 세 가지 유형이 있습니다. 몇 가지 예를 들어 각 유형의 모델을 탐색합시다.

    언어 모델 :

    Langchain은 텍스트 입력을 기반으로 텍스트 출력을 생성하기 위해 JavaScript의 언어 모델을 사용하는 방법을 제공합니다. 채팅 모델만큼 복잡하지 않으며 간단한 입력 출력 언어 작업에 가장 적합합니다. 다음은 OpenAi를 사용하는 예입니다 :

    보시다시피,
    <code class="language-javascript">import { initializeAgentExecutorWithOptions } from "langchain/agents";
    import { ChatOpenAI } from "langchain/chat_models/openai";
    import { SerpAPI } from "langchain/tools";
    import { Calculator } from "langchain/tools/calculator";
    
    process.env["OPENAI_API_KEY"] = "YOUR_OPENAI_KEY"
    process.env["SERPAPI_API_KEY"] = "YOUR_SERPAPI_KEY"
    
    const tools = [new Calculator(), new SerpAPI()];
    const model = new ChatOpenAI({ modelName: "gpt-3.5-turbo", temperature: 0 });
    
    const executor = await initializeAgentExecutorWithOptions(tools, model, {
      agentType: "openai-functions",
      verbose: false,
    });
    
    const result = await executor.run("通过搜索互联网,查找Boldy James自2010年以来发行了多少张专辑,以及Nas自2010年以来发行了多少张专辑?找出谁发行了更多专辑,并显示百分比差异。");
    console.log(result);</code>
    모델을 사용하여 모든 붉은 딸기를 나열합니다. 이 예에서는 LLM DE 사실상 정확도를 제공하기 위해 온도를 0으로 설정했습니다.

    출력 : 채팅 모델 : 더 복잡한 답변과 대화를 원한다면 채팅 모델을 사용해야합니다. 기술적으로 채팅 모델은 언어 모델과 어떻게 다릅니 까? Langchain 문서의 말로 :

    채팅 모델은 언어 모델의 변형입니다. 채팅 모델은 백그라운드에서 언어 모델을 사용하지만 약간 다른 인터페이스를 사용합니다. "텍스트 입력, 텍스트 출력"API를 사용하는 대신 입력 및 출력의 인터페이스로 "채팅 메시지"를 사용합니다.

    이것은 단순 (매우 쓸모 없지만 흥미로운) JavaScript 채팅 모델 스크립트입니다.

    보시다시피, 코드는 먼저 시스템 메시지를 보내고 챗봇에게 항상 운율로 대답하는 시적 조수가 되라고 지시 한 다음 챗봇에게 누가 더 나은 테니스 플레이어인지 알려주라고 말하는 사람의 메시지를 보냅니다. De Jokovic, Federer 또는 Nadal. 이 챗봇 모델을 실행하면 다음과 같은 것을 볼 수 있습니다. 삽입 : emding model은 텍스트의 단어와 숫자를 벡터로 변환하는 방법을 제공하여 다른 단어 나 숫자와 연관 될 수 있습니다. 이것은 추상적으로 들릴 수 있으므로 예를 살펴 보겠습니다 :

    이것은 부동 소수점 번호의 긴 목록을 반환합니다.

    이것은 임베딩이 어떻게 생겼는지입니다. 단지 6 단어로 부동 소수점 번호가 너무 많습니다!
    <code>// 输出将取决于互联网搜索结果</code>
    이 포함은 입력 텍스트를 잠재적 답변, 관련 텍스트, 이름 등과 연결하는 데 사용될 수 있습니다.

    지금 임베디드 모델의 유스 케이스를 살펴 보겠습니다 ... gpt-3.5-turbo 이제, 이것은 "가장 무거운 동물은 무엇입니까?"라는 질문을받을 수있는 스크립트입니다.

    청크 :

    Langchain 모델은 큰 텍스트를 처리하여 응답을 생성하는 데 사용할 수 없습니다. 이곳에서 청킹과 텍스트 세분화가 시작됩니다. Langchain에 공급하기 전에 텍스트 데이터를 청크로 나누는 두 가지 간단한 방법을 보여 드리겠습니다.
    <code class="language-bash">npm install -S langchain</code>
    문자 별 세그먼트 :

    청크의 갑작스런 중단을 피하기 위해 Newline 문자의 각 발생을 분할하여 단락으로 텍스트를 분할 할 수 있습니다. 이것은 텍스트를 분할하는 유용한 방법입니다. 그러나 모든 문자를 만이 아니라 청킹 분리기로 사용할 수 있습니다.

    재귀 적으로 분할 청킹 :

    특정 길이의 문자로 텍스트를 엄격하게 나누려면 : 를 사용할 수 있습니다.

    이 예에서 텍스트는 100 자마다 나뉘어지고 청크는 15 자와 겹칩니다.

    블록 크기 및 오버랩 :

    이 예제를 살펴보면 청킹 크기와 중첩 매개 변수가 무엇을 의미하는지, 성능에 어떤 영향을 미치는지 궁금해 할 수 있습니다. 좋아, 두 가지를 간단히 설명하겠습니다.

    청크 크기는 각 청크의 문자 수를 결정합니다. 청크 크기가 클수록 청크에 데이터가 많을수록 Langchain이 처리하고 출력을 생성하는 데 더 오래 걸리며 그 반대도 마찬가지입니다.
    <code class="language-javascript">import { initializeAgentExecutorWithOptions } from "langchain/agents";
    import { ChatOpenAI } from "langchain/chat_models/openai";
    import { SerpAPI } from "langchain/tools";
    import { Calculator } from "langchain/tools/calculator";
    
    process.env["OPENAI_API_KEY"] = "YOUR_OPENAI_KEY"
    process.env["SERPAPI_API_KEY"] = "YOUR_SERPAPI_KEY"
    
    const tools = [new Calculator(), new SerpAPI()];
    const model = new ChatOpenAI({ modelName: "gpt-3.5-turbo", temperature: 0 });
    
    const executor = await initializeAgentExecutorWithOptions(tools, model, {
      agentType: "openai-functions",
      verbose: false,
    });
    
    const result = await executor.run("通过搜索互联网,查找Boldy James自2010年以来发行了多少张专辑,以及Nas自2010年以来发行了多少张专辑?找出谁发行了更多专辑,并显示百分比差异。");
    console.log(result);</code>
    블록 오버랩은 블록간에 정보를 공유하여 일부 컨텍스트를 공유하는 컨텐츠입니다. 청크 중첩이 높을수록 청크가 중복 될수록 청크 간에는 컨텍스트가 줄어 듭니다. 일반적으로, 좋은 청크 겹침은 청킹 크기의 약 10% ~ 20%이지만, 원하는 청크 겹침은 텍스트 유형과 사용 사례에 따라 다릅니다.

    n 체인 :

    챕터는 기본적으로 더 복잡한 작업을 수행하기 위해 함께 연결된 여러 LLM 기능입니다. 그렇지 않으면 간단한 LLM 입력을 통해 수행 할 수 없습니다. 멋진 예를 살펴 보겠습니다 :

    Openai를 넘어서 :

    예를 들어 랑 체인과 함께 코셔를 사용할 수 있습니다. Cohere를 설치 한 후 RecursiveCharacterTextSplitter 출력 :

    <code>// 输出将取决于互联网搜索结果</code>
    결론 :

    이 안내서에서는 javaScript에서 Langchain의 다양한 측면과 기능을 보았습니다. Langchain을 사용하여 JavaScript에서 AI 기반 웹 응용 프로그램을 쉽게 개발하고 LLM을 실험 할 수 있습니다. 특정 기능에 대한 자세한 내용은 Langchainjs 문서를 참조하십시오.

    나는 당신이 JavaScript에서 Langchain을 실험하고 행복한 코딩과 실험을 기원합니다! 이 기사를 좋아한다면 Python과 함께 Langchain 사용에 관한 기사를 읽으십시오.

위 내용은 JavaScript의 Langchain에 대한 완전한 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.