Gunakan AirOps API di aplikasi klien Anda dengan JavaScript SDK kami.
npm i @airops/airops-js
atau gunakan CDN:
< script src = “https://cdn.jsdelivr.net/npm/@airops/airops-js/dist/index.umd.min.js” > </ script >
Untuk mengautentikasi dengan API kami menggunakan SDK, Anda memerlukan tiga informasi: id ruang kerja Anda, kunci API, dan id pengguna (pengidentifikasi untuk pengguna di aplikasi Anda). Pertama, gunakan kunci API untuk melakukan hashing id pengguna Anda di server back-end Anda. Ini akan menghasilkan id pengguna hash yang unik untuk kombinasi kunci API dan id pengguna Anda. Id ruang kerja dan kunci API dapat ditemukan di pengaturan ruang kerja Anda.
const crypto = require ( 'crypto' ) ;
const userIdHash = ( ) => {
const apiKey = 'YOUR_API_KEY' ;
const userId = 'YOUR_USER_ID' ;
// Convert your api key to a buffer
const key = Buffer . from ( apiKey , 'utf-8' ) ;
// Hash the message using HMAC-SHA256 and the key
const hash = crypto . createHmac ( 'sha256' , key ) . update ( userId ) . digest ( 'hex' ) ;
return hash ;
} ;
const airopsInstance = AirOps . identify ( {
userId : 'YOUR_USER_ID' ,
workspaceId : 'YOUR_WORKSPACE_ID' ,
hashedUserId : 'YOUR_USER_ID_HASH' ,
} ) ;
Perhatikan bahwa otorisasi tidak diperlukan untuk menjalankan aplikasi publik. Jika Anda bekerja dengan inisialisasi publik tanpa argumen:
const airopsInstance = new AirOps ( ) ;
Setelah berhasil menginisialisasi SDK, Anda dapat mulai menggunakan metode yang tersedia untuk berinteraksi dengan API kami. Perhatikan bahwa metode ini akan mengembalikan janji.
SDK menyediakan metode untuk mengeksekusi aplikasi. Untuk melakukan streaming hasil aplikasi, Anda perlu mengaktifkan streaming dan meneruskan fungsi panggilan balik ke metode eksekusi. Secara opsional, Anda dapat meneruskan fungsi panggilan balik tambahan untuk mendapatkan pemberitahuan ketika aplikasi selesai.
// Execute an app
const response = await airopsInstance . apps . execute ( {
appId : 1 ,
version : 1 ,
payload : {
inputs : {
name : 'XXXXYYYYZZZZ' ,
} ,
} ,
stream : true , // Optional - Default false
streamCallback : ( data : { content : string } ) => {
// Do something with the data
} , // Optional, required if stream is true
streamCompletedCallback : ( data : { content : string } ) => {
// Do something with the data
} , // Optional
} ) ;
// Wait for result
const result = await response . result ( ) ;
// Do something with result.output
// Cancel execution
await response . cancel ( ) ;
Tanggapan
Respon dari metode eksekusi akan berisi id eksekusi yang dapat digunakan untuk mengambil hasil nanti bersama dengan dua metode untuk menunggu hasil atau membatalkan eksekusi:
interface ExecuteResponse {
executionId : number ;
result : ( ) => Promise < AppExecution > ;
cancel : ( ) => Promise < void > ;
}
interface AppExecution {
airops_app_id : number ;
id : number ;
status : string ;
output : string ;
stream_channel_id : string ;
}
Metode result mengimplementasikan logika penarikan untuk hasil dengan batas waktu 10 menit . Jika Anda ingin menerapkan logika penarikan Anda sendiri, Anda dapat menggunakan metode getResults yang dijelaskan di bawah.
Anda dapat menerapkan logika penarikan Anda sendiri menggunakan metode getResults.
const result = await airopsInstance . apps . getResults ( {
executionId : response . executionId ,
} ) ;
Untuk Aplikasi Chat, Anda dapat menggunakan metode chatStream
yang memungkinkan Anda mengirim pesan ke Aplikasi Chat.
const response = await airopsInstance . apps . chatStream ( {
appId : 2 ,
message ,
inputs : {
name : 'XXXXYYYYZZZZ' ,
} ,
streamCallback : ( { action : ChatAction , ... data ) => {
// ChatAction can either be 'agent-response', 'agent-action' or 'agent-action-error'
// data will have different values depending on the action:
// - agent-response: { token: string, stream_finished: boolean, result :string }
// - agent-action: { tool: string, tool_input: Record<string, string> }
// - agent-action-error: { tool: string, tool_error: string }
} ,
streamCompletedCallback : ( data : { result : string } ) => {
// do something with data.result
} ,
... ( sessionId && { sessionId } ) , // optionally pass sessionId to continue chat.
} ) ;
// Wait for result
const result = await response . result ( ) ;
// Do something with result.result
// Cancel execution
await response . cancel ( ) ;
// Use session id to continue chat
response . sessionId ;
Tanggapan
Respons dari metode chatStream akan berisi sessionId dan metode hasil untuk menunggu respons. Untuk melanjutkan obrolan, teruskan sessionId bersama dengan pesannya.
export interface ChatStreamResponse {
sessionId : string ;
result : Promise < { result : string } > ; // result is a promise that resolves when the execution is completed.
}
try {
await airopsInstance . apps . execute ( {
appId : 1 ,
version : 4 ,
payload : {
inputs : { name : 'XXXXYYYYZZZZ' } ,
} ,
} ) ;
} catch ( e ) {
// Do something with error.message
}
Bergabunglah dengan komunitas slack pembuat AirOps kami.