中文
SwiftChat 是一款快速響應的 AI 聊天應用程序,使用 React Native 開發,由 Amazon Bedrock 提供支援。憑藉極簡的設計理念和強大的隱私保護,它可以跨 Android、iOS 和 macOS 平台提供即時串流對話和 AI 圖像生成功能。
主要特點:
預設情況下,我們使用AWS App Runner ,它通常用於託管 Python FastAPI 伺服器,提供高效能、可擴充性和低延遲。
或者,我們提供了使用 Function URL 將 App Runner 替換為AWS Lambda 的選項,以獲得更具成本效益的解決方案,如本範例所示。
確保您有權存取 Amazon Bedrock 基礎模型。 SwiftChat 預設為:
us-west-2
Claude 3.5 Sonnet
Stable Image Core 1.0
按照 Amazon Bedrock 使用者指南啟用您的模型。
登入您的 AWS 控制台並右鍵單擊 Parameter Store 以在新分頁中將其開啟。
檢查您是否位於支援的區域,然後按一下「建立參數」按鈕。
填寫以下參數,其他選項保留預設值:
名稱:輸入參數名稱(例如“SwiftChatAPIKey”,將在步驟 2 中用作ApiKeyParam
)。
類型:選擇SecureString
值:輸入API Key
不帶空格的字串。
點選建立參數。
按一下下列按鈕之一可在建立 API 金鑰的相同區域中啟動 CloudFormation Stack。
應用程式運行器
Lambda (注意:僅供 AWS 客戶使用)
按一下「下一步」 ,在「指定堆疊詳細資料」頁面上,提供以下資訊:
ApiKeyParam
(例如「SwiftChatAPIKey」)。InstanceTypeParam
。按一下下一步,將「配置堆疊選項」頁面保留為預設值,閱讀功能並選取底部的「我承認 AWS CloudFormation 可能會建立 IAM 資源」複選框。
按一下「下一步」 ,在「檢查並建立」中檢查您的配置並按一下「提交」 。
等待大約 3-5 分鐘部署完成,然後點擊 CloudFormation 堆疊並前往「輸出」選項卡,您可以找到以下API URL :https: https://xxx.xxx.awsapprunner.com
或https://xxx.lambda-url.xxx.on.aws
下載應用程式
啟動應用程序,打開抽屜選單,然後點擊“設定” 。
貼上API URL
和API Key
然後選擇區域。
點擊右上角的 ✓ 圖示儲存您的配置並開始聊天。
恭喜?您的 SwiftChat 應用程式已準備好使用!
Claude 3 Haiku
) 啟動速度快
請求速度快
渲染速度快
useMemo
和自訂快取為會話內容建立二級緩存?儲存速度快
首先,克隆這個儲存庫。所有應用程式程式碼都位於react-native
資料夾中。在繼續之前,請執行以下命令來下載依賴項。
cd react-native && npm i
npm start && npm run android
npm start && npm run ios
/src/App.tsx
中isMac = true
並執行npm start
。ios/SwiftChat.xcworkspace
在 Xcode 中開啟該項目。My Mac (Mac Catalyst)
然後按一下 ▶ 運作按鈕。 首先,請設定您的API URL
和API Key
如下所示:
export API_URL= < API URL >
export API_KEY= < API Key >
/api/converse
curl -N " ${API_URL} /api/converse "
--header ' Content-Type: application/json '
--header " Authorization: Bearer ${API_KEY} "
--data ' {
"messages": [
{
"role": "user",
"content": [
{
"text": "Hi"
}
]
}
],
"modelId": "anthropic.claude-3-5-sonnet-20240620-v1:0",
"region": "us-west-2"
} '
此API用於實現串流對話,僅傳回用於顯示的文字和令牌使用情況。
body 下的messages
完全符合 Amazon Bedrock converse Stream API 中的訊息結構規格。您還可以根據規範添加image
或document
以支援多模態對話。
/api/image
curl " ${API_URL} /api/image "
--header ' Content-Type: application/json '
--header " Authorization: Bearer ${API_KEY} "
--data ' {
"prompt": "Beautiful countryside",
"modelId": "stability.stable-image-core-v1:0",
"region": "us-west-2",
"width": "1024",
"height": "1024"
} '
此API用於產生映像並傳回影像的base64編碼字串。
/api/models
curl " ${API_URL} /api/models "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
--data ' {
"region": "us-west-2"
} '
此API用於取得指定區域內所有支援串流的文字模型和影像生成模型的清單。
/api/upgrade
curl " ${API_URL} /api/upgrade "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
此 API 用於取得 Android 和 macOS 應用程式更新的新版本 SwiftChat。
客戶端程式碼:bedrock-api.ts
伺服器程式碼:main.py
注意:下載新版本後,請檢查發行說明以了解是否需要 API 版本更新。
swiftchat-api
,點擊右上角的Deploy按鈕。SwiftChatLambda-xxx
開頭的 Lambda,按一下部署新映像按鈕,然後按一下儲存。 請參閱貢獻以獲取更多資訊。
該庫根據 MIT-0 許可證獲得許可。請參閱許可證文件。