Skip to main content

📝❔ āļĢāļ°āļšāļšāļ•āļ­āļšāļ„āļģāļ–āļēāļĄāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļ āļēāļĐāļēāđ„āļ—āļĒ (Thai Qestion Answering)

📝❔ Thai Auto Question Answering (ThaiQA)

Version Status

āļĒāļīāļ™āļ”āļĩāļ•āđ‰āļ­āļ™āļĢāļąāļšāļŠāļđāđˆ iApp Thai Question Answering API āļœāļĨāļīāļ•āļ āļąāļ“āļ‘āđŒ AI āļ—āļĩāđˆāļžāļąāļ’āļ™āļēāđ‚āļ”āļĒ āļšāļĢāļīāļĐāļąāļ— āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ āļˆāļģāļāļąāļ” API āļ‚āļ­āļ‡āđ€āļĢāļēāđƒāļŦāđ‰āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āļ­āļąāļ™āļ—āļĢāļ‡āļžāļĨāļąāļ‡āđƒāļ™āļāļēāļĢāļ”āļķāļ‡āļ„āļģāļ•āļ­āļšāļˆāļēāļāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ āļēāļĐāļēāđ„āļ—āļĒāļ•āļēāļĄāļ„āļģāļ–āļēāļĄ āđ‚āļ”āļĒāđƒāļŠāđ‰āđ€āļ—āļ„āļ™āļīāļ„āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ āļēāļĐāļēāļ˜āļĢāļĢāļĄāļŠāļēāļ•āļīāļ‚āļąāđ‰āļ™āļŠāļđāļ‡ (NLP) āđ€āļžāļ·āđˆāļ­āļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāļšāļĢāļīāļšāļ—āđāļĨāļ°āđƒāļŦāđ‰āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡

āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āđƒāļŠāđ‰āļ‡āļēāļ™â€‹

  1. āļ‚āđ‰āļ­āļāļģāļŦāļ™āļ”āđ€āļšāļ·āđ‰āļ­āļ‡āļ•āđ‰āļ™

    • API key āļˆāļēāļ āđ„āļ­āđāļ­āļžāļžāđŒāđ€āļ—āļ„āđ‚āļ™āđ‚āļĨāļĒāļĩ
    • āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ āļēāļĐāļēāđ„āļ—āļĒāđāļĨāļ°āļ„āļģāļ–āļēāļĄ
    • āļāļēāļĢāđ€āļŠāļ·āđˆāļ­āļĄāļ•āđˆāļ­āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļ™āđ‡āļ•
  2. āđ€āļĢāļīāđˆāļĄāļ•āđ‰āļ™āļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§

    • āļāļēāļĢāļ”āļķāļ‡āļ„āļģāļ•āļ­āļšāļ­āļĒāđˆāļēāļ‡āļĢāļ§āļ”āđ€āļĢāđ‡āļ§
    • āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāđāļĄāđˆāļ™āļĒāļģāļŠāļđāļ‡
    • āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹ API REST āļ—āļĩāđˆāđ€āļĢāļĩāļĒāļšāļ‡āđˆāļēāļĒ
  3. āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļ

    • āļāļēāļĢāļ”āļķāļ‡āļ„āļģāļ•āļ­āļšāļ•āļēāļĄāļ„āļģāļ–āļēāļĄ
    • āļāļēāļĢāļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāļšāļĢāļīāļšāļ—
    • āđ€āļ§āļĨāļēāļ•āļ­āļšāļŠāļ™āļ­āļ‡āļ—āļĩāđˆāļĢāļ§āļ”āđ€āļĢāđ‡āļ§
    • āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāļ—āļĩāđˆāļ‡āđˆāļēāļĒāļ”āļēāļĒ
  4. āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄāļāļŽāļĢāļ°āđ€āļšāļĩāļĒāļš

    • āļ›āļāļīāļšāļąāļ•āļīāļ•āļēāļĄ GDPR āđāļĨāļ° PDPA
    • āđ„āļĄāđˆāļĄāļĩāļāļēāļĢāđ€āļāđ‡āļšāļĢāļąāļāļĐāļēāļ‚āđ‰āļ­āļĄāļđāļĨāļŦāļĨāļąāļ‡āļˆāļēāļāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨ
āļ§āļīāļ˜āļĩāļĢāļąāļš API Key?

āļāļĢāļļāļ“āļēāđ€āļĒāļĩāđˆāļĒāļĄāļŠāļĄ API Portal āđ€āļžāļ·āđˆāļ­āļ”āļđ API key āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļ‚āļ­āļ‡āļ„āļļāļ“āļŦāļĢāļ·āļ­āļ‚āļ­ API key āđƒāļŦāļĄāđˆ

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡â€‹

āļ„āļģāļ‚āļ­āļ•āļ­āļšāļ„āļģāļ–āļēāļĄâ€‹

curl --location --request POST 'https://api.iapp.co.th/thai-qa' \
--header 'Content-Type: application/json' \
--header 'apikey: {Your API KEY}' \
--data-raw '{
"question": "āđāļ„āđ‡āļ§āļĄāđŒāđ€āļ›āđ‡āļ™āđāļ„āđˆāļŦāļĄāļđāđˆāļšāđ‰āļēāļ™āđƒāļŠāđˆāļŦāļĢāļ·āļ­āđ„āļĄāđˆ",
"document": "āļˆāļąāļ‡āļŦāļ§āļąāļ”āđāļ„āđ‡āļ§āļĄāđŒāđ‚āļ›āđāļĨāļ™āļ”āđŒ wojewdztwochemskie āļ„āļ·āļ­āļŦāļ™āđˆāļ§āļĒāļāļēāļĢāļ›āļāļ„āļĢāļ­āļ‡āļ—āđ‰āļ­āļ‡āļ–āļīāđˆāļ™āļ‚āļ­āļ‡āļ›āļĢāļ°āđ€āļ—āļĻāđ‚āļ›āđāļĨāļ™āļ”āđŒāđƒāļ™āļŠāđˆāļ§āļ‡āļ›āļĩ āļ„.āļĻ.1975 - āļ„.āļĻ.1998 āļˆāļąāļ‡āļŦāļ§āļąāļ”āđ„āļ”āđ‰āļĢāļąāļšāļāļēāļĢāļĢāļ§āļĄāđ€āļ‚āđ‰āļēāļāļąāļšāļˆāļąāļ‡āļŦāļ§āļąāļ”āļĨāļđāļšāļĨāļīāļ™āļĄāļĩāđ€āļĄāļ·āļ­āļ‡āļŦāļĨāļąāļāļ„āļ·āļ­āđāļ„āđ‡āļ§āļĄāđŒāđƒāļ™ āļ›āļĩ āļ„.āļĻ.1998 āļĄāļĩāļžāļ·āđ‰āļ™āļ—āļĩāđˆāļ›āļĢāļ°āļĄāļēāļ“ 3865 āļ•āļēāļĢāļēāļ‡āļāļīāđ‚āļĨāđ€āļĄāļ•āļĢāđāļĨāļ°āļĄāļĩāļ›āļĢāļ°āļŠāļēāļāļĢ 248800 āļ„āļ™"
}'

āļ„āļģāļ•āļ­āļšāļ‚āļ­āļ‡āļ„āļģāļ–āļēāļĄâ€‹

{
"answer": "āđ„āļĄāđˆāđƒāļŠāđˆ"
}

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāđāļĨāļ°āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–​

āļ„āļļāļ“āļŠāļĄāļšāļąāļ•āļīāļŦāļĨāļąāļâ€‹

  • āļ”āļķāļ‡āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ–āļđāļāļ•āđ‰āļ­āļ‡āļˆāļēāļāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ āļēāļĐāļēāđ„āļ—āļĒāđāļĨāļ°āļ„āļģāļ–āļēāļĄ
  • āđƒāļŠāđ‰āđ€āļ—āļ„āļ™āļīāļ„āļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāļ āļēāļĐāļēāļ˜āļĢāļĢāļĄāļŠāļēāļ•āļīāļ‚āļąāđ‰āļ™āļŠāļđāļ‡ (NLP) āđ€āļžāļ·āđˆāļ­āļ—āļģāļ„āļ§āļēāļĄāđ€āļ‚āđ‰āļēāđƒāļˆāļšāļĢāļīāļšāļ—āđāļĨāļ°āđƒāļŦāđ‰āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡
  • āļĢāļ­āļ‡āļĢāļąāļšāđāļŦāļĨāđˆāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨāļ„āļ§āļēāļĄāļĢāļđāđ‰āļŦāļĨāļēāļāļŦāļĨāļēāļĒ āļĢāļ§āļĄāļ–āļķāļ‡āļ•āļģāļĢāļē āļšāļ—āļ„āļ§āļēāļĄ āđāļĨāļ°āđ€āļ§āđ‡āļšāđ„āļ‹āļ•āđŒ

āļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļĢāļ­āļ‡āļĢāļąāļšâ€‹

  • āļ­āļīāļ™āļžāļļāļ•: āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ āļēāļĐāļēāđ„āļ—āļĒāđāļĨāļ°āļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡
  • āđ€āļ­āļēāļ•āđŒāļžāļļāļ•: āļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāđ€āļāļĩāđˆāļĒāļ§āļ‚āđ‰āļ­āļ‡āļĄāļēāļāļ—āļĩāđˆāļŠāļļāļ”āļ—āļĩāđˆāļ”āļķāļ‡āļĄāļēāļˆāļēāļāļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļ„āļ§āļēāļĄāļĢāļđāđ‰āļ—āļĩāđˆāđƒāļŦāđ‰āļĄāļē
  • āļ„āļ°āđāļ™āļ™āļ„āļ§āļēāļĄāļĄāļąāđˆāļ™āđƒāļˆāļŠāļģāļŦāļĢāļąāļšāļ„āļģāļ•āļ­āļšāļ—āļĩāđˆāļ”āļķāļ‡āļĄāļē

āļ„āļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļ–āđ€āļžāļīāđˆāļĄāđ€āļ•āļīāļĄâ€‹

  • āļāļēāļĢāļœāļŠāļēāļ™āļĢāļ§āļĄāļ—āļĩāđˆāļ‡āđˆāļēāļĒāļ”āļēāļĒāđ€āļ‚āđ‰āļēāļāļąāļšāđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāļĄāļĩāļ­āļĒāļđāđˆāļœāđˆāļēāļ™ RESTful API
  • āļ­āļ­āļāđāļšāļšāļĄāļēāļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļ›āļĢāļ°āļĄāļ§āļĨāļœāļĨāđāļšāļšāđ€āļĢāļĩāļĒāļĨāđ„āļ—āļĄāđŒāđāļĨāļ°āđāļšāļšāļŠāļļāļ”
  • āđ€āļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļšāđāļžāļĨāļ•āļŸāļ­āļĢāđŒāļĄāļāļēāļĢāļĻāļķāļāļĐāļē āļĢāļ°āļšāļšāļŠāļ™āļąāļšāļŠāļ™āļļāļ™āļĨāļđāļāļ„āđ‰āļē āđāļĨāļ°āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āļ—āļĩāđˆāđƒāļŠāđ‰āļ„āļ§āļēāļĄāļĢāļđāđ‰

āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āđ‰āļēāļ‡āļ­āļīāļ‡ API​

āļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”​

POST https://api.iapp.co.th/thai-qa

āļŠāđˆāļ§āļ™āļŦāļąāļ§â€‹

āļŠāļ·āđˆāļ­āļŠāļ™āļīāļ”āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
apikeyStringAPI Key āļ—āļĩāđˆāļŠāļĢāđ‰āļēāļ‡āļ‚āļķāđ‰āļ™

āļ‚āđ‰āļ­āļ„āļ§āļēāļĄāļĢāđ‰āļ­āļ‡āļ‚āļ­â€‹

āļŠāļ·āđˆāļ­āļŠāļ™āļīāļ”āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ
questionStringāļ„āļģāļ–āļēāļĄāļ—āļĩāđˆāļ„āļļāļ“āļ•āđ‰āļ­āļ‡āļāļēāļĢāļ—āļĢāļēāļš
documentStringāļĒāđˆāļ­āļŦāļ™āđ‰āļēāļ‚āļ­āļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ

āļĢāļēāļ„āļē​

āļŠāļ·āđˆāļ­āļšāļĢāļīāļāļēāļĢ AI APIāļˆāļļāļ”āļŠāļīāđ‰āļ™āļŠāļļāļ”IC āļ•āđˆāļ­āļ­āļąāļāļ‚āļĢāļ°On-Premise
āļĢāļ°āļšāļšāļ•āļ­āļšāļ„āļģāļ–āļēāļĄāļ­āļąāļ•āđ‚āļ™āļĄāļąāļ•āļīāļ āļēāļĐāļēāđ„āļ—āļĒ (QA)iapp_thai_automatic_qa_v11 IC/400 āļ­āļąāļāļ‚āļĢāļ°āļ•āļīāļ”āļ•āđˆāļ­

āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡āđ‚āļ„āđ‰āļ”​

Python​

import requests
import json

url = "https://api.iapp.co.th/thai-qa/v3/inference"

payload = json.dumps({
"question": "{YOUR QUESTION}",
"document": "{YOUR PARAGRAPH/ YOUR ARTICLE}"
})
headers = {
'apikey': '{YOUR API KEY}',
'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)


JavaScript​

const axios = require('axios');
let data = JSON.stringify({
"question": "{YOUR QUESTION}",
"document": "{YOUR PARAGRAPH/ YOUR ARTICLE}"
});

let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://api.iapp.co.th/thai-qa/v3/inference',
headers: {
'apikey': '{YOUR API KEY}',
'Content-Type': 'application/json'
},
data : data
};

axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});

PHP​

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/thai-qa/v3/inference',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS =>'{
"question": "{YOUR QUESTION}",
"document": "{YOUR PARAGRAPH/ YOUR ARTICLE}"
}',
CURLOPT_HTTPHEADER => array(
'apikey: {YOUR API KEY}',
'Content-Type: application/json'
),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Swift​

let parameters = "{\n    \"question\": \"{YOUR QUESTION}\",  \n    \"document\": \"{YOUR PARAGRAPH/ YOUR ARTICLE}\"\n}"
let postData = parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://api.iapp.co.th/thai-qa/v3/inference")!,timeoutInterval: Double.infinity)
request.addValue("{YOUR API KEY}", forHTTPHeaderField: "apikey")
request.addValue("application/json", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}

task.resume()

Kotlin​

val client = OkHttpClient()
val mediaType = "application/json".toMediaType()
val body = "{\n \"question\": \"{YOUR QUESTION}\", \n \"document\": \"{YOUR PARAGRAPH/ YOUR ARTICLE}\"\n}".toRequestBody(mediaType)
val request = Request.Builder()
.url("https://api.iapp.co.th/thai-qa/v3/inference")
.post(body)
.addHeader("apikey", "{YOUR API KEY}")
.addHeader("Content-Type", "application/json")
.build()
val response = client.newCall(request).execute()

Java​

OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n \"question\": \"{YOUR QUESTION}\", \n \"document\": \"{YOUR PARAGRAPH/ YOUR ARTICLE}\"\n}");
Request request = new Request.Builder()
.url("https://api.iapp.co.th/thai-qa/v3/inference")
.method("POST", body)
.addHeader("apikey", "{YOUR API KEY}")
.addHeader("Content-Type", "application/json")
.build();
Response response = client.newCall(request).execute();

Dart​

var headers = {
'apikey': '{YOUR API KEY}',
'Content-Type': 'application/json'
};
var request = http.Request('POST', Uri.parse('https://api.iapp.co.th/thai-qa/v3/inference'));
request.body = json.encode({
"question": "{YOUR QUESTION}",
"document": "{YOUR PARAGRAPH/ YOUR ARTICLE}"
});
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}