AIOS 연계하기
AIOS 연계하기
Cloud Functions와 AIOS를 연계하여 LLM을 활용할 수 있습니다.
AIOS LLM 프라이빗 엔드포인트
AIOS LLM 프라이빗 엔드포인트의 URL은 다음과 같습니다.
- Samsung Cloud Platform for Samsung: https://aios.private.kr-west1.s.samsungsdscloud.com
- Samsung Cloud Platform for Enterprize: https://aios.private.kr-west1.e.samsungsdscloud.com
참고
AIOS 서비스의 리전별 제공 여부와 제공 모델에 대한 자세한 내용은 다음을 참조하세요.
- 리전별 AIOS 서비스의 제공 여부: AIOS 서비스 - 리전별 제공 현황 참고
- AIOS 서비스 제공 LLM 모델: AIOS 서비스 - LLM 제공 모델 참고
Blueprint 소스코드 변경하기
Cloud Functions와 AIOS를 연계하려면 각 리전 내 사용하는 LLM Endpoint에 맞춰 Blueprint에 있는 URL 주소를 변경해야 합니다. Blueprint 소스코드를 변경하려면 다음 절차를 따르세요.
- 모든 서비스 > Compute > Cloud Functions 메뉴를 클릭하세요. Cloud Functions의 Service Home 페이지로 이동합니다.
- Service Home 페이지에서 Cloud Functions 메뉴를 클릭하세요. Function 목록 페이지로 이동합니다.
- Function 목록 페이지에서 URL로 호출할 자원을 클릭하세요. Function 상세 페이지로 이동합니다.
- 코드 탭을 클릭하여 이동한 후, 수정 버튼을 클릭하세요. Function 코드 수정 페이지로 이동합니다.
- 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 소스코드