中文
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
值:输入任何不带空格的字符串。(这将是第 3 步中的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 许可证获得许可。请参阅许可证文件。