Build with AI - 1
===
###### tags: `GDG on Campus FCU 2024/25`
{%youtube Oi6qsr2dy8c%}
## Gemini
Google 開發的生成式人工智慧聊天機器人
### API
軟體組件之間一套明確定義的溝通方法
eg. 客人(使用者)需要透過服務生(API)點菜,服務生再依照訂單叫廚師(後台)做菜
1. 請求 Request
軟體應用向另一個軟體應用發送請求
內容:
- 一個動作 eg. 獲取 GET, 更改 POST/PUT
- 要取得/更改的數據的識別符號 eg. API端點URL
- 可能的身份驗證信息 eg. API Token
2. 處理
伺服器接收 Request 後,根據 API 規範回應
3. 回應 Response
伺服器像用戶端發送回應
內容:
- HTTP狀態碼 eg. 200 OK, 404 Not Found, ... etc.
- 任何被請求/修改的數據
- 額外的元數據 eg. 分頁資訊, 錯誤訊息
4. 解析
用戶端接收回應後,解析內容進行相應操作
### API 類型
#### 用途類
1. 公有 API
開法大眾,可能部分授權&費用 eg. Google Maps API
2. 私有 API
僅內部系統/特定使用者可存取
eg. 公司內部 API
3. 合作夥伴 API
僅可由特定合作對象存取
eg. 銀行 API 可能提供給合作的金融機構
4. 複合 API
兩個/以上的 API 組成,滿足複雜系統需求
#### 技術類
1. SOAP API (Simple Object Access Protocol)
簡單物件存取協定,用戶端和私服器使用 XML 交換訊息
較舊
多應用於企業及系統
2. RPC API (Remote Procedure Call)
遠端程序呼叫
用戶端在伺服器上完成功能/程序
私服器將輸出傳回用戶端
3. REST API
最常見
基於 HTTP 協定,使用 URL 來存取資源
回應格式多為 JSON/XML
伺服器依照用戶端要求啟動內部功能,並輸出資料回用戶端
通訊方式:單向 Request, Response
連線方式:每次 Request 都建立新連線
4. WebSocket API
用戶端和伺服器之間建立雙向連線
可保持久連線,即時傳輸數據
適合通訊應用 eg. 聊天室、股票市場資訊更新
基於 TCP 連線:
使用 ws:// 或 wss://(加密) 協議,建立在 TCP 上和 HTTP 協同運作
### API 功用
1. 資料交換
2. 功能存取
3. 系統整合
### ngrok
開發web後端的工具,可以快速讓外網連線到本機的伺服器
### Flask
1. 微框架
2. 基於 Werkzeug (WSGI工具箱)
**實作部分請參照影片所述 時間從47:12開始實作**