일반 대규모 언어 모델(LLM) 커넥터 구성

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 읽기6분
  • 일반 LLM 커넥터를 사용하여 외부 LLM을 에 Now Platform 연결합니다. 커넥터를 사용하면 LLM으로 보낼 자체 프롬프트를 작성하고 고유한 생성형 AI 기능을 생성할 수 있습니다.

    시작하기 전에

    커넥터를 설정하기 전에 LLM에 대한 API 자격 증명을 구성해야 합니다. 자세한 내용은 일반 LLM에 대한 API 자격 증명 구성을 참조하세요.

    필요한 역할: admin

    이 태스크 정보

    생성형 AI 컨트롤러 는 Vertex와 같은 Azure OpenAIGoogle 인기 있는 AI 서비스 제공업체에 대한 여러 기본 시스템 연결을 제공합니다. 그러나 산업 LLM, 케이스별 LLM을 사용자 지정 워크플로에 통합하거나 조직의 데이터 처리 정책을 준수하는 LLM을 통합할 수 있습니다.
    주:
    생성형 AI 컨트롤러 텍스트 생성만 지원합니다.

    프로시저

    1. 탐색 필터에 sys_generative_ai_model_config.list를 입력하여 생성형 AI 모델 구성 [sys_generative_ai_model_config] 테이블로 이동합니다.
    2. 새로 만들기를 선택합니다.
    3. 모델 필드에 모델 이름을 입력합니다.
      Azure OpenAI를 사용하는 경우 모델 이름은 리소스의 배포 이름입니다.
    4. Provider( 제공자) 필드에서 Custom LLM(사용자 지정 LLM)을 선택합니다.
    5. 연결 및 자격 증명 별칭 필드에서 자격 증명을 설정할 때 생성한 별칭을 선택합니다.
      API 자격 증명을 아직 구성하지 않은 경우 일반 대규모 언어 모델에 대한 API 자격 증명 구성을 참조하여 방법을 알아보세요. 제공자 필드가 사용자 지정 LLM으로 설정되고 연결 및 자격 증명 별칭 필드가 My_Model_Alias로 설정된 생성형 AI 모델 구성 기록입니다.
    6. 제출을 선택하여 모델 구성을 만듭니다.
      모델 구성은 외부 모델의 API 키와 연결됩니다.
    7. 탐색 필터에 sys_generative_ai_config.list를 입력하여 생성형 AI 구성 [sys_generative_ai_config] 테이블로 이동합니다.
    8. 새로 만들기를 선택합니다.
    9. 정의 필드 옆에 있는 목록 조회 아이콘(돋보기가 있는 목록 조회 아이콘)을 선택합니다.
    10. 문서 선택 모달에서 사용자 지정 LLM 제공자를 사용하여 구성할 기능을 선택합니다.
      예를 들어 요약 기능을 구성하는 경우 요약(사용자 지정 LLM)을 선택합니다.
    11. 확인을 선택하여 선택 항목을 저장하고 모달을 닫습니다.
    12. 모델 필드에서 6단계에서 생성한 모델 구성을 선택합니다.
      정의를 선택하면 모델 필드가 사용자 지정 LLM 제공자를 사용하는 옵션이 있는 드롭다운 메뉴로 변경됩니다. 만든 모델 구성이 이 목록에 나타나야 합니다. 그렇지 않은 경우 1단계로 돌아가 모델 구성의 제공자 필드가 사용자 지정 LLM으로 설정되어 있는지 확인합니다.
    13. 프롬프트 템플릿 필드에 역량에 대한 프롬프트를 입력합니다.
      프롬프트 템플릿은 기능을 실행하기 위해 LLM으로 전송되는 지침입니다. 기능 속성 이름을 두 개의 중괄호로 묶어 프롬프트 템플릿에 통합합니다. 예를 들어 요약 역량을 구성하는 경우 프롬프트 템플릿은 친절하고 유용한 어조로 다음을 요약할 수 있습니다. {{textToSummarize}}. 프롬프트에 포함할 수 있는 속성을 알아보려면 OneExtend 역량 [sys_one_extend_capability] 테이블로 이동하여 구성 중인 역량에 대한 기록을 찾은 다음 OneExtend 역량 속성 관련 목록을 살펴보십시오. 정의, 모델 및 프롬프트 템플릿 필드가 채워진 생성형 AI 구성 기록입니다. OneExtend 역량 속성과 함께 열린 요약 역량 기록 관련 목록이 강조 표시되고 식별된 속성(error, errorCode, 제공자, 응답, 상태 및 textToSummarize)입니다. 사용 사례에 가장 적합한 프롬프트를 결정하기 위해 다양한 프롬프트를 실험해야 할 수도 있습니다.
    14. 제출을 선택하여 새 생성형 AI 구성을 생성합니다.
    15. 탐색 필터에 sys_generative_ai_custom_llm_transformer를 입력하여 생성형 AI 사용자 지정 LLM 변환기 [sys_generative_ai_custom_llm_transformer] 테이블로 이동합니다.
    16. 새로 만들기를 선택합니다.
    17. 변환기 스크립트를 작성합니다.
      생성형 AI 컨트롤러 사용자 지정 LLM의 입력 및 출력 형식을 이해하려면 변환기 스크립트를 작성해야 합니다. 변환기 기록을 만들면 편집하는 동안 가이드로 사용할 수 있는 코드와 주석이 제공됩니다. 이러한 스크립트는 모델에 의해 해석되는 예상 요청 및 응답 객체에 따라 달라집니다.

      예를 들어 요청 구조는 Azure OpenAI 다음 스크립트와 같습니다.

      {"messages": [{"role":"user", "content":"Summarize the following text: <<content>>"}], "max_tokens": 800, "temperature": 0.7}
      해당 요청 구조에 대한 요청 변환기 스크립트는 다음 스크립트입니다.
      (function(inputs) {
          /* write code here to construct the request body and any custom headers needed using the inputs object.
          inputs structure: {
              prompt_data: object,
              request_data: object
          } */
          var requestData = inputs.request_data;    
          var promptData = inputs.prompt_data;
          var prompt = promptData.prompt;
          var model = promptData.model;
      
          // construct body using the inputs
          var body = {
              messages: [{
              "role": "user",
              "content": prompt
              }],
              max_tokens: parseInt(promptData.max_tokens),
              temperature: parseInt(promptData.temperature)    
          };
      
          //construct headers using the inputs
          var headers = {};                        
          return {
              body: body,
              headers: headers
          };
      })(inputs);
      Azure OpenAI 응답 구조는 다음 스크립트와 같습니다.
      {
          "choices": [{
          "finish_reason": "stop",
          "index": 0,
          "message": {
              "content": "<<response>>",
              "role": "assistant"
              }
          }],
          "created": 1714994995,
          "id": "chatcmpl-9LqpXeLVXDAi6kciPfLeIDjmALeea",
          "model": "gpt-35-turbo-16k",
          "object": "chat.completion",
          "usage": {    
              "completion_tokens": 47,
              "prompt_tokens": 70,
              "total_tokens": 117
          }
      }
      이러한 응답 구조로 인해 응답 변환기 스크립트는 다음 스크립트와 같습니다.
      (function(inputs) {
          /* write code here to transform the llm response into an array of text responses, using the inputs object
          inputs structure: {
              prompt_data: object,
              request_data: object,
              response_body: string,
              response_headers: string
          } */
          var requestData = inputs.request_data;
          var promptData = inputs.prompt_data;
          var responseBody = JSON.parse(inputs.response_body);
          gs.info("response : " + inputs.response_body);
          var responseTexts = [];
      
          // write code here to populate the responseTexts array.
          responseTexts.push(responseBody.choices[0].message.content);
      
          return responseTexts;
      
      })(inputs);
    18. 제출을 선택하여 변환기 스크립트를 만듭니다.

    결과

    외부 LLM이 에 연결되어 있습니다 생성형 AI 컨트롤러. 에서 생성형 AI 기능에 Now PlatformAI 서비스 제공자를 사용할 수 있습니다.

    다음에 수행할 작업

    LLM을 연결한 후 의 생성형 AI 기능에 생성형 AI 컨트롤러대한 제공자를 설정할 수 있습니다. 기능으로는 일반 프롬프트, 콘텐츠 생성, 감정 분석 및 요약이 있습니다. 제공자 선택에 대한 자세한 내용은 생성형 AI 기능에 대한 제공자 설정을 참조하십시오.