1. Inisialisasi klienSebelum mengunggah file dan membuat basis pengetahuan, Anda harus menginisialisasi klien. Gunakan AccessKey dan Rahasia AccessKey yang telah dikonfigurasi untuk menyelesaikan verifikasi identitas dan mengonfigurasi endpoint. Endpoint publik: Pastikan klien Anda dapat mengakses Internet. Endpoint VPC: Jika klien Anda diterapkan di Alibaba Cloud VPC di Singapura ap-southeast-1
Setelah klien dibuat, Anda akan menerima objek Klien untuk digunakan dalam panggilan API berikutnya. |
Python
def create_client() -> bailian20231229Client:
"""
Membuat dan mengonfigurasi klien.
Mengembalikan:
bailian20231229Client: Klien yang dikonfigurasi.
"""
config = open_api_models.Config(
access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
)
# Titik akhir berikut adalah titik akhir publik untuk cloud publik. Ganti sesuai kebutuhan.
config.endpoint = 'bailian.ap-southeast-1.aliyuncs.com'
return bailian20231229Client(config)
Java
/**
* Menginisialisasi klien.
*
* @return Objek klien yang dikonfigurasi.
*/
public static com.aliyun.bailian20231229.Client createClient() throws Exception {
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
// Titik akhir berikut adalah titik akhir VPC untuk cloud publik. Ganti sesuai kebutuhan.
config.endpoint = "bailian-vpc.ap-southeast-1.aliyuncs.com";
return new com.aliyun.bailian20231229.Client(config);
}
PHP
/**
* Menginisialisasi klien.
*
* @return Bailian Objek klien yang dikonfigurasi.
*/
public static function createClient(){
$config = new Config([
"accessKeyId" => getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"),
"accessKeySecret" => getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")
]);
// Titik akhir berikut adalah titik akhir VPC untuk cloud publik. Ganti sesuai kebutuhan.
$config->endpoint = 'bailian-vpc.ap-southeast-1.aliyuncs.com';
return new Bailian($config);
}
Node.js
/**
* Membuat dan mengonfigurasi klien.
* @return Klien
* @throws Eksepsi
*/
static createClient() {
const config = new OpenApi.Config({
accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET
});
// Titik akhir berikut adalah titik akhir VPC untuk cloud publik. Ganti sesuai kebutuhan.
config.endpoint = `bailian-vpc.ap-southeast-1.aliyuncs.com`;
return new bailian20231229.default(config);
}
C#
/// <summary>
/// Menginisialisasi klien.
/// </summary>
/// <returns>Objek klien yang dikonfigurasi.</returns>
/// <exception cref="Exception">Eksepsi dilemparkan jika terjadi kesalahan selama inisialisasi.</exception>
public static AlibabaCloud.SDK.Bailian20231229.Client CreateClient()
{
var config = new AlibabaCloud.OpenApiClient.Models.Config
{
AccessKeyId = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_ID"),
AccessKeySecret = Environment.GetEnvironmentVariable("ALIBABA_CLOUD_ACCESS_KEY_SECRET"),
};
// Titik akhir berikut adalah titik akhir VPC untuk cloud publik. Ganti sesuai kebutuhan.
config.Endpoint = "bailian-vpc.ap-southeast-1.aliyuncs.com";
return new AlibabaCloud.SDK.Bailian20231229.Client(config);
}
Go
// CreateClient membuat dan mengonfigurasi klien.
//
// Mengembalikan:
// - *client.Bailian20231229Client: Klien yang dikonfigurasi.
// - error: Pesan kesalahan.
func CreateClient() (_result *bailian20231229.Client, _err error) {
config := &openapi.Config{
AccessKeyId: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")),
AccessKeySecret: tea.String(os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")),
}
// Titik akhir berikut adalah titik akhir VPC untuk cloud publik. Ganti sesuai kebutuhan.
config.Endpoint = tea.String("bailian-vpc.ap-southeast-1.aliyuncs.com")
_result = &bailian20231229.Client{}
_result, _err = bailian20231229.NewClient(config)
return _result, _err
}
|
2. Unggah file untuk basis pengetahuan |
2.1. Meminta sewa unggah fileSebelum Anda membuat basis pengetahuan, Anda harus mengunggah file ke ruang kerja yang sama untuk dijadikan sebagai sumber pengetahuan. Sebelum mengunggah file, panggil operasi ApplyFileUploadLease untuk meminta sewa unggah file. Sewa ini adalah otorisasi sementara yang memungkinkan Anda mengunggah file dalam waktu terbatas. Sewa ini berlaku selama beberapa menit. workspace_id: Untuk informasi lebih lanjut, lihat Cara mendapatkan ID ruang kerja. category_id: Dalam contoh ini, masukkan default. Alibaba Cloud Model Studio menggunakan kategori untuk mengelola file yang Anda unggah. Sistem secara otomatis membuat kategori default. Anda juga dapat memanggil operasi AddCategory untuk membuat kategori baru dan mendapatkan category_id yang sesuai. file_name: Masukkan nama file yang akan diunggah, termasuk ekstensi. Nilai tersebut harus sama dengan nama file sebenarnya. file_md5: Masukkan hash MD5 dari file yang akan diunggah. Saat ini, Alibaba Cloud tidak memverifikasi nilai ini. Ini memungkinkan Anda mengunggah file dari URL. Sebagai contoh, dalam Python, Anda bisa mendapatkan hash MD5 menggunakan modul hashlib. Untuk bahasa lainnya, lihat kode sampel lengkap. Contoh kode import hashlib
def calculate_md5(file_path):
"""
Menghitung hash MD5 dari sebuah file.
Args:
file_path (str): Jalur lokal file.
Returns:
str: Hash MD5 dari file.
"""
md5_hash = hashlib.md5()
# Baca file dalam mode biner.
with open(file_path, "rb") as f:
# Baca file dalam potongan-potongan untuk menghindari penggunaan memori tinggi untuk file besar.
for chunk in iter(lambda: f.read(4096), b""):
md5_hash.update(chunk)
return md5_hash.hexdigest()
# Contoh penggunaan
file_path = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah, misalnya, /xxx/xxx/xxx/Bailian_Phones_Specifications.docx"
md5_value = calculate_md5(file_path)
print(f"Hash MD5 dari file adalah: {md5_value}")
Ganti variabel file_path dalam kode dengan jalur lokal sebenarnya dari file, lalu jalankan kode tersebut. Anda akan memperoleh hash MD5 dari file objek. Berikut adalah contoh nilai yang dihasilkan. Hash MD5 dari file adalah: 2ef7361ea907f3a1b91e3b9936f5643a
file_size: Masukkan ukuran file yang akan diunggah dalam byte. Sebagai contoh, dalam Python, Anda bisa mendapatkan nilai ini menggunakan modul os. Untuk bahasa lainnya, lihat kode sampel lengkap. Contoh kode import os
def get_file_size(file_path: str) -> int:
"""
Mendapatkan ukuran file dalam byte.
Args:
file_path (str): Jalur lokal sebenarnya dari file.
Returns:
int: Ukuran file dalam byte.
"""
return os.path.getsize(file_path)
# Contoh penggunaan
file_path = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah, misalnya, /xxx/xxx/xxx/Bailian_Phones_Specifications.docx"
file_size = get_file_size(file_path)
print(f"Ukuran file dalam byte adalah: {file_size}")
Ganti variabel file_path dalam kode dengan jalur lokal sebenarnya dari file dan jalankan kode. Anda kemudian dapat memperoleh ukuran file objek dalam byte. Nilai berikut adalah contoh. Ukuran file dalam byte adalah: 14015
Setelah Anda berhasil meminta sewa unggah sementara, Anda akan memperoleh: Anda akan menggunakan ini pada langkah berikutnya. |
Penting Pengguna RAM harus diberikan izin API yang diperlukan (kebijakan AliyunBailianDataFullAccess) sebelum memanggil operasi ini. Operasi ini mendukung debugging online dan pembuatan kode sampel untuk berbagai bahasa.
Pythondef apply_lease(client, category_id, file_name, file_md5, file_size, workspace_id):
"""
Meminta sewa unggah file dari Alibaba Cloud Model Studio.
Args:
client (bailian20231229Client): Klien.
category_id (str): ID kategori.
file_name (str): Nama file.
file_md5 (str): Hash MD5 dari file.
file_size (int): Ukuran file dalam byte.
workspace_id (str): ID ruang kerja.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
headers = {}
request = bailian_20231229_models.ApplyFileUploadLeaseRequest(
file_name=file_name,
md_5=file_md5,
size_in_bytes=file_size,
)
runtime = util_models.RuntimeOptions()
return client.apply_file_upload_lease_with_options(category_id, workspace_id, request, headers, runtime)
Java/**
* Meminta sewa unggah file.
*
* @param client Objek klien.
* @param categoryId ID kategori.
* @param fileName Nama file.
* @param fileMd5 Hash MD5 dari file.
* @param fileSize Ukuran file dalam byte.
* @param workspaceId ID ruang kerja.
* @return Objek tanggapan dari Alibaba Cloud Model Studio.
*/
public ApplyFileUploadLeaseResponse applyLease(com.aliyun.bailian20231229.Client client, String categoryId, String fileName, String fileMd5, String fileSize, String workspaceId) throws Exception {
Map<String, String> headers = new HashMap<>();
com.aliyun.bailian20231229.models.ApplyFileUploadLeaseRequest applyFileUploadLeaseRequest = new com.aliyun.bailian20231229.models.ApplyFileUploadLeaseRequest();
applyFileUploadLeaseRequest.setFileName(fileName);
applyFileUploadLeaseRequest.setMd5(fileMd5);
applyFileUploadLeaseRequest.setSizeInBytes(fileSize);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
ApplyFileUploadLeaseResponse applyFileUploadLeaseResponse = null;
applyFileUploadLeaseResponse = client.applyFileUploadLeaseWithOptions(categoryId, workspaceId, applyFileUploadLeaseRequest, headers, runtime);
return applyFileUploadLeaseResponse;
}
PHP/**
* Meminta sewa unggah file.
*
* @param Bailian $client Klien.
* @param string $categoryId ID kategori.
* @param string $fileName Nama file.
* @param string $fileMd5 Hash MD5 dari file.
* @param int $fileSize Ukuran file dalam byte.
* @param string $workspaceId ID ruang kerja.
* @return ApplyFileUploadLeaseResponse Tanggapan dari Alibaba Cloud Model Studio.
*/
public function applyLease($client, $categoryId, $fileName, $fileMd5, $fileSize, $workspaceId) {
$headers = [];
$applyFileUploadLeaseRequest = new ApplyFileUploadLeaseRequest([
"fileName" => $fileName,
"md5" => $fileMd5,
"sizeInBytes" => $fileSize
]);
$runtime = new RuntimeOptions([]);
return $client->applyFileUploadLeaseWithOptions($categoryId, $workspaceId, $applyFileUploadLeaseRequest, $headers, $runtime);
}
Node.js/**
* Meminta sewa unggah file.
* @param {Bailian20231229Client} client - Klien.
* @param {string} categoryId - ID kategori.
* @param {string} fileName - Nama file.
* @param {string} fileMd5 - Hash MD5 dari file.
* @param {string} fileSize - Ukuran file dalam byte.
* @param {string} workspaceId - ID ruang kerja.
* @returns {Promise<bailian20231229.ApplyFileUploadLeaseResponse>} - Tanggapan dari Alibaba Cloud Model Studio.
*/
async function applyLease(client, categoryId, fileName, fileMd5, fileSize, workspaceId) {
const headers = {};
const req = new bailian20231229.ApplyFileUploadLeaseRequest({
md5: fileMd5,
fileName,
sizeInBytes: fileSize
});
const runtime = new Util.RuntimeOptions({});
return await client.applyFileUploadLeaseWithOptions(
categoryId,
workspaceId,
req,
headers,
runtime
);
}
C#/// <summary>
/// Meminta sewa unggah file.
/// </summary>
/// <param name="client">Objek klien.</param>
/// <param name="categoryId">ID kategori.</param>
/// <param name="fileName">Nama file.</param>
/// <param name="fileMd5">Hash MD5 dari file.</param>
/// <param name="fileSize">Ukuran file dalam byte.</param>
/// <param name="workspaceId">ID ruang kerja.</param>
/// <returns>Objek tanggapan dari Alibaba Cloud Model Studio.</returns>
/// <exception cref="Exception">Dilempar jika terjadi kesalahan selama pemanggilan.</exception>
public AlibabaCloud.SDK.Bailian20231229.Models.ApplyFileUploadLeaseResponse ApplyLease(
AlibabaCloud.SDK.Bailian20231229.Client client,
string categoryId,
string fileName,
string fileMd5,
string fileSize,
string workspaceId)
{
var headers = new Dictionary<string, string>() { };
var applyFileUploadLeaseRequest = new AlibabaCloud.SDK.Bailian20231229.Models.ApplyFileUploadLeaseRequest
{
FileName = fileName,
Md5 = fileMd5,
SizeInBytes = fileSize
};
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
return client.ApplyFileUploadLeaseWithOptions(categoryId, workspaceId, applyFileUploadLeaseRequest, headers, runtime);
}
Go// ApplyLease meminta sewa unggah file dari Alibaba Cloud Model Studio.
//
// Args:
// - client (bailian20231229.Client): Klien.
// - categoryId (string): ID kategori.
// - fileName (string): Nama file.
// - fileMD5 (string): Hash MD5 dari file.
// - fileSize (string): Ukuran file dalam byte.
// - workspaceId (string): ID ruang kerja.
//
// Returns:
// - *bailian20231229.ApplyFileUploadLeaseResponse: Tanggapan dari Alibaba Cloud Model Studio.
// - error: Pesan kesalahan.
func ApplyLease(client *bailian20231229.Client, categoryId, fileName, fileMD5 string, fileSize string, workspaceId string) (_result *bailian20231229.ApplyFileUploadLeaseResponse, _err error) {
headers := make(map[string]*string)
applyFileUploadLeaseRequest := &bailian20231229.ApplyFileUploadLeaseRequest{
FileName: tea.String(fileName),
Md5: tea.String(fileMD5),
SizeInBytes: tea.String(fileSize),
}
runtime := &util.RuntimeOptions{}
return client.ApplyFileUploadLeaseWithOptions(tea.String(categoryId), tea.String(workspaceId), applyFileUploadLeaseRequest, headers, runtime)
}
Contoh Permintaan {
"CategoryId": "default",
"FileName": "Bailian_Phones_Specifications.docx",
"Md5": "2ef7361ea907f3a1b91e3b9936f5643a",
"SizeInBytes": "14015",
"WorkspaceId": "llm-4u5xpd1xdjqpxxxx"
}
Contoh tanggapan {
"RequestId": "778C0B3B-59C2-5FC1-A947-36EDD1XXXXXX",
"Success": true,
"Message": "",
"Code": "success",
"Status": "200",
"Data": {
"FileUploadLeaseId": "1e6a159107384782be5e45ac4759b247.1719325231035",
"Type": "HTTP",
"Param": {
"Method": "PUT",
"Url": "https://bailian-datahub-data-origin-prod.oss-cn-hangzhou.aliyuncs.com/1005426495169178/10024405/68abd1dea7b6404d8f7d7b9f7fbd332d.1716698936847.pdf?Expires=1716699536&OSSAccessKeyId=TestID&Signature=HfwPUZo4pR6DatSDym0zFKVh9Wg%3D",
"Headers": " \"X-bailian-extra\": \"MTAwNTQyNjQ5NTE2OTE3OA==\",\n \"Content-Type\": \"application/pdf\""
}
}
}
|
2.2. Unggah file ke penyimpanan sementaraSetelah Anda mendapatkan sewa unggah, gunakan parameter unggah sementara dan URL dari sewa untuk mengunggah file ke server Model Studio. Anda dapat mengunggah file dari penyimpanan lokal atau URL publik. Setiap ruang kerja mendukung hingga 10.000 file. Format file yang didukung adalah PDF, DOCX, DOC, TXT, Markdown, PPTX, PPT, XLSX, XLS, HTML, PNG, JPG, JPEG, BMP, dan GIF. |
Penting Operasi ini tidak mendukung debugging online atau pembuatan kode sampel. Unggah dari penyimpanan lokalPythonimport requests
from urllib.parse import urlparse
def upload_file(pre_signed_url, file_path):
"""
Unggah file lokal ke penyimpanan sementara.
Args:
pre_signed_url (str): URL dari sewa unggah.
file_path (str): Jalur lokal file.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
try:
# Atur header permintaan.
headers = {
"X-bailian-extra": "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type": "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong."
}
# Baca file dan unggah.
with open(file_path, 'rb') as file:
# Metode permintaan untuk pengunggahan file harus sama dengan nilai bidang Data.Param.Method yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
response = requests.put(pre_signed_url, data=file, headers=headers)
# Periksa kode status tanggapan.
if response.status_code == 200:
print("File berhasil diunggah.")
else:
print(f"Gagal mengunggah file. ResponseCode: {response.status_code}")
except Exception as e:
print(f"Terjadi kesalahan: {str(e)}")
if __name__ == "__main__":
pre_signed_url_or_http_url = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya."
# Unggah file lokal ke penyimpanan sementara.
file_path = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah (misalnya, di Linux: /xxx/xxx/Bailian_Phones_Specifications.docx)."
upload_file(pre_signed_url_or_http_url, file_path)
Javaimport java.io.DataOutputStream;
import java.io.FileInputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class UploadFile {
public static void uploadFile(String preSignedUrl, String filePath) {
HttpURLConnection connection = null;
try {
// Buat objek URL.
URL url = new URL(preSignedUrl);
connection = (HttpURLConnection) url.openConnection();
// Metode permintaan untuk pengunggahan file harus sama dengan nilai bidang Data.Param.Method yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
connection.setRequestMethod("PUT");
// Izinkan output ke koneksi karena koneksi ini digunakan untuk mengunggah file.
connection.setDoOutput(true);
connection.setRequestProperty("X-bailian-extra", "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.");
connection.setRequestProperty("Content-Type", "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong.");
// Baca file dan unggah melalui koneksi.
try (DataOutputStream outStream = new DataOutputStream(connection.getOutputStream());
FileInputStream fileInputStream = new FileInputStream(filePath)) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
outStream.flush();
}
// Periksa tanggapan.
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// File berhasil diunggah.
System.out.println("File berhasil diunggah.");
} else {
// File gagal diunggah.
System.out.println("Gagal mengunggah file. ResponseCode: " + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
public static void main(String[] args) {
String preSignedUrlOrHttpUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
// Unggah file lokal ke penyimpanan sementara.
String filePath = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah (misalnya, di Linux: /xxx/xxx/Bailian_Phones_Specifications.docx).";
uploadFile(preSignedUrlOrHttpUrl, filePath);
}
}
PHP<?php
/**
* Unggah file lokal ke penyimpanan sementara.
*
* @param string $preSignedUrl URL yang telah ditandatangani sebelumnya atau alamat HTTP yang diperoleh dari operasi ApplyFileUploadLease.
* @param array $headers Array header permintaan yang berisi "X-bailian-extra" dan "Content-Type".
* @param string $filePath Jalur file lokal.
* @throws Exception Jika pengunggahan gagal.
*/
function uploadFile($preSignedUrl, $headers, $filePath) {
// Baca konten file.
$fileContent = file_get_contents($filePath);
if ($fileContent === false) {
throw new Exception("Tidak dapat membaca file: " . $filePath);
}
// Inisialisasi sesi cURL.
$ch = curl_init();
// Atur opsi cURL.
curl_setopt($ch, CURLOPT_URL, $preSignedUrl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Gunakan metode PUT.
curl_setopt($ch, CURLOPT_POSTFIELDS, $fileContent); // Setel badan permintaan ke konten file.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Kembalikan tanggapan daripada menampilkannya langsung.
// Bangun header permintaan.
$uploadHeaders = [
"X-bailian-extra: " . $headers["X-bailian-extra"],
"Content-Type: " . $headers["Content-Type"]
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $uploadHeaders);
// Eksekusi permintaan.
$response = curl_exec($ch);
// Dapatkan kode status HTTP.
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Tutup sesi cURL.
curl_close($ch);
// Periksa kode status.
if ($httpCode != 200) {
throw new Exception("Pengunggahan gagal. Kode status HTTP: " . $httpCode . ". Pesan kesalahan: " . $response);
}
// Pengunggahan berhasil.
echo "File berhasil diunggah.\n";
}
/**
* Fungsi utama: Unggah file lokal.
*/
function main() {
// Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
$preSignedUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
// Ganti ini dengan nilai X-bailian-extra dan Content-Type dalam Data.Param.Headers yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
$headers = [
"X-bailian-extra" => "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type" => "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong."
];
// Unggah file lokal ke penyimpanan sementara.
$filePath = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah (misalnya, di Linux: /xxx/xxx/Bailian_Phones_Specifications.docx).";
try {
uploadFile($preSignedUrl, $headers, $filePath);
} catch (Exception $e) {
echo "Kesalahan: " . $e->getMessage() . "\n";
}
}
// Panggil fungsi utama.
main();
?>
Node.jsconst fs = require('fs');
const axios = require('axios');
/**
* Unggah file lokal ke penyimpanan sementara.
*
* @param {string} preSignedUrl - URL dari sewa unggah.
* @param {Object} headers - Header untuk permintaan unggah.
* @param {string} filePath - Jalur lokal file.
* @throws {Error} Jika pengunggahan gagal.
*/
async function uploadFile(preSignedUrl, headers, filePath) {
// Bangun header permintaan yang diperlukan untuk pengunggahan.
const uploadHeaders = {
"X-bailian-extra": headers["X-bailian-extra"],
"Content-Type": headers["Content-Type"]
};
// Buat aliran baca file.
const fileStream = fs.createReadStream(filePath);
try {
// Gunakan axios untuk mengirim permintaan PUT.
const response = await axios.put(preSignedUrl, fileStream, {
headers: uploadHeaders
});
// Periksa kode status tanggapan.
if (response.status === 200) {
console.log("File berhasil diunggah.");
} else {
console.error(`Gagal mengunggah file. ResponseCode: ${response.status}`);
throw new Error(`Pengunggahan gagal dengan kode status: ${response.status}`);
}
} catch (error) {
// Tangani kesalahan.
console.error("Kesalahan selama pengunggahan:", error.message);
throw new Error(`Pengunggahan gagal: ${error.message}`);
}
}
/**
* Fungsi utama: Unggah file lokal.
*/
function main() {
const preSignedUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
const headers = {
"X-bailian-extra": "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type": "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong."
};
// Unggah file lokal ke penyimpanan sementara.
const filePath = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah (misalnya, di Linux: /xxx/xxx/Bailian_Phones_Specifications.docx).";
uploadFile(preSignedUrl, headers, filePath)
.then(() => {
console.log("Pengunggahan selesai.");
})
.catch((err) => {
console.error("Pengunggahan gagal:", err.message);
});
}
// Panggil fungsi utama.
main();
C#using System;
using System.IO;
using System.Net;
public class UploadFilExample
{
public static void UploadFile(string preSignedUrl, string filePath)
{
HttpWebRequest connection = null;
try
{
// Buat objek URL.
Uri url = new Uri(preSignedUrl);
connection = (HttpWebRequest)WebRequest.Create(url);
// Metode permintaan untuk pengunggahan file harus sama dengan nilai bidang Data.Param.Method yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
connection.Method = "PUT";
// Izinkan output ke koneksi karena koneksi ini digunakan untuk mengunggah file.
connection.AllowWriteStreamBuffering = false;
connection.SendChunked = false;
// Setel header permintaan agar sama dengan nilai bidang dalam Data.Param.Headers yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
connection.Headers["X-bailian-extra"] = "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
connection.ContentType = "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong.";
// Baca file dan unggah melalui koneksi.
using (var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
using (var requestStream = connection.GetRequestStream())
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
{
requestStream.Write(buffer, 0, bytesRead);
}
requestStream.Flush();
}
// Periksa tanggapan.
using (HttpWebResponse response = (HttpWebResponse)connection.GetResponse())
{
if (response.StatusCode == HttpStatusCode.OK)
{
// File berhasil diunggah.
Console.WriteLine("File berhasil diunggah.");
}
else
{
// File gagal diunggah.
Console.WriteLine($"Gagal mengunggah file. ResponseCode: {response.StatusCode}");
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
e.StackTrace.ToString();
}
finally
{
if (connection != null)
{
connection.Abort();
}
}
}
public static void Main(string[] args)
{
string preSignedUrlOrHttpUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
// Unggah file lokal ke penyimpanan sementara.
string filePath = "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah (misalnya, di Linux: /xxx/xxx/Bailian_Phones_Specifications.docx).";
UploadFile(preSignedUrlOrHttpUrl, filePath);
}
}
Gopackage main
import (
"fmt"
"io"
"os"
"github.com/go-resty/resty/v2"
)
// UploadFile mengunggah file lokal ke penyimpanan sementara.
//
// Args:
// - preSignedUrl (string): URL dari sewa unggah.
// - headers (map[string]string): Header untuk permintaan unggah.
// - filePath (string): Jalur lokal file.
//
// Returns:
// - error: Pesan kesalahan jika pengunggahan gagal, jika tidak nil.
func UploadFile(preSignedUrl string, headers map[string]string, filePath string) error {
// Buka file lokal.
file, err := os.Open(filePath)
if err != nil {
return fmt.Errorf("gagal membuka file: %w", err)
}
defer file.Close()
// Baca konten.
body, err := io.ReadAll(file)
if err != nil {
return fmt.Errorf("gagal membaca file: %w", err)
}
// Buat klien REST.
client := resty.New()
// Bangun header permintaan yang diperlukan untuk pengunggahan.
uploadHeaders := map[string]string{
"X-bailian-extra": headers["X-bailian-extra"],
"Content-Type": headers["Content-Type"],
}
// Kirim permintaan PUT.
resp, err := client.R().
SetHeaders(uploadHeaders).
SetBody(body).
Put(preSignedUrl)
if err != nil {
return fmt.Errorf("gagal mengirim permintaan: %w", err)
}
// Periksa kode status tanggapan HTTP.
if resp.IsError() {
return fmt.Errorf("kesalahan HTTP: %d", resp.StatusCode())
}
fmt.Println("File berhasil diunggah.")
return nil
}
// fungsi utama
func main() {
// Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
preSignedUrl := "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya."
// Ganti ini dengan nilai X-bailian-extra dan Content-Type dalam Data.Param.Headers yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
headers := map[string]string{
"X-bailian-extra": "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type": "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong.",
}
// Unggah file lokal ke penyimpanan sementara.
filePath := "Ganti ini dengan jalur lokal sebenarnya dari file yang akan diunggah (misalnya, di Linux: /xxx/xxx/Bailian_Phones_Specifications.docx)."
// Panggil fungsi unggah.
err := UploadFile(preSignedUrl, headers, filePath)
if err != nil {
fmt.Printf("Pengunggahan gagal: %v\n", err)
}
}
Unggah dari URLPastikan URL dapat diakses secara publik dan menunjuk ke file yang valid. Pythonimport requests
from urllib.parse import urlparse
def upload_file_link(pre_signed_url, source_url_string):
"""
Mengunggah file dari URL publik ke penyimpanan sementara.
Args:
pre_signed_url (str): URL dari lease unggah.
source_url_string (str): URL file.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
try:
# Atur header permintaan.
headers = {
"X-bailian-extra": "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type": "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, teruskan nilai kosong."
}
# Atur metode permintaan ke GET untuk mengakses URL file.
source_response = requests.get(source_url_string)
if source_response.status_code != 200:
raise RuntimeError("Gagal mendapatkan file sumber.")
# Metode permintaan untuk pengunggahan file harus sama dengan nilai bidang Data.Param.Method yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
response = requests.put(pre_signed_url, data=source_response.content, headers=headers)
# Periksa kode status tanggapan.
if response.status_code == 200:
print("File berhasil diunggah.")
else:
print(f"Gagal mengunggah file. ResponseCode: {response.status_code}")
except Exception as e:
print(f"Terjadi kesalahan: {str(e)}")
if __name__ == "__main__":
pre_signed_url_or_http_url = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, teruskan nilai kosong."
# URL file.
source_url = "Ganti ini dengan URL file yang akan diunggah."
upload_file_link(pre_signed_url_or_http_url, source_url)
Javaimport java.io.BufferedInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class UploadFile {
public static void uploadFileLink(String preSignedUrl, String sourceUrlString) {
HttpURLConnection connection = null;
try {
// Buat objek URL.
URL url = new URL(preSignedUrl);
connection = (HttpURLConnection) url.openConnection();
// Metode permintaan untuk pengunggahan file harus sama dengan nilai bidang Data.Param.Method yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
connection.setRequestMethod("PUT");
// Izinkan output ke koneksi karena koneksi ini digunakan untuk mengunggah file.
connection.setDoOutput(true);
connection.setRequestProperty("X-bailian-extra", "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.");
connection.setRequestProperty("Content-Type", "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong.");
URL sourceUrl = new URL(sourceUrlString);
HttpURLConnection sourceConnection = (HttpURLConnection) sourceUrl.openConnection();
// Atur metode permintaan ke GET untuk mengakses URL file.
sourceConnection.setRequestMethod("GET");
// Dapatkan kode respons. 200 menunjukkan bahwa permintaan berhasil.
int sourceFileResponseCode = sourceConnection.getResponseCode();
// Baca file dari URL dan unggah melalui koneksi.
if (sourceFileResponseCode != HttpURLConnection.HTTP_OK) {
throw new RuntimeException("Gagal mendapatkan file sumber.");
}
try (DataOutputStream outStream = new DataOutputStream(connection.getOutputStream());
InputStream in = new BufferedInputStream(sourceConnection.getInputStream())) {
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
outStream.write(buffer, 0, bytesRead);
}
outStream.flush();
}
// Periksa tanggapan.
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
// File berhasil diunggah.
System.out.println("File berhasil diunggah.");
} else {
// File gagal diunggah.
System.out.println("Gagal mengunggah file. ResponseCode: " + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
public static void main(String[] args) {
String preSignedUrlOrHttpUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
String sourceUrl = "Ganti ini dengan URL file yang akan diunggah.";
uploadFileLink(preSignedUrlOrHttpUrl, sourceUrl);
}
}
PHP<?php
/**
* Unggah file dari URL publik ke penyimpanan sementara.
*
* @param string $preSignedUrl URL yang telah ditandatangani sebelumnya atau alamat HTTP yang diperoleh dari operasi ApplyFileUploadLease.
* @param array $headers Array header permintaan yang berisi "X-bailian-extra" dan "Content-Type".
* @param string $sourceUrl URL file.
* @throws Exception Jika pengunggahan gagal.
*/
function uploadFile($preSignedUrl, $headers, $sourceUrl) {
$fileContent = file_get_contents($sourceUrl);
if ($fileContent === false) {
throw new Exception("Tidak dapat mengunduh file dari URL yang diberikan: " . $sourceUrl);
}
// Inisialisasi sesi cURL.
$ch = curl_init();
// Atur opsi cURL.
curl_setopt($ch, CURLOPT_URL, $preSignedUrl);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); // Gunakan metode PUT.
curl_setopt($ch, CURLOPT_POSTFIELDS, $fileContent); // Setel badan permintaan ke konten file.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Kembalikan tanggapan daripada menampilkannya langsung.
// Bangun header permintaan.
$uploadHeaders = [
"X-bailian-extra: " . $headers["X-bailian-extra"],
"Content-Type: " . $headers["Content-Type"]
];
curl_setopt($ch, CURLOPT_HTTPHEADER, $uploadHeaders);
// Eksekusi permintaan.
$response = curl_exec($ch);
// Dapatkan kode status HTTP.
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Tutup sesi cURL.
curl_close($ch);
// Periksa kode status.
if ($httpCode != 200) {
throw new Exception("Pengunggahan gagal. Kode status HTTP: " . $httpCode . ". Pesan kesalahan: " . $response);
}
// Pengunggahan berhasil.
echo "File berhasil diunggah.\n";
}
/**
* Fungsi utama: Unggah file dari URL publik ke penyimpanan sementara.
*/
function main() {
// Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
$preSignedUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
// Ganti ini dengan nilai X-bailian-extra dan Content-Type dalam Data.Param.Headers yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
$headers = [
"X-bailian-extra" => "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type" => "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong."
];
$sourceUrl = "Ganti ini dengan URL file yang akan diunggah.";
try {
uploadFile($preSignedUrl, $headers, $sourceUrl);
} catch (Exception $e) {
echo "Kesalahan: " . $e->getMessage() . "\n";
}
}
// Panggil fungsi utama.
main();
?>
Node.jsconst axios = require('axios');
/**
* Unggah file dari URL publik ke penyimpanan sementara.
*
* @param {string} preSignedUrl - URL dari sewa unggah.
* @param {Object} headers - Header untuk permintaan unggah.
* @param {string} sourceUrl - URL file.
* @throws {Error} Jika pengunggahan gagal.
*/
async function uploadFileFromUrl(preSignedUrl, headers, sourceUrl) {
// Bangun header permintaan yang diperlukan untuk pengunggahan.
const uploadHeaders = {
"X-bailian-extra": headers["X-bailian-extra"],
"Content-Type": headers["Content-Type"]
};
try {
// Unduh file dari URL yang diberikan.
const response = await axios.get(sourceUrl, {
responseType: 'stream'
});
// Gunakan axios untuk mengirim permintaan PUT.
const uploadResponse = await axios.put(preSignedUrl, response.data, {
headers: uploadHeaders
});
// Periksa kode status tanggapan.
if (uploadResponse.status === 200) {
console.log("File berhasil diunggah dari URL.");
} else {
console.error(`Gagal mengunggah file. ResponseCode: ${uploadResponse.status}`);
throw new Error(`Pengunggahan gagal dengan kode status: ${uploadResponse.status}`);
}
} catch (error) {
// Tangani kesalahan.
console.error("Kesalahan selama pengunggahan:", error.message);
throw new Error(`Pengunggahan gagal: ${error.message}`);
}
}
/**
* Fungsi utama: Unggah file yang dapat diunduh secara publik ke penyimpanan sementara.
*/
function main() {
const preSignedUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
const headers = {
"X-bailian-extra": "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type": "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong."
};
const sourceUrl = "Ganti ini dengan URL file yang akan diunggah.";
uploadFileFromUrl(preSignedUrl, headers, sourceUrl)
.then(() => {
console.log("Pengunggahan selesai.");
})
.catch((err) => {
console.error("Pengunggahan gagal:", err.message);
});
}
// Panggil fungsi utama.
main();
C#using System;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
public class UploadFileExample
{
public static async Task UploadFileFromUrl(string preSignedUrl, string url)
{
try
{
// Buat klien HTTP untuk mengunduh file dari URL yang diberikan.
using (HttpClient httpClient = new HttpClient())
{
HttpResponseMessage response = await httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
// Dapatkan aliran file.
using (Stream fileStream = await response.Content.ReadAsStreamAsync())
{
// Buat objek URL.
Uri urlObj = new Uri(preSignedUrl);
HttpWebRequest connection = (HttpWebRequest)WebRequest.Create(urlObj);
// Atur metode permintaan untuk pengunggahan file.
connection.Method = "PUT";
connection.AllowWriteStreamBuffering = false;
connection.SendChunked = false;
// Atur header permintaan. Ganti dengan nilai sebenarnya.
connection.Headers["X-bailian-extra"] = "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
connection.ContentType = "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, berikan nilai kosong.";
// Dapatkan aliran permintaan dan tulis aliran file ke dalamnya.
using (Stream requestStream = connection.GetRequestStream())
{
byte[] buffer = new byte[4096];
int bytesRead;
while ((bytesRead = await fileStream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
await requestStream.WriteAsync(buffer, 0, bytesRead);
}
await requestStream.FlushAsync();
}
// Periksa tanggapan.
using (HttpWebResponse responseResult = (HttpWebResponse)connection.GetResponse())
{
if (responseResult.StatusCode == HttpStatusCode.OK)
{
Console.WriteLine("File berhasil diunggah dari URL.");
}
else
{
Console.WriteLine($"Gagal mengunggah file. ResponseCode: {responseResult.StatusCode}");
}
}
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Console.WriteLine(e.StackTrace);
}
}
public static async Task Main(string[] args)
{
string preSignedUrlOrHttpUrl = "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.";
string url = "Ganti ini dengan URL file yang akan diunggah.";
await UploadFileFromUrl(preSignedUrlOrHttpUrl, url);
}
}
Gopackage main
import (
"fmt"
"net/http"
"github.com/go-resty/resty/v2"
)
// UploadFileFromUrl mengunggah file dari URL publik ke penyimpanan sementara.
//
// Arg:
// - preSignedUrl (string): URL dari sewa unggah.
// - headers (map[string]string): Header untuk permintaan unggah.
// - sourceUrl (string): URL file.
//
// Mengembalikan:
// - error: Pesan kesalahan jika unggahan gagal, jika tidak, nil.
func UploadFileFromUrl(preSignedUrl string, headers map[string]string, sourceUrl string) error {
// Unduh file dari URL yang diberikan.
resp, err := http.Get(sourceUrl)
if err != nil {
return fmt.Errorf("failed to get file: %w", err)
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusOK {
return fmt.Errorf("failed to get file, status code: %d", resp.StatusCode)
}
// Buat klien REST.
client := resty.New()
// Buat header permintaan yang diperlukan untuk unggahan.
uploadHeaders := map[string]string{
"X-bailian-extra": headers["X-bailian-extra"],
"Content-Type": headers["Content-Type"],
}
// Kirim permintaan PUT.
response, err := client.R().
SetHeaders(uploadHeaders).
SetBody(resp.Body).
Put(preSignedUrl)
if err != nil {
return fmt.Errorf("failed to send request: %w", err)
}
if err != nil {
return fmt.Errorf("failed to send request: %w", err)
}
// Periksa kode status tanggapan HTTP.
if response.IsError() {
return fmt.Errorf("HTTP error: %d", response.StatusCode())
}
fmt.Println("File berhasil diunggah dari URL.")
return nil
}
// fungsi main
func main() {
// Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
preSignedUrl := "Ganti ini dengan nilai bidang Data.Param.Url yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya."
// Ganti ini dengan nilai X-bailian-extra dan Content-Type di Data.Param.Headers yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.
headers := map[string]string{
"X-bailian-extra": "Ganti ini dengan nilai bidang Data.Param.Headers.X-bailian-extra yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya.",
"Content-Type": "Ganti ini dengan nilai bidang Data.Param.Headers.Content-Type yang dikembalikan oleh operasi ApplyFileUploadLease pada langkah sebelumnya. Jika nilai kosong dikembalikan, teruskan nilai kosong.",
}
sourceUrl := "Ganti ini dengan URL file yang akan diunggah."
// Panggil fungsi unggah.
err := UploadFileFromUrl(preSignedUrl, headers, sourceUrl)
if err != nil {
fmt.Printf("Unggahan gagal: %v\n", err)
}
}
|
2.3. Tambahkan file ke kategoriAlibaba Cloud Model Studio menggunakan kategori untuk mengelola file yang Anda unggah. Oleh karena itu, Anda harus memanggil operasi AddFile untuk menambahkan file yang diunggah ke kategori dalam ruang kerja yang sama. parser: Masukkan DASHSCOPE_DOCMIND. lease_id: Masukkan Data.FileUploadLeaseId yang dikembalikan oleh permintaan untuk sewa unggah file. category_id: Dalam contoh ini, masukkan default. Jika Anda mengunggah file ke kategori kustom, masukkan category_id yang sesuai.
Setelah file ditambahkan, Model Studio mengembalikan FileId untuk file tersebut dan secara otomatis mulai mengurai file tersebut. lease_id menjadi tidak valid. Jangan gunakan ID sewa yang sama untuk mengirimkan permintaan lagi. |
Penting Pengguna RAM harus diberikan izin API yang diperlukan (kebijakan AliyunBailianDataFullAccess) sebelum memanggil operasi ini. Operasi ini mendukung debugging online dan pembuatan contoh kode untuk berbagai bahasa.
Pythondef add_file(client: bailian20231229Client, lease_id: str, parser: str, category_id: str, workspace_id: str):
"""
Menambahkan file ke kategori tertentu di Alibaba Cloud Model Studio.
Args:
client (bailian20231229Client): Klien.
lease_id (str): ID sewa.
parser (str): Parser untuk file.
category_id (str): ID kategori.
workspace_id (str): ID ruang kerja.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
headers = {}
request = bailian_20231229_models.AddFileRequest(
lease_id=lease_id,
parser=parser,
category_id=category_id,
)
runtime = util_models.RuntimeOptions()
return client.add_file_with_options(workspace_id, request, headers, runtime)
Java/**
* Menambahkan file ke kategori.
*
* @param client Objek klien.
* @param leaseId ID sewa.
* @param parser Parser untuk file.
* @param categoryId ID kategori.
* @param workspaceId ID ruang kerja.
* @return Objek tanggapan dari Alibaba Cloud Model Studio.
*/
public AddFileResponse addFile(com.aliyun.bailian20231229.Client client, String leaseId, String parser, String categoryId, String workspaceId) throws Exception {
Map<String, String> headers = new HashMap<>();
com.aliyun.bailian20231229.models.AddFileRequest addFileRequest = new com.aliyun.bailian20231229.models.AddFileRequest();
addFileRequest.setLeaseId(leaseId);
addFileRequest.setParser(parser);
addFileRequest.setCategoryId(categoryId);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
return client.addFileWithOptions(workspaceId, addFileRequest, headers, runtime);
}
PHP/**
* Menambahkan file ke kategori.
*
* @param Bailian $client Klien.
* @param string $leaseId ID sewa.
* @param string $parser Parser untuk file.
* @param string $categoryId ID kategori.
* @param string $workspaceId ID ruang kerja.
* @return AddFileResponse Tanggapan dari Alibaba Cloud Model Studio.
*/
public function addFile($client, $leaseId, $parser, $categoryId, $workspaceId) {
$headers = [];
$addFileRequest = new AddFileRequest([
"leaseId" => $leaseId,
"parser" => $parser,
"categoryId" => $categoryId
]);
$runtime = new RuntimeOptions([]);
return $client->addFileWithOptions($workspaceId, $addFileRequest, $headers, $runtime);
}
Node.js/**
* Menambahkan file ke kategori.
* @param {Bailian20231229Client} client - Klien.
* @param {string} leaseId - ID sewa.
* @param {string} parser - Parser untuk file.
* @param {string} categoryId - ID kategori.
* @param {string} workspaceId - ID ruang kerja.
* @returns {Promise<bailian20231229.AddFileResponse>} - Tanggapan dari Alibaba Cloud Model Studio.
*/
async function addFile(client, leaseId, parser, categoryId, workspaceId) {
const headers = {};
const req = new bailian20231229.AddFileRequest({
leaseId,
parser,
categoryId
});
const runtime = new Util.RuntimeOptions({});
return await client.addFileWithOptions(workspaceId, req, headers, runtime);
}
C#/// <summary>
/// Menambahkan file ke kategori.
/// </summary>
/// <param name="client">Objek klien.</param>
/// <param name="leaseId">ID sewa.</param>
/// <param name="parser">Parser untuk file.</param>
/// <param name="categoryId">ID kategori.</param>
/// <param name="workspaceId">ID ruang kerja.</param>
/// <returns>Objek tanggapan dari Alibaba Cloud Model Studio.</returns>
/// <exception cref="Exception">Pengecualian dilempar jika terjadi kesalahan selama pemanggilan.</exception>
public AlibabaCloud.SDK.Bailian20231229.Models.AddFileResponse AddFile(
AlibabaCloud.SDK.Bailian20231229.Client client,
string leaseId,
string parser,
string categoryId,
string workspaceId)
{
var headers = new Dictionary<string, string>() { };
var addFileRequest = new AlibabaCloud.SDK.Bailian20231229.Models.AddFileRequest
{
LeaseId = leaseId,
Parser = parser,
CategoryId = categoryId
};
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
return client.AddFileWithOptions(workspaceId, addFileRequest, headers, runtime);
}
Go// AddFile menambahkan file ke kategori tertentu di Alibaba Cloud Model Studio.
//
// Args:
// - client (bailian20231229.Client): Klien.
// - leaseId (string): ID sewa.
// - parser (string): Parser untuk file.
// - categoryId (string): ID kategori.
// - workspaceId (string): ID ruang kerja.
//
// Returns:
// - *bailian20231229.AddFileResponse: Tanggapan dari Alibaba Cloud Model Studio.
// - error: Pesan kesalahan.
func AddFile(client *bailian20231229.Client, leaseId, parser, categoryId, workspaceId string) (_result *bailian20231229.AddFileResponse, _err error) {
headers := make(map[string]*string)
addFileRequest := &bailian20231229.AddFileRequest{
LeaseId: tea.String(leaseId),
Parser: tea.String(parser),
CategoryId: tea.String(categoryId),
}
runtime := &util.RuntimeOptions{}
return client.AddFileWithOptions(tea.String(workspaceId), addFileRequest, headers, runtime)
}
Contoh permintaan {
"CategoryId": "default",
"LeaseId": "d92bd94fa9b54326a2547415e100c9e2.1742195250069",
"Parser": "DASHSCOPE_DOCMIND",
"WorkspaceId": "llm-4u5xpd1xdjqpxxxx"
}
Contoh tanggapan {
"Status": "200",
"Message": "",
"RequestId": "5832A1F4-AF91-5242-8B75-35BDC9XXXXXX",
"Data": {
"FileId": "file_0b21e0a852cd40cd9741c54fefbb61cd_10xxxxxx",
"Parser": "DASHSCOPE_DOCMIND"
},
"Code": "Success",
"Success": "true"
}
|
2.4. Memeriksa status penguraian fileFile yang belum diuraikan tidak dapat digunakan dalam Basis Pengetahuan. Selama jam sibuk, proses ini bisa memakan waktu beberapa jam. Anda dapat memanggil operasi DescribeFile untuk memeriksa status penguraian sebuah file. Ketika bidang Data.Status dalam tanggapan adalah PARSE_SUCCESS, file tersebut telah berhasil diuraikan dan dapat diimpor ke dalam Basis Pengetahuan. |
Penting Pengguna RAM harus diberikan izin API yang diperlukan (kebijakan AliyunBailianDataFullAccess atau AliyunBailianDataReadOnlyAccess) sebelum memanggil operasi ini. Operasi ini mendukung debugging online dan pembuatan contoh kode untuk berbagai bahasa.
Pythondef describe_file(client, workspace_id, file_id):
"""
Dapatkan informasi dasar tentang sebuah file.
Args:
client (bailian20231229Client): Klien.
workspace_id (str): ID ruang kerja.
file_id (str): ID file.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
headers = {}
runtime = util_models.RuntimeOptions()
return client.describe_file_with_options(workspace_id, file_id, headers, runtime)
Java/**
* Periksa informasi dasar tentang sebuah file.
*
* @param client Objek klien.
* @param workspaceId ID ruang kerja.
* @param fileId ID file.
* @return Objek tanggapan dari Alibaba Cloud Model Studio.
*/
public DescribeFileResponse describeFile(com.aliyun.bailian20231229.Client client, String workspaceId, String fileId) throws Exception {
Map<String, String> headers = new HashMap<>();
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
return client.describeFileWithOptions(workspaceId, fileId, headers, runtime);
}
PHP/**
* Periksa informasi dasar tentang sebuah file.
*
* @param Bailian $client Klien.
* @param string $workspaceId ID ruang kerja.
* @param string $fileId ID file.
* @return DescribeFileResponse Tanggapan dari Alibaba Cloud Model Studio.
*/
public function describeFile($client, $workspaceId, $fileId) {
$headers = [];
$runtime = new RuntimeOptions([]);
return $client->describeFileWithOptions($workspaceId, $fileId, $headers, $runtime);
}
Node.js/**
* Periksa status penguraian sebuah file.
* @param {Bailian20231229Client} client - Klien.
* @param {string} workspaceId - ID ruang kerja.
* @param {string} fileId - ID file.
* @returns {Promise<bailian20231229.DescribeFileResponse>} - Tanggapan dari Alibaba Cloud Model Studio.
*/
async function describeFile(client, workspaceId, fileId) {
const headers = {};
const runtime = new Util.RuntimeOptions({});
return await client.describeFileWithOptions(workspaceId, fileId, headers, runtime);
}
C#/// <summary>
/// Periksa informasi dasar tentang sebuah file.
/// </summary>
/// <param name="client">Objek klien.</param>
/// <param name="workspaceId">ID ruang kerja.</param>
/// <param name="fileId">ID file.</param>
/// <returns>Objek tanggapan dari Alibaba Cloud Model Studio.</returns>
/// <exception cref="Exception">Pengecualian dilemparkan jika terjadi kesalahan selama pemanggilan.</exception>
public AlibabaCloud.SDK.Bailian20231229.Models.DescribeFileResponse DescribeFile(
AlibabaCloud.SDK.Bailian20231229.Client client,
string workspaceId,
string fileId)
{
var headers = new Dictionary<string, string>() { };
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
return client.DescribeFileWithOptions(workspaceId, fileId, headers, runtime);
}
Go// DescribeFile mendapatkan informasi dasar tentang sebuah file.
//
// Args:
// - client (bailian20231229.Client): Klien.
// - workspaceId (string): ID ruang kerja.
// - fileId (string): ID file.
//
// Returns:
// - any: Tanggapan dari Alibaba Cloud Model Studio.
// - error: Pesan kesalahan.
func DescribeFile(client *bailian20231229.Client, workspaceId, fileId string) (_result *bailian20231229.DescribeFileResponse, _err error) {
headers := make(map[string]*string)
runtime := &util.RuntimeOptions{}
return client.DescribeFileWithOptions(tea.String(workspaceId), tea.String(fileId), headers, runtime)
}
Contoh permintaan {
"FileId": "file_0b21e0a852cd40cd9741c54fefbb61cd_10xxxxxx",
"WorkspaceId": "llm-4u5xpd1xdjqpxxxx"
}
Contoh tanggapan {
"Status": "200",
"Message": "",
"RequestId": "B9246251-987A-5628-8E1E-17BB39XXXXXX",
"Data": {
"CategoryId": "cate_206ea350f0014ea4a324adff1ca13011_10xxxxxx",
"Status": "PARSE_SUCCESS",
"FileType": "docx",
"CreateTime": "2025-03-17 15:47:13",
"FileName": "Bailian_Phones_Specifications.docx",
"FileId": "file_0b21e0a852cd40cd9741c54fefbb61cd_10xxxxxx",
"SizeInBytes": "14015",
"Parser": "DASHSCOPE_DOCMIND"
},
"Code": "Success",
"Success": "true"
}
|
3. Membuat basis pengetahuan |
3.1. Inisialisasi basis pengetahuanSetelah file diurai, Anda dapat mengimpornya ke basis pengetahuan di ruang kerja yang sama. Untuk menginisialisasi basis pengetahuan pencarian dokumen, panggil operasi CreateIndex. Ini tidak menyelesaikan pengiriman. workspace_id: Untuk informasi lebih lanjut, lihat Cara mendapatkan ID ruang kerja. file_id: Masukkan FileId yang dikembalikan saat Anda menambahkan file ke kategori. Jika `source_type` diatur ke DATA_CENTER_FILE, parameter ini diperlukan. Jika tidak, akan dilaporkan kesalahan. structure_type: Dalam contoh ini, masukkan unstructured. Anda tidak dapat membuat basis pengetahuan kueri data atau pasangan Q&A gambar menggunakan API. Anda harus menggunakan Konsol Model Studio untuk membuatnya. source_type: Dalam contoh ini, masukkan DATA_CENTER_FILE. sink_type: Dalam contoh ini, masukkan BUILT_IN.
Nilai dari bidang Data.Id dalam tanggapan adalah ID basis pengetahuan. ID ini digunakan untuk pembuatan indeks selanjutnya. Jaga agar ID basis pengetahuan tetap aman. Anda akan membutuhkannya untuk semua operasi API selanjutnya yang terkait dengan basis pengetahuan ini. |
Penting Pengguna RAM harus diberikan izin API yang diperlukan (kebijakan AliyunBailianDataFullAccess) sebelum memanggil operasi ini. Operasi ini mendukung debugging online dan pembuatan kode sampel untuk berbagai bahasa.
Pythondef create_index(client, workspace_id, file_id, name, structure_type, source_type, sink_type):
"""
Membuat (menginisialisasi) basis pengetahuan di Alibaba Cloud Model Studio.
Args:
client (bailian20231229Client): Klien.
workspace_id (str): ID ruang kerja.
file_id (str): ID file.
name (str): Nama basis pengetahuan.
structure_type (str): Tipe data basis pengetahuan.
source_type (str): Tipe data aplikasi. Jenis kategori dan file didukung.
sink_type (str): Tipe penyimpanan vektor basis pengetahuan.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
headers = {}
request = bailian_20231229_models.CreateIndexRequest(
structure_type=structure_type,
name=name,
source_type=source_type,
sink_type=sink_type,
document_ids=[file_id]
)
runtime = util_models.RuntimeOptions()
return client.create_index_with_options(workspace_id, request, headers, runtime)
Java/**
* Membuat (menginisialisasi) basis pengetahuan di Alibaba Cloud Model Studio.
*
* @param client Objek klien.
* @param workspaceId ID ruang kerja.
* @param fileId ID file.
* @param name Nama basis pengetahuan.
* @param structureType Tipe data basis pengetahuan.
* @param sourceType Tipe data aplikasi. Jenis kategori dan file didukung.
* @param sinkType Tipe penyimpanan vektor basis pengetahuan.
* @return Objek tanggapan dari Alibaba Cloud Model Studio.
*/
public CreateIndexResponse createIndex(com.aliyun.bailian20231229.Client client, String workspaceId, String fileId, String name, String structureType, String sourceType, String sinkType) throws Exception {
Map<String, String> headers = new HashMap<>();
com.aliyun.bailian20231229.models.CreateIndexRequest createIndexRequest = new com.aliyun.bailian20231229.models.CreateIndexRequest();
createIndexRequest.setStructureType(structureType);
createIndexRequest.setName(name);
createIndexRequest.setSourceType(sourceType);
createIndexRequest.setSinkType(sinkType);
createIndexRequest.setDocumentIds(Collections.singletonList(fileId));
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
return client.createIndexWithOptions(workspaceId, createIndexRequest, headers, runtime);
}
PHP/**
* Membuat (menginisialisasi) basis pengetahuan di Alibaba Cloud Model Studio.
*
* @param Bailian $client Klien.
* @param string $workspaceId ID ruang kerja.
* @param string $fileId ID file.
* @param string $name Nama basis pengetahuan.
* @param string $structureType Tipe data basis pengetahuan.
* @param string $sourceType Tipe data aplikasi. Jenis kategori dan file didukung.
* @param string $sinkType Tipe penyimpanan vektor basis pengetahuan.
* @return CreateIndexResponse Tanggapan dari Alibaba Cloud Model Studio.
*/
public function createIndex($client, $workspaceId, $fileId, $name, $structureType, $sourceType, $sinkType) {
$headers = [];
$createIndexRequest = new CreateIndexRequest([
"structureType" => $structureType,
"name" => $name,
"sourceType" => $sourceType,
"documentIds" => [
$fileId
],
"sinkType" => $sinkType
]);
$runtime = new RuntimeOptions([]);
return $client->createIndexWithOptions($workspaceId, $createIndexRequest, $headers, $runtime);
}
Node.js/**
* Menginisialisasi basis pengetahuan (indeks).
* @param {Bailian20231229Client} client - Klien.
* @param {string} workspaceId - ID ruang kerja.
* @param {string} fileId - ID file.
* @param {string} name - Nama basis pengetahuan.
* @param {string} structureType - Tipe data basis pengetahuan.
* @param {string} sourceType - Tipe data aplikasi. Jenis kategori dan file didukung.
* @param {string} sinkType - Tipe penyimpanan vektor basis pengetahuan.
* @returns {Promise<bailian20231229.CreateIndexResponse>} - Tanggapan dari Alibaba Cloud Model Studio.
*/
async function createIndex(client, workspaceId, fileId, name, structureType, sourceType, sinkType) {
const headers = {};
const req = new bailian20231229.CreateIndexRequest({
name,
structureType,
documentIds: [fileId],
sourceType,
sinkType
});
const runtime = new Util.RuntimeOptions({});
return await client.createIndexWithOptions(workspaceId, req, headers, runtime);
}
C#/// <summary>
/// Membuat (menginisialisasi) basis pengetahuan di Alibaba Cloud Model Studio.
/// </summary>
/// <param name="client">Objek klien.</param>
/// <param name="workspaceId">ID ruang kerja.</param>
/// <param name="fileId">ID file.</param>
/// <param name="name">Nama basis pengetahuan.</param>
/// <param name="structureType">Tipe data basis pengetahuan.</param>
/// <param name="sourceType">Tipe data aplikasi. Jenis kategori dan file didukung.</param>
/// <param name="sinkType">Tipe penyimpanan vektor basis pengetahuan.</param>
/// <returns>Objek tanggapan dari Alibaba Cloud Model Studio.</returns>
/// <exception cref="Exception">Dilempar jika terjadi kesalahan selama pemanggilan.</exception>
public AlibabaCloud.SDK.Bailian20231229.Models.CreateIndexResponse CreateIndex(
AlibabaCloud.SDK.Bailian20231229.Client client,
string workspaceId,
string fileId,
string name,
string structureType,
string sourceType,
string sinkType)
{
var headers = new Dictionary<string, string>() { };
var createIndexRequest = new AlibabaCloud.SDK.Bailian20231229.Models.CreateIndexRequest
{
StructureType = structureType,
Name = name,
SourceType = sourceType,
SinkType = sinkType,
DocumentIds = new List<string> { fileId }
};
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
return client.CreateIndexWithOptions(workspaceId, createIndexRequest, headers, runtime);
}
Go// CreateIndex membuat (menginisialisasi) basis pengetahuan di Alibaba Cloud Model Studio.
//
// Args:
// - client (bailian20231229.Client): Klien.
// - workspaceId (string): ID ruang kerja.
// - fileId (string): ID file.
// - name (string): Nama basis pengetahuan.
// - structureType (string): Tipe data basis pengetahuan.
// - sourceType (string): Tipe data aplikasi. Jenis kategori dan file didukung.
// - sinkType (string): Tipe penyimpanan vektor basis pengetahuan.
//
// Returns:
// - *bailian20231229.CreateIndexResponse: Tanggapan dari Alibaba Cloud Model Studio.
// - error: Pesan kesalahan.
func CreateIndex(client *bailian20231229.Client, workspaceId, fileId, name, structureType, sourceType, sinkType string) (_result *bailian20231229.CreateIndexResponse, _err error) {
headers := make(map[string]*string)
createIndexRequest := &bailian20231229.CreateIndexRequest{
StructureType: tea.String(structureType),
Name: tea.String(name),
SourceType: tea.String(sourceType),
SinkType: tea.String(sinkType),
DocumentIds: []*string{tea.String(fileId)},
}
runtime := &util.RuntimeOptions{}
return client.CreateIndexWithOptions(tea.String(workspaceId), createIndexRequest, headers, runtime)
}
Contoh permintaan {
"Name": "Model Studio Phone Knowledge Base",
"SinkType": "BUILT_IN",
"SourceType": "DATA_CENTER_FILE",
"StructureType": "unstructured",
"WorkspaceId": "llm-4u5xpd1xdjqpxxxx",
"DocumentIds": [
"file_0b21e0a852cd40cd9741c54fefbb61cd_10xxxxxx"
]
}
Contoh tanggapan {
"Status": "200",
"Message": "success",
"RequestId": "87CB0999-F1BB-5290-8C79-A875B2XXXXXX",
"Data": {
"Id": "mymxbdxxxx"
},
"Code": "Success",
"Success": "true"
}
|
3.2. Kirim pekerjaan indeksSetelah Anda menginisialisasi basis pengetahuan, Anda harus memanggil operasi SubmitIndexJob untuk mengirimkan pekerjaan indeks. Ini memulai pembuatan indeks untuk basis pengetahuan. Setelah Anda mengirimkan pekerjaan, Alibaba Cloud Model Studio mulai membangun indeks sebagai tugas asinkron. Data.Id yang dikembalikan oleh operasi ini adalah ID pekerjaan yang sesuai. Pada langkah berikutnya, Anda akan menggunakan ID ini untuk mengkueri status terbaru dari pekerjaan tersebut. |
Python
def submit_index(client, workspace_id, index_id):
"""
Mengirimkan pekerjaan indeks ke Alibaba Cloud Model Studio.
Args:
client (bailian20231229Client): Klien.
workspace_id (str): ID ruang kerja.
index_id (str): ID basis pengetahuan.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
headers = {}
submit_index_job_request = bailian_20231229_models.SubmitIndexJobRequest(
index_id=index_id
)
runtime = util_models.RuntimeOptions()
return client.submit_index_job_with_options(workspace_id, submit_index_job_request, headers, runtime)
Java
/**
* Mengirimkan pekerjaan indeks ke Alibaba Cloud Model Studio.
*
* @param client Objek klien.
* @param workspaceId ID ruang kerja.
* @param indexId ID basis pengetahuan.
* @return Objek tanggapan dari Alibaba Cloud Model Studio.
*/
public SubmitIndexJobResponse submitIndex(com.aliyun.bailian20231229.Client client, String workspaceId, String indexId) throws Exception {
Map<String, String> headers = new HashMap<>();
com.aliyun.bailian20231229.models.SubmitIndexJobRequest submitIndexJobRequest = new com.aliyun.bailian20231229.models.SubmitIndexJobRequest();
submitIndexJobRequest.setIndexId(indexId);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
return client.submitIndexJobWithOptions(workspaceId, submitIndexJobRequest, headers, runtime);
}
PHP
/**
* Mengirimkan pekerjaan indeks ke Alibaba Cloud Model Studio.
*
* @param Bailian $client Klien.
* @param string $workspaceId ID ruang kerja.
* @param string $indexId ID basis pengetahuan.
* @return SubmitIndexJobResponse Tanggapan dari Alibaba Cloud Model Studio.
*/
public static function submitIndex($client, $workspaceId, $indexId) {
$headers = [];
$submitIndexJobRequest = new SubmitIndexJobRequest([
'indexId' => $indexId
]);
$runtime = new RuntimeOptions([]);
return $client->submitIndexJobWithOptions($workspaceId, $submitIndexJobRequest, $headers, $runtime);
}
Node.js
/**
* Mengirimkan pekerjaan indeks.
* @param {Bailian20231229Client} client - Klien.
* @param {string} workspaceId - ID ruang kerja.
* @param {string} indexId - ID basis pengetahuan.
* @returns {Promise<bailian20231229.SubmitIndexJobResponse>} - Tanggapan dari Alibaba Cloud Model Studio.
*/
async function submitIndex(client, workspaceId, indexId) {
const headers = {};
const req = new bailian20231229.SubmitIndexJobRequest({ indexId });
const runtime = new Util.RuntimeOptions({});
return await client.submitIndexJobWithOptions(workspaceId, req, headers, runtime);
}
C#
/// <summary>
/// Mengirimkan pekerjaan indeks ke Alibaba Cloud Model Studio.
/// </summary>
/// <param name="client">Objek klien.</param>
/// <param name="workspaceId">ID ruang kerja.</param>
/// <param name="indexId">ID basis pengetahuan.</param>
/// <returns>Objek tanggapan dari Alibaba Cloud Model Studio.</returns>
/// <exception cref="Exception">Dilempar jika terjadi kesalahan selama pemanggilan.</exception>
public AlibabaCloud.SDK.Bailian20231229.Models.SubmitIndexJobResponse SubmitIndex(
AlibabaCloud.SDK.Bailian20231229.Client client,
string workspaceId,
string indexId)
{
var headers = new Dictionary<string, string>() { };
var submitIndexJobRequest = new AlibabaCloud.SDK.Bailian20231229.Models.SubmitIndexJobRequest
{
IndexId = indexId
};
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
return client.SubmitIndexJobWithOptions(workspaceId, submitIndexJobRequest, headers, runtime);
}
Go
// SubmitIndex mengirimkan pekerjaan indeks.
//
// Args:
// - client (bailian20231229.Client): Klien.
// - workspaceId (string): ID ruang kerja.
// - indexId (string): ID basis pengetahuan.
//
// Returns:
// - *bailian20231229.SubmitIndexJobResponse: Tanggapan dari Alibaba Cloud Model Studio.
// - error: Pesan kesalahan.
func SubmitIndex(client *bailian20231229.Client, workspaceId, indexId string) (_result *bailian20231229.SubmitIndexJobResponse, _err error) {
headers := make(map[string]*string)
submitIndexJobRequest := &bailian20231229.SubmitIndexJobRequest{
IndexId: tea.String(indexId),
}
runtime := &util.RuntimeOptions{}
return client.SubmitIndexJobWithOptions(tea.String(workspaceId), submitIndexJobRequest, headers, runtime)
}
Contoh Permintaan
{
"IndexId": "mymxbdxxxx",
"WorkspaceId": "llm-4u5xpd1xdjqpxxxx"
}
Contoh Tanggapan
{
"Status": "200",
"Message": "success",
"RequestId": "7774575F-571D-5854-82C2-634AB8XXXXXX",
"Data": {
"IndexId": "mymxbdxxxx",
"Id": "3cd6fb57aaf44cd0b4dd2ca584xxxxxx"
},
"Code": "Success",
"Success": "true"
}
|
3.3. Tunggu hingga pekerjaan indeks selesaiPekerjaan indeks memerlukan waktu untuk diselesaikan. Selama jam sibuk, proses ini dapat memakan waktu beberapa jam. Untuk mengecek status eksekusinya, Anda dapat memanggil operasi GetIndexJobStatus. Ketika bidang Data.Status dalam tanggapan adalah COMPLETED, basis pengetahuan telah berhasil dibuat. |
Penting Pengguna RAM harus diberikan izin API yang diperlukan (kebijakan AliyunBailianDataFullAccess) sebelum memanggil operasi ini. Operasi ini mendukung debugging online dan pembuatan kode sampel untuk berbagai bahasa pemrograman.
Pythondef get_index_job_status(client, workspace_id, index_id, job_id):
"""
Menanyakan status pekerjaan indeks.
Args:
client (bailian20231229Client): Klien.
workspace_id (str): ID ruang kerja.
index_id (str): ID basis pengetahuan.
job_id (str): ID pekerjaan.
Returns:
Tanggapan dari Alibaba Cloud Model Studio.
"""
headers = {}
get_index_job_status_request = bailian_20231229_models.GetIndexJobStatusRequest(
index_id=index_id,
job_id=job_id
)
runtime = util_models.RuntimeOptions()
return client.get_index_job_status_with_options(workspace_id, get_index_job_status_request, headers, runtime)
Java/**
* Menanyakan status pekerjaan indeks.
*
* @param client Objek klien.
* @param workspaceId ID ruang kerja.
* @param jobId ID pekerjaan.
* @param indexId ID basis pengetahuan.
* @return Objek tanggapan dari Alibaba Cloud Model Studio.
*/
public GetIndexJobStatusResponse getIndexJobStatus(com.aliyun.bailian20231229.Client client, String workspaceId, String jobId, String indexId) throws Exception {
Map<String, String> headers = new HashMap<>();
com.aliyun.bailian20231229.models.GetIndexJobStatusRequest getIndexJobStatusRequest = new com.aliyun.bailian20231229.models.GetIndexJobStatusRequest();
getIndexJobStatusRequest.setIndexId(indexId);
getIndexJobStatusRequest.setJobId(jobId);
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
GetIndexJobStatusResponse getIndexJobStatusResponse = null;
getIndexJobStatusResponse = client.getIndexJobStatusWithOptions(workspaceId, getIndexJobStatusRequest, headers, runtime);
return getIndexJobStatusResponse;
}
PHP/**
* Menanyakan status pekerjaan indeks.
*
* @param Bailian $client Klien.
* @param string $workspaceId ID ruang kerja.
* @param string $jobId ID pekerjaan.
* @param string $indexId ID basis pengetahuan.
* @return GetIndexJobStatusResponse Tanggapan dari Alibaba Cloud Model Studio.
*/
public function getIndexJobStatus($client, $workspaceId, $jobId, $indexId) {
$headers = [];
$getIndexJobStatusRequest = new GetIndexJobStatusRequest([
'indexId' => $indexId,
'jobId' => $jobId
]);
$runtime = new RuntimeOptions([]);
return $client->getIndexJobStatusWithOptions($workspaceId, $getIndexJobStatusRequest, $headers, $runtime);
}
Node.js/**
* Menanyakan status pekerjaan indeks.
* @param {Bailian20231229Client} client - Klien.
* @param {string} workspaceId - ID ruang kerja.
* @param {string} jobId - ID pekerjaan.
* @param {string} indexId - ID basis pengetahuan.
* @returns {Promise<bailian20231229.GetIndexJobStatusResponse>} - Tanggapan dari Alibaba Cloud Model Studio.
*/
async function getIndexJobStatus(client, workspaceId, jobId, indexId) {
const headers = {};
const req = new bailian20231229.GetIndexJobStatusRequest({ jobId, indexId });
const runtime = new Util.RuntimeOptions({});
return await client.getIndexJobStatusWithOptions(workspaceId, req, headers, runtime);
}
C#/// <summary>
/// Menanyakan status pekerjaan indeks.
/// </summary>
/// <param name="client">Objek klien.</param>
/// <param name="workspaceId">ID ruang kerja.</param>
/// <param name="jobId">ID pekerjaan.</param>
/// <param name="indexId">ID basis pengetahuan.</param>
/// <returns>Objek tanggapan dari Alibaba Cloud Model Studio.</returns>
/// <exception cref="Exception">Dilempar jika terjadi kesalahan selama pemanggilan.</exception>
public AlibabaCloud.SDK.Bailian20231229.Models.GetIndexJobStatusResponse GetIndexJobStatus(
AlibabaCloud.SDK.Bailian20231229.Client client,
string workspaceId,
string jobId,
string indexId)
{
var headers = new Dictionary<string, string>() { };
var getIndexJobStatusRequest = new AlibabaCloud.SDK.Bailian20231229.Models.GetIndexJobStatusRequest
{
IndexId = indexId,
JobId = jobId
};
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
return client.GetIndexJobStatusWithOptions(workspaceId, getIndexJobStatusRequest, headers, runtime);
}
Go// GetIndexJobStatus menanyakan status pekerjaan indeks.
//
// Args:
// - client (bailian20231229.Client): Klien.
// - workspaceId (string): ID ruang kerja.
// - jobId (string): ID pekerjaan.
// - indexId (string): ID basis pengetahuan.
//
// Returns:
// - *bailian20231229.GetIndexJobStatusResponse: Tanggapan dari Alibaba Cloud Model Studio.
// - error: Pesan kesalahan.
func GetIndexJobStatus(client *bailian20231229.Client, workspaceId, jobId, indexId string) (_result *bailian20231229.GetIndexJobStatusResponse, _err error) {
headers := make(map[string]*string)
getIndexJobStatusRequest := &bailian20231229.GetIndexJobStatusRequest{
JobId: tea.String(jobId),
IndexId: tea.String(indexId),
}
runtime := &util.RuntimeOptions{}
return client.GetIndexJobStatusWithOptions(tea.String(workspaceId), getIndexJobStatusRequest, headers, runtime)
}
Contoh permintaan {
"IndexId": "mymxbdxxxx",
"JobId": "3cd6fb57aaf44cd0b4dd2ca584xxxxxx",
"WorkspaceId": "llm-4u5xpd1xdjqpxxxx"
}
Contoh tanggapan {
"Status": "200",
"Message": "success",
"RequestId": "E83423B9-7D6D-5FC1-A947-36EDD1XXXXXX",
"Data": {
"Status": "COMPLETED",
"Documents": [
{
"Status": "FINISH",
"DocId": "file_0b21e0a852cd40cd9741c54fefbb61cd_10xxxxxx",
"Message": "Impor berhasil",
"DocName": "Spesifikasi Telepon Bailian",
"Code": "FINISH"
}
],
"JobId": "3cd6fb57aaf44cd0b4dd2ca584xxxxxx"
},
"Code": "Success",
"Success": "true"
}
|