Chine
SwiftChat est une application de chat IA rapide et réactive développée avec React Native et optimisée par Amazon Bedrock. Avec sa philosophie de conception minimaliste et sa solide protection de la vie privée, il offre des conversations en streaming en temps réel et des capacités de génération d'images IA sur les plates-formes Android, iOS et macOS.
Principales caractéristiques :
Par défaut, nous utilisons AWS App Runner , qui est couramment utilisé pour héberger les serveurs Python FastAPI, offrant des performances élevées, une évolutivité et une faible latence.
Alternativement, nous proposons la possibilité de remplacer App Runner par AWS Lambda à l'aide de Function URL pour une solution plus rentable, comme le montre cet exemple.
Assurez-vous d'avoir accès aux modèles de fondation Amazon Bedrock. Les paramètres par défaut de SwiftChat sont :
us-west-2
Claude 3.5 Sonnet
Stable Image Core 1.0
Suivez le guide de l'utilisateur Amazon Bedrock pour activer vos modèles.
Connectez-vous à votre console AWS et cliquez avec le bouton droit sur Parameter Store pour l'ouvrir dans un nouvel onglet.
Vérifiez si vous êtes dans la région prise en charge, puis cliquez sur le bouton Créer un paramètre .
Remplissez les paramètres ci-dessous, en laissant les autres options par défaut :
Nom : saisissez un nom de paramètre (par exemple, "SwiftChatAPIKey", sera utilisé comme ApiKeyParam
à l'étape 2).
Tapez : Sélectionnez SecureString
Valeur : saisissez n'importe quelle chaîne sans espaces. (ce sera votre API Key
à l'étape 3)
Cliquez sur Créer un paramètre .
Cliquez sur l'un des boutons suivants pour lancer la pile CloudFormation dans la même région où votre clé API a été créée.
Coureur d'application
Lambda (Remarque : à l'usage des clients AWS uniquement)
Cliquez sur Suivant . Sur la page « Spécifier les détails de la pile », fournissez les informations suivantes :
ApiKeyParam
avec le nom du paramètre que vous avez utilisé pour stocker la clé API (par exemple, "SwiftChatAPIKey").InstanceTypeParam
en fonction de vos besoins.Cliquez sur Suivant , conservez la page « Configurer les options de pile » par défaut, lisez les fonctionnalités et cochez la case « Je reconnais qu'AWS CloudFormation peut créer des ressources IAM » en bas.
Cliquez sur Suivant , dans la section « Vérifier et créer », vérifiez votre configuration et cliquez sur Soumettre .
Attendez environ 3 à 5 minutes pour la fin du déploiement, puis cliquez sur la pile CloudFormation et accédez à l'onglet Sorties , vous pouvez trouver l' URL de l'API qui ressemble à : https://xxx.xxx.awsapprunner.com
ou https://xxx.lambda-url.xxx.on.aws
Téléchargez l'application
Lancez l'application, ouvrez le menu du tiroir et appuyez sur Paramètres .
Collez l' API URL
et API Key
puis sélectionnez la région.
Cliquez sur l'icône ✓ en haut à droite pour enregistrer votre configuration et démarrer votre discussion.
Félicitations ? Votre application SwiftChat est prête à être utilisée !
Claude 3 Haiku
est activé dans la région sélectionnée) Vitesse de lancement rapide
Vitesse de demande rapide
Vitesse de rendu rapide
useMemo
et de la mise en cache personnalisée pour créer un cache secondaire pour le contenu de la session? Vitesse de stockage rapide
Tout d’abord, clonez ce référentiel. Tout le code de l'application se trouve dans le dossier react-native
. Avant de continuer, exécutez la commande suivante pour télécharger les dépendances.
cd react-native && npm i
npm start && npm run android
npm start && npm run ios
isMac = true
dans /src/App.tsx
et exécutez npm start
.ios/SwiftChat.xcworkspace
pour ouvrir le projet dans votre Xcode.My Mac (Mac Catalyst)
puis cliquez sur le bouton ▶ Exécuter. Tout d'abord, veuillez configurer votre API URL
et API Key
comme :
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"
} '
Cette API est utilisée pour implémenter des conversations en streaming et renvoie uniquement le texte et l'utilisation du jeton pour l'affichage.
Les messages
sous le corps sont entièrement conformes à la spécification de structure des messages dans l'API de flux converse d'Amazon Bedrock. Vous pouvez également ajouter image
ou document
selon les spécifications pour prendre en charge les conversations multimodales.
/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"
} '
Cette API est utilisée pour générer des images et renvoie une chaîne codée en base64 de l'image.
/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"
} '
Cette API est utilisée pour obtenir une liste de tous les modèles de texte et modèles de génération d'images pris en charge par le streaming dans la région spécifiée.
/api/upgrade
curl " ${API_URL} /api/upgrade "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
Cette API est utilisée pour obtenir la nouvelle version de SwiftChat pour les mises à jour de l'application Android et macOS.
Code client : bedrock-api.ts
Code du serveur : main.py
Remarque : Après avoir téléchargé une nouvelle version, veuillez consulter les notes de version pour voir si une mise à jour de la version de l'API est requise.
swiftchat-api
, cliquez sur le bouton Déployer en haut à droite.SwiftChatLambda-xxx
, cliquez sur le bouton Déployer une nouvelle image et cliquez sur Enregistrer. Voir CONTRIBUTION pour plus d'informations.
Cette bibliothèque est sous licence MIT-0. Voir le fichier LICENCE.