使用 Vercel 的 AI SDK 和 Pica 的 OneTool 建置連接到無限 API 的 AI 代理
在您的軟體專案中釋放無縫 API 互動的力量!本教學將指導您建立一個 AI 代理,該代理可以使用 Express、Vercel 的 AI SDK 和 Pica 的 AI 基礎設施輕鬆連接到多個 API。
先決條件
開始之前,請確保已安裝 Node.js 和 npm。您還需要 OpenAI API 金鑰和 Pica 金鑰。 建立一個新專案並安裝所需的套件:
npm install express @ai-sdk/openai ai @picahq/ai dotenv
接下來,在專案的根目錄中建立一個 .env
檔案並新增 API 金鑰:
<code>PICA_SECRET_KEY=your-pica-secret-key OPENAI_API_KEY=your-openai-api-key PORT=3000</code>
請記得將佔位鍵替換為您的實際鍵。
第 1 步:設定 Express 伺服器
建立server.js
並建立一個基本的 Express 伺服器來處理 AI 互動:
import express from "express"; import { openai } from "@ai-sdk/openai"; import { generateText } from "ai"; import { Pica } from "@picahq/ai"; import * as dotenv from "dotenv"; dotenv.config(); const app = express(); const port = process.env.PORT || 3000; app.use(express.json()); app.post("/api/ai", async (req, res) => { try { const { message } = req.body; const pica = new Pica(process.env.PICA_SECRET_KEY); const systemPrompt = await pica.generateSystemPrompt(); const { text } = await generateText({ model: openai("gpt-4o"), system: systemPrompt, tools: { ...pica.oneTool }, prompt: message, maxSteps: 5, }); res.setHeader("Content-Type", "application/json"); res.status(200).json({ text }); } catch (error) { console.error("Error:", error); res.status(500).json({ error: "Server error" }); } }); app.listen(port, () => { console.log(`Server listening on port ${port}`); }); export default app;
第 2 步:API 檢定
啟動你的伺服器。 您可以使用 /api/ai
或 Postman 檢定 curl
端點:
curl --location 'http://localhost:3000/api/ai' \ --header 'Content-Type: application/json' \ --data '{ "message": "What connections do I have access to?" }'
預計會收到指示沒有可用連線的回應,直到您在 Pica 儀表板中設定連線為止。
理解程式碼
程式碼使用了幾個關鍵元件:
- Express:管理伺服器和路由。
-
@ai-sdk/openai
和ai
: 處理 OpenAI API 呼叫。 -
@picahq/ai
: 提供對 Pica 基礎設施的存取。 -
dotenv
: 從.env
檔案安全載入 API 金鑰。 -
/api/ai
端點初始化Pica,產生系統提示,處理使用者的訊息,並傳回AI的回應。
第 3 步:後續步驟與部署
- 增強功能:為生產環境實現身分驗證和速率限制。
- 擴充:利用 Pica 的附加工具連接到更廣泛的 API 和資料來源。
- 部署:將您的伺服器部署到 Vercel 或 AWS 等平台,以實現更廣泛的可存取性。
結論
您已經成功為可以與眾多 API 互動的 AI 代理奠定了基礎。 在此基礎上進行擴展,以自動執行任務、處理複雜的請求以及與其他服務無縫整合。 請隨時分享您的問題或在 Twitter 上聯繫! 快樂編碼!
以上是使用 Vercel 的 AI SDK 和 Pica 的 OneTool 建置連接到無限 API 的 AI 代理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Stock Market GPT
人工智慧支援投資研究,做出更明智的決策

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

本文將介紹如何使用JavaScript實現點擊圖片切換的效果。核心思路是利用HTML5的data-*屬性存儲備用圖片路徑,並通過JavaScript監聽點擊事件,動態切換src屬性,從而實現圖片切換。本文將提供詳細的代碼示例和解釋,幫助你理解和掌握這種常用的交互效果。

首先檢查瀏覽器是否支持GeolocationAPI,若支持則調用getCurrentPosition()獲取用戶當前位置坐標,並通過成功回調獲取緯度和經度值,同時提供錯誤回調處理權限被拒、位置不可用或超時等異常,還可傳入配置選項以啟用高精度、設置超時時間和緩存有效期,整個過程需用戶授權並做好相應錯誤處理。

本文旨在解決JavaScript中通過document.getElementById()獲取DOM元素時返回null的問題。核心在於理解腳本執行時機與DOM解析狀態。通過正確放置標籤或利用DOMContentLoaded事件,可以確保在元素可用時再嘗試訪問,從而有效避免此類錯誤。

Nuxt3的CompositionAPI核心用法包括:1.definePageMeta用於定義頁面元信息,如標題、佈局和中間件,需在中直接調用,不可置於條件語句中;2.useHead用於管理頁面頭部標籤,支持靜態和響應式更新,需與definePageMeta配合實現SEO優化;3.useAsyncData用於安全地獲取異步數據,自動處理loading和error狀態,支持服務端和客戶端數據獲取控制;4.useFetch是useAsyncData與$fetch的封裝,自動推斷請求key,避免重複請

thebestatoreateamulti-linestlinginjavascriptsisisingsistisingtemplatalalswithbacktticks,whatpreserveticks,whatpreservereakeandeexactlyaswrite。

本教程詳細講解如何在JavaScript中將數字格式化為固定兩位小數的字符串,即使是整數也能顯示為"#.00"的形式。我們將重點介紹Number.prototype.toFixed()方法的使用,包括其語法、功能、示例代碼以及需要注意的關鍵點,如其返回類型始終為字符串。

要創建JavaScript中的重複間隔,需使用setInterval()函數,它會以指定毫秒數為間隔重複執行函數或代碼塊,例如setInterval(()=>{console.log("每2秒執行一次");},2000)會每隔2秒輸出一次消息,直到通過clearInterval(intervalId)清除,實際應用中可用於更新時鐘、輪詢服務器等場景,但需注意最小延遲限制、函數執行時間影響,並在不再需要時及時清除間隔以避免內存洩漏,特別是在組件卸載或頁面關閉前應清理,確保

使用ClipboardAPI的writeText方法可複製文本到剪貼板,需在安全上下文和用戶交互中調用,支持現代瀏覽器,舊版可用execCommand降級處理。
