跳到主要内容

什么是AI API?初学者完整指南与实践教程

· 10 分钟阅读
Kobkrit Viriyayudhakorn
CEO @ iApp Technology

作者:Kobkrit Viriyayudhakorn博士,iApp Technology CEO兼创始人

您是否曾经想过Google翻译、Instagram上的面部滤镜或Siri等语音助手是如何工作的?这些令人惊叹的功能背后是一项强大的技术,称为AI API。在本指南中,我们将详细解释什么是AI API,它是如何工作的,最重要的是——当您读完本文时,您将构建出您的第一个AI驱动的应用程序!

AI API初学者指南

第一部分:理解基础知识

什么是API?

在深入了解AI API之前,让我们先理解API是什么。

API代表应用程序编程接口(Application Programming Interface)。可以把它想象成餐厅里的服务员

  1. **您(顾客)**想要点餐
  2. 厨房可以准备食物
  3. **服务员(API)**将您的订单带到厨房,并将食物带回给您

在技术世界中:

  • = 您的应用程序(网站、移动应用、软件)
  • 厨房 = 具有特殊功能的服务器
  • 服务员(API) = 让您与该服务器通信的接口

API就像服务员 - 将请求带到厨房(服务器)并返回响应

现实世界中的API示例

您每天都在使用API而不自知:

当您...您正在使用...
在手机上查看天气天气API
在线用信用卡支付支付API(Stripe、PayPal)
使用Google/Facebook登录OAuth API
在应用中查看地图Google Maps API
分享到社交媒体社交媒体API

什么是AI API?

AI API是提供人工智能能力作为服务的API。您不需要自己构建复杂的AI模型(这需要专业知识、数据和计算能力),只需向AI API发送请求并接收智能结果。

AI API = AI即服务

没有AI API vs 有了AI API - 自己构建AI和使用AI API之间的区别

AI API的类型

类别功能示例
计算机视觉分析图像和视频OCR、人脸检测、物体识别
自然语言处理(NLP)理解和生成文本翻译、情感分析、聊天机器人
语音语音转文字及反向转换语音转文字、文字转语音
生成式AI创建新内容ChatGPT、图像生成、代码生成

AI API是如何工作的?

让我们理解AI API请求的完整流程:

分步流程

AI API请求流程 - 从准备请求到接收响应

请求-响应周期

1. 请求组件

每个AI API请求通常包含:

{
// 发送到哪里
"url": "https://api.iapp.co.th/thai-national-id-card/v3/front",

// 如何认证
"headers": {
"apikey": "your-secret-api-key"
},

// 要处理什么
"body": {
"file": "<您的图像或文本数据>"
}
}

2. 响应组件

AI API返回结构化响应:

{
// AI的分析结果
"result": {
"id_number": "1234567890123",
"name_th": "นายทดสอบ ตัวอย่าง",
"name_en": "Mr. Test Example",
"date_of_birth": "01 Jan 1990"
},

// AI的置信度
"confidence": 0.98,

// 处理信息
"processing_time_ms": 245
}

第二部分:实践教程 - 您的第一个AI API调用

现在让我们构建一些真实的东西!我们将使用iApp Technology的泰语AI API来创建您的第一个AI驱动的应用程序。

我们将构建什么

我们将创建一个简单的应用程序:

  1. 分析情感 泰语文本(正面/负面/中性)
  2. 提取信息 从泰国身份证图像

前提条件

  • 对任何编程语言的基本理解
  • 连接互联网的计算机
  • 15分钟时间

步骤1:获取免费API密钥

  1. 访问 https://iapp.co.th/register
  2. 创建免费账户
  3. 进入API Keys部分
  4. 点击Create New API Key
  5. 复制您的API密钥(安全保存!)
免费积分

新账户会收到免费积分来测试API!

步骤2:您的第一个API调用 - 情感分析

让我们分析泰语文本的情感。这个API可以判断文本是正面、负面还是中性的。

使用cURL(终端/命令行)

curl -X POST "https://api.iapp.co.th/sentimental-analysis/predict" \
-H "apikey: YOUR_API_KEY" \
-d "text=วันนี้อากาศดีมาก ฉันมีความสุขจัง"

使用Python

import requests

# 配置
API_KEY = "YOUR_API_KEY" # 替换为您的实际API密钥
API_URL = "https://api.iapp.co.th/sentimental-analysis/predict"

# 要分析的泰语文本
thai_text = "วันนี้อากาศดีมาก ฉันมีความสุขจัง" # "今天天气很好,我很开心"

# 发送API请求
response = requests.post(
API_URL,
headers={"apikey": API_KEY},
params={"text": thai_text}
)

# 解析响应
result = response.json()

# 显示结果
print(f"文本: {thai_text}")
print(f"情感: {result['label']}") # pos, neg, 或 neu
print(f"置信度: {result['score']:.2%}")

预期输出:

文本: วันนี้อากาศดีมาก ฉันมีความสุขจัง
情感: pos
置信度: 89.45%

使用JavaScript(Node.js)

const axios = require('axios');

// 配置
const API_KEY = 'YOUR_API_KEY'; // 替换为您的实际API密钥
const API_URL = 'https://api.iapp.co.th/sentimental-analysis/predict';

// 要分析的泰语文本
const thaiText = 'วันนี้อากาศดีมาก ฉันมีความสุขจัง';

// 发送API请求
async function analyzeSentiment() {
try {
const response = await axios.post(
`${API_URL}?text=${encodeURIComponent(thaiText)}`,
{},
{
headers: { 'apikey': API_KEY }
}
);

console.log(`文本: ${thaiText}`);
console.log(`情感: ${response.data.label}`);
console.log(`置信度: ${(response.data.score * 100).toFixed(2)}%`);
} catch (error) {
console.error('错误:', error.message);
}
}

analyzeSentiment();

使用JavaScript(浏览器/前端)

<!DOCTYPE html>
<html>
<head>
<title>泰语情感分析器</title>
</head>
<body>
<h1>泰语情感分析器</h1>
<textarea id="textInput" placeholder="输入泰语文本..."></textarea>
<button onclick="analyze()">分析情感</button>
<div id="result"></div>

<script>
async function analyze() {
const text = document.getElementById('textInput').value;
const API_KEY = 'YOUR_API_KEY';

const response = await fetch(
`https://api.iapp.co.th/sentimental-analysis/predict?text=${encodeURIComponent(text)}`,
{
method: 'POST',
headers: { 'apikey': API_KEY }
}
);

const data = await response.json();

const sentimentEmoji = {
'pos': '😊 正面',
'neg': '😢 负面',
'neu': '😐 中性'
};

document.getElementById('result').innerHTML = `
<p>情感: ${sentimentEmoji[data.label]}</p>
<p>置信度: ${(data.score * 100).toFixed(2)}%</p>
`;
}
</script>
</body>
</html>

步骤3:OCR API - 从泰国身份证提取数据

现在让我们尝试更高级的东西——从泰国国民身份证图像中提取信息。

使用Python

import requests

# 配置
API_KEY = "YOUR_API_KEY"
API_URL = "https://api.iapp.co.th/thai-national-id-card/v3/front"

# 身份证图像路径
image_path = "thai_id_card.jpg"

# 准备文件
with open(image_path, 'rb') as image_file:
files = {'file': image_file}
headers = {'apikey': API_KEY}

# 发送API请求
response = requests.post(API_URL, headers=headers, files=files)

# 解析并显示结果
result = response.json()

print("=== 泰国身份证OCR结果 ===")
print(f"身份证号码: {result.get('id_number', 'N/A')}")
print(f"泰语姓名: {result.get('name_th', 'N/A')}")
print(f"英语姓名: {result.get('name_en', 'N/A')}")
print(f"出生日期: {result.get('date_of_birth', 'N/A')}")
print(f"地址: {result.get('address', 'N/A')}")

预期输出:

=== 泰国身份证OCR结果 ===
身份证号码: 1-2345-67890-12-3
泰语姓名: นาย ทดสอบ ตัวอย่าง
英语姓名: Mr. Test Example
出生日期: 01 Jan 1990
地址: 123 ถนนสุขุมวิท แขวงคลองตัน เขตวัฒนา กรุงเทพฯ 10110

使用JavaScript(Node.js)

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

// 配置
const API_KEY = 'YOUR_API_KEY';
const API_URL = 'https://api.iapp.co.th/thai-national-id-card/v3/front';

async function extractIdCard() {
// 创建带有图像的表单数据
const formData = new FormData();
formData.append('file', fs.createReadStream('thai_id_card.jpg'));

try {
const response = await axios.post(API_URL, formData, {
headers: {
'apikey': API_KEY,
...formData.getHeaders()
}
});

const result = response.data;

console.log('=== 泰国身份证OCR结果 ===');
console.log(`身份证号码: ${result.id_number || 'N/A'}`);
console.log(`泰语姓名: ${result.name_th || 'N/A'}`);
console.log(`英语姓名: ${result.name_en || 'N/A'}`);
console.log(`出生日期: ${result.date_of_birth || 'N/A'}`);
} catch (error) {
console.error('错误:', error.message);
}
}

extractIdCard();

第三部分:使用AI API的最佳实践

1. 保护您的API密钥

# ❌ 不好 - 永远不要硬编码API密钥
API_KEY = "sk-1234567890abcdef"

# ✅ 好 - 使用环境变量
import os
API_KEY = os.environ.get('IAPP_API_KEY')

2. 优雅地处理错误

import requests

def analyze_sentiment(text):
try:
response = requests.post(
API_URL,
headers={"apikey": API_KEY},
params={"text": text},
timeout=30 # 设置超时
)

# 检查HTTP错误
response.raise_for_status()

return response.json()

except requests.exceptions.Timeout:
print("请求超时,请重试。")
except requests.exceptions.HTTPError as e:
if e.response.status_code == 401:
print("API密钥无效")
elif e.response.status_code == 429:
print("超过速率限制,请稍候。")
else:
print(f"HTTP错误: {e}")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")

return None

3. 实现重试逻辑

import time
import requests

def api_call_with_retry(url, headers, data, max_retries=3):
for attempt in range(max_retries):
try:
response = requests.post(url, headers=headers, data=data)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
if attempt < max_retries - 1:
wait_time = 2 ** attempt # 指数退避
print(f"第{attempt + 1}次尝试失败。{wait_time}秒后重试...")
time.sleep(wait_time)
else:
raise e

4. 适当时缓存结果

from functools import lru_cache
import hashlib

@lru_cache(maxsize=100)
def cached_sentiment_analysis(text_hash):
# 为相同输入缓存结果
return analyze_sentiment_internal(text_hash)

def analyze_sentiment(text):
text_hash = hashlib.md5(text.encode()).hexdigest()
return cached_sentiment_analysis(text_hash)

第四部分:常见AI API用例

E-KYC(电子身份认证)

# 通过比较身份证照片和自拍来验证客户身份
def verify_identity(id_card_image, selfie_image):
# 步骤1:从身份证中提取人脸
id_face = extract_face(id_card_image)

# 步骤2:从自拍中提取人脸
selfie_face = extract_face(selfie_image)

# 步骤3:比较人脸
match_result = compare_faces(id_face, selfie_face)

return match_result['is_same_person'], match_result['confidence']

客户反馈分析

# 大规模分析客户评论
def analyze_customer_feedback(reviews):
results = {
'positive': 0,
'negative': 0,
'neutral': 0,
'issues': []
}

for review in reviews:
sentiment = analyze_sentiment(review['text'])
results[sentiment['label']] += 1

if sentiment['label'] == 'neg':
results['issues'].append(review)

return results

文档处理自动化

# 自动化发票处理
def process_invoice(invoice_image):
# 使用OCR从发票中提取文本
ocr_result = extract_text(invoice_image)

# 解析结构化数据
invoice_data = {
'invoice_number': extract_field(ocr_result, 'invoice_number'),
'date': extract_field(ocr_result, 'date'),
'total': extract_field(ocr_result, 'total'),
'items': extract_line_items(ocr_result)
}

return invoice_data

第五部分:选择合适的AI API提供商

需要考虑的关键因素

因素要问的问题
准确性准确率是多少?是否针对您的语言/用例进行了优化?
速度平均响应时间是多少?
定价按使用付费还是订阅?费率是多少?
支持是否提供本地语言支持?
安全性数据是否加密?是否符合GDPR/PDPA?
可靠性SLA正常运行时间是多少?

为什么选择iApp Technology

功能iApp Technology
泰语优化AI模型专门为泰语训练
本地支持泰语支持团队
合规性符合PDPA和GDPR
认证ISO 29110, iBeta PAD Level 1 & 2
定价具有竞争力的按使用付费定价
免费试用免费积分测试API

总结

在本指南中,您学习了:

  1. 什么是API - 应用程序之间的通信接口
  2. 什么是AI API - 作为服务提供的AI能力
  3. AI API如何工作 - 请求-响应周期
  4. 如何进行第一次AI API调用 - 带有实际代码示例
  5. 最佳实践 - 安全性、错误处理和优化
  6. 常见用例 - E-KYC、情感分析、文档处理

您的下一步

  1. 注册免费iApp账户:iapp.co.th/register
  2. 获取API密钥从仪表板
  3. 尝试示例在本教程中
  4. 探索更多API在我们的文档
  5. 构建令人惊叹的东西!

资源


关于作者

Kobkrit Viriyayudhakorn博士是泰国领先AI公司iApp Technology的CEO兼创始人。凭借在人工智能和自然语言处理方面超过15年的经验,Kobkrit博士热衷于让AI对各种规模的开发者和企业都变得可及。


参考文献

  1. IBM Developer, "What is an API?", 2024
  2. Google Cloud, "Machine Learning APIs", 2024
  3. AWS, "What is a REST API?", 2024
  4. iApp Technology, "API Documentation", 2025
  5. Postman, "The State of the API Report", 2024