AIOS 연계하기

AIOS 연계하기

Cloud Functions와 AIOS를 연계하여 LLM을 활용할 수 있습니다.

AIOS LLM 프라이빗 엔드포인트

AIOS LLM 프라이빗 엔드포인트의 URL은 다음과 같습니다.

참고

AIOS 서비스의 리전별 제공 여부와 제공 모델에 대한 자세한 내용은 다음을 참조하세요.

Blueprint 소스코드 변경하기

Cloud Functions와 AIOS를 연계하려면 각 리전 내 사용하는 LLM Endpoint에 맞춰 Blueprint에 있는 URL 주소를 변경해야 합니다. Blueprint 소스코드를 변경하려면 다음 절차를 따르세요.

  1. 모든 서비스 > Compute > Cloud Functions 메뉴를 클릭하세요. Cloud Functions의 Service Home 페이지로 이동합니다.
  2. Service Home 페이지에서 Cloud Functions 메뉴를 클릭하세요. Function 목록 페이지로 이동합니다.
  3. Function 목록 페이지에서 URL로 호출할 자원을 클릭하세요. Function 상세 페이지로 이동합니다.
  4. 코드 탭을 클릭하여 이동한 후, 수정 버튼을 클릭하세요. Function 코드 수정 페이지로 이동합니다.
  5. Python, Node.js, Go Runtime 소스코드를 사용하여 Blueprint를 변경한 후, 저장 버튼을 클릭하세요.
  • Python 소스코드

    배경색 변경
    import json
    import requests
    
    def handle_request(params):
      # User writing area (Function details)
      url = "{AIOS LLM 프라이빗 엔드포인트}/{API}" # Destination URL
      data = { "model": "openai/gpt-oss-120b"
        , "prompt" : "Write a haiku about recursion in programming."
        , "temperature": 0
        , "max_tokens": 100
        , "stream": False
      }
      try:
        response = requests.post(url, json=data, verify=True)
    
        return {
          'statusCode': response.status_code,
          'body': json.dumps(response.text)
        }
      except requests.exceptions.RequestException as e:
        return str(e)
    import json
    import requests
    
    def handle_request(params):
      # User writing area (Function details)
      url = "{AIOS LLM 프라이빗 엔드포인트}/{API}" # Destination URL
      data = { "model": "openai/gpt-oss-120b"
        , "prompt" : "Write a haiku about recursion in programming."
        , "temperature": 0
        , "max_tokens": 100
        , "stream": False
      }
      try:
        response = requests.post(url, json=data, verify=True)
    
        return {
          'statusCode': response.status_code,
          'body': json.dumps(response.text)
        }
      except requests.exceptions.RequestException as e:
        return str(e)
    Python 소스코드

  • Node.js 소스코드

    배경색 변경
    const request = require('request');
    
    /**
    * @description User writing area (Function details)
    */
    exports.handleRequest = async function (params) {
    return await sendRequest(params);
    };
    
    async function sendRequest(req) {
      return new Promise((resolve, reject) => {
        url = "{AIOS LLM 프라이빗 엔드포인트}/{API}"
        data = { model: 'openai/gpt-oss-120b'
          , prompt : 'Write a haiku about recursion in programming.'
          , temperature: 0
          , max_tokens: 100
          , stream: false
        }
    
        const options = {
          uri: url,
          method:'POST',
          body: data,
          json: true,
          strictSSL: false,
          rejectUnauthorized: false
        }
        
        request(options, (error, response, body) => {
          if (error) {
            reject(error);
          } else {
            resolve({
              statusCode: response.statusCode,
              body: JSON.stringify(body)
            });
          }
        });
      });
    }
    const request = require('request');
    
    /**
    * @description User writing area (Function details)
    */
    exports.handleRequest = async function (params) {
    return await sendRequest(params);
    };
    
    async function sendRequest(req) {
      return new Promise((resolve, reject) => {
        url = "{AIOS LLM 프라이빗 엔드포인트}/{API}"
        data = { model: 'openai/gpt-oss-120b'
          , prompt : 'Write a haiku about recursion in programming.'
          , temperature: 0
          , max_tokens: 100
          , stream: false
        }
    
        const options = {
          uri: url,
          method:'POST',
          body: data,
          json: true,
          strictSSL: false,
          rejectUnauthorized: false
        }
        
        request(options, (error, response, body) => {
          if (error) {
            reject(error);
          } else {
            resolve({
              statusCode: response.statusCode,
              body: JSON.stringify(body)
            });
          }
        });
      });
    }
    Node.js 소스코드

  • GO 소스코드

    배경색 변경
    package gofunction
    
    import (
      "bytes"
      "net/http"
      "encoding/json"
      "io/ioutil"
    )
    
    type PostData struct {
      Model string `json:"model"`
      Prompt string `json:"prompt"`
      Temperature int `json:"temperature"`
      MaxTokens int `json:"max_tokens"`
      Stream bool `json:"stream"`
    }
    
    func HandleRequest(r *http.Request)(string, error) {
      url := "{AIOS LLM 프라이빗 엔드포인트}/{API}"
      data := PostData {
        Model: "openai/gpt-oss-120b",
        Prompt: "Write a haiku about recursion in programming.",
        Temperature: 0,
        MaxTokens: 100,
        Stream: false,
      }
      
      jsonData, err := json.Marshal(data)
      if err != nil {
        panic(err)
      }
    
      req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
      if err != nil {
        panic(err)
      }
    
      req.Header.Set("Content-Type", "application/json")
    
      client := &http.Client{}
      resp, err := client.Do(req)
      if err != nil {
        panic(err)
      }
      defer resp.Body.Close()
    
      // 응답 본문 읽기
      body, err := ioutil.ReadAll(resp.Body)
      if err != nil {
        panic(err)
      }
    
      return string(body), nil
    }
    package gofunction
    
    import (
      "bytes"
      "net/http"
      "encoding/json"
      "io/ioutil"
    )
    
    type PostData struct {
      Model string `json:"model"`
      Prompt string `json:"prompt"`
      Temperature int `json:"temperature"`
      MaxTokens int `json:"max_tokens"`
      Stream bool `json:"stream"`
    }
    
    func HandleRequest(r *http.Request)(string, error) {
      url := "{AIOS LLM 프라이빗 엔드포인트}/{API}"
      data := PostData {
        Model: "openai/gpt-oss-120b",
        Prompt: "Write a haiku about recursion in programming.",
        Temperature: 0,
        MaxTokens: 100,
        Stream: false,
      }
      
      jsonData, err := json.Marshal(data)
      if err != nil {
        panic(err)
      }
    
      req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
      if err != nil {
        panic(err)
      }
    
      req.Header.Set("Content-Type", "application/json")
    
      client := &http.Client{}
      resp, err := client.Do(req)
      if err != nil {
        panic(err)
      }
      defer resp.Body.Close()
    
      // 응답 본문 읽기
      body, err := ioutil.ReadAll(resp.Body)
      if err != nil {
        panic(err)
      }
    
      return string(body), nil
    }
    GO 소스코드

트리거 설정하기
Blueprint 상세 가이드