中文
SwiftChat ist eine schnelle und reaktionsfähige KI-Chat-Anwendung, die mit React Native entwickelt und von Amazon Bedrock betrieben wird. Mit seiner minimalistischen Designphilosophie und seinem robusten Datenschutz bietet es Echtzeit-Streaming-Gespräche und Funktionen zur KI-Bildgenerierung auf Android-, iOS- und macOS-Plattformen.
Hauptmerkmale:
Standardmäßig verwenden wir AWS App Runner , der häufig zum Hosten von Python-FastAPI-Servern verwendet wird und hohe Leistung, Skalierbarkeit und geringe Latenz bietet.
Alternativ bieten wir die Möglichkeit, App Runner durch AWS Lambda unter Verwendung der Funktions-URL zu ersetzen, um eine kostengünstigere Lösung zu erhalten, wie in diesem Beispiel gezeigt.
Stellen Sie sicher, dass Sie Zugriff auf die Fundamentmodelle von Amazon Bedrock haben. Die Standardeinstellungen von SwiftChat sind:
us-west-2
Claude 3.5 Sonnet
Stable Image Core 1.0
Befolgen Sie das Amazon Bedrock-Benutzerhandbuch, um Ihre Modelle zu aktivieren.
Melden Sie sich bei Ihrer AWS-Konsole an und klicken Sie mit der rechten Maustaste auf Parameter Store, um ihn in einer neuen Registerkarte zu öffnen.
Überprüfen Sie, ob Sie sich in der unterstützten Region befinden, und klicken Sie dann auf die Schaltfläche Parameter erstellen .
Geben Sie die folgenden Parameter ein und belassen Sie die anderen Optionen als Standard:
Name : Geben Sie einen Parameternamen ein (z. B. „SwiftChatAPIKey“, wird in Schritt 2 als ApiKeyParam
verwendet).
Typ : Wählen Sie SecureString
aus
Wert : Geben Sie eine beliebige Zeichenfolge ohne Leerzeichen ein. (Dies wird Ihr API Key
in Schritt 3 sein.)
Klicken Sie auf Parameter erstellen .
Klicken Sie auf eine der folgenden Schaltflächen, um den CloudFormation Stack in derselben Region zu starten, in der Ihr API-Schlüssel erstellt wurde.
App-Runner
Lambda (Hinweis: Nur zur Verwendung durch AWS-Kunden)
Klicken Sie auf Weiter . Geben Sie auf der Seite „Stapeldetails angeben“ die folgenden Informationen an:
ApiKeyParam
mit dem Parameternamen, den Sie zum Speichern des API-Schlüssels verwendet haben (z. B. „SwiftChatAPIKey“).InstanceTypeParam
entsprechend Ihren Anforderungen aus.Klicken Sie auf „Weiter “, behalten Sie die Seite „Stack-Optionen konfigurieren“ als Standard bei, lesen Sie die Funktionen und aktivieren Sie das Kontrollkästchen „Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellt“ unten.
Klicken Sie auf „Weiter“ , überprüfen Sie im Bereich „Überprüfen und erstellen“ Ihre Konfiguration und klicken Sie auf „Senden“ .
Warten Sie etwa 3–5 Minuten, bis die Bereitstellung abgeschlossen ist, klicken Sie dann auf den CloudFormation-Stack und gehen Sie zur Registerkarte „Ausgaben“ . Dort finden Sie die API-URL, die wie folgt aussieht: https://xxx.xxx.awsapprunner.com
oder https://xxx.lambda-url.xxx.on.aws
Laden Sie die App herunter
Starten Sie die App, öffnen Sie das Schubladenmenü und tippen Sie auf Einstellungen .
Fügen Sie die API URL
und API Key
ein und wählen Sie dann die Region aus.
Klicken Sie oben rechts auf das ✓-Symbol, um Ihre Konfiguration zu speichern und Ihren Chat zu starten.
Glückwunsch ? Ihre SwiftChat-App ist einsatzbereit!
Claude 3 Haiku
in Ihrer ausgewählten Region aktiviert ist) Schnelle Startgeschwindigkeit
Schnelle Anfragegeschwindigkeit
Schnelle Rendergeschwindigkeit
useMemo
und benutzerdefiniertes Caching, um einen sekundären Cache für Sitzungsinhalte zu erstellen? Schnelle Speichergeschwindigkeit
Klonen Sie zunächst dieses Repository. Der gesamte App-Code befindet sich im react-native
Ordner. Bevor Sie fortfahren, führen Sie den folgenden Befehl aus, um Abhängigkeiten herunterzuladen.
cd react-native && npm i
npm start && npm run android
npm start && npm run ios
isMac = true
in /src/App.tsx
und führen Sie npm start
aus.ios/SwiftChat.xcworkspace
um das Projekt in Ihrem Xcode zu öffnen.My Mac (Mac Catalyst)
und klicken Sie dann auf die Schaltfläche ▶ Ausführen. Bitte konfigurieren Sie zunächst Ihre API URL
und API Key
wie folgt:
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"
} '
Diese API wird zum Implementieren von Streaming-Konversationen verwendet und gibt nur den Text und die Token-Nutzung zur Anzeige zurück.
Der messages
entspricht vollständig der Nachrichtenstrukturspezifikation in der Amazon Bedrock-Converse-Stream-API. Sie können auch image
oder document
entsprechend der Spezifikation hinzufügen, um multimodale Gespräche zu unterstützen.
/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"
} '
Diese API wird zum Generieren von Bildern verwendet und gibt eine Base64-codierte Zeichenfolge des Bildes zurück.
/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"
} '
Diese API wird verwendet, um eine Liste aller Streaming-unterstützten Textmodelle und Bildgenerierungsmodelle in der angegebenen Region abzurufen.
/api/upgrade
curl " ${API_URL} /api/upgrade "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
Diese API wird verwendet, um die neue Version von SwiftChat für Android- und macOS-App-Updates zu erhalten.
Kundencode: bedrock-api.ts
Servercode: main.py
Hinweis : Überprüfen Sie nach dem Herunterladen einer neuen Version bitte die Versionshinweise, um festzustellen, ob ein API-Versionsupdate erforderlich ist.
swiftchat-api
und klicken Sie oben rechts auf die Schaltfläche „Bereitstellen“ .SwiftChatLambda-xxx
beginnt, klicken Sie auf die Schaltfläche Neues Image bereitstellen und klicken Sie auf Speichern. Weitere Informationen finden Sie unter BEITRAGEN.
Diese Bibliothek ist unter der MIT-0-Lizenz lizenziert. Siehe die LICENSE-Datei.