中文
SwiftChat es una aplicación de chat de IA rápida y receptiva desarrollada con React Native y con tecnología de Amazon Bedrock. Con su filosofía de diseño minimalista y su sólida protección de la privacidad, ofrece conversaciones en tiempo real y capacidades de generación de imágenes de IA en plataformas Android, iOS y macOS.
Características clave:
De forma predeterminada, utilizamos AWS App Runner , que se usa comúnmente para alojar servidores Python FastAPI y ofrece alto rendimiento, escalabilidad y baja latencia.
Alternativamente, ofrecemos la opción de reemplazar App Runner con AWS Lambda usando la URL de función para obtener una solución más rentable, como se muestra en este ejemplo.
Asegúrese de tener acceso a los modelos de cimientos de Amazon Bedrock. La configuración predeterminada de SwiftChat es:
us-west-2
Claude 3.5 Sonnet
Stable Image Core 1.0
Siga la Guía del usuario de Amazon Bedrock para habilitar sus modelos.
Inicie sesión en su consola de AWS y haga clic derecho en Parameter Store para abrirlo en una nueva pestaña.
Compruebe si se encuentra en la región admitida y luego haga clic en el botón Crear parámetro .
Complete los parámetros a continuación, dejando otras opciones por defecto:
Nombre : ingrese un nombre de parámetro (por ejemplo, "SwiftChatAPIKey", se usará como ApiKeyParam
en el paso 2).
Tipo : seleccione SecureString
Valor : ingrese cualquier cadena sin espacios (esta será su API Key
en el paso 3).
Haga clic en Crear parámetro .
Haga clic en uno de los siguientes botones para iniciar CloudFormation Stack en la misma región donde se creó su clave API.
Corredor de aplicaciones
Lambda (Nota: solo para uso de clientes de AWS)
Haga clic en Siguiente . En la página "Especificar detalles de la pila", proporcione la siguiente información:
ApiKeyParam
con el nombre del parámetro que utilizó para almacenar la clave API (por ejemplo, "SwiftChatAPIKey").InstanceTypeParam
según sus necesidades.Haga clic en Siguiente , mantenga la página "Configurar opciones de pila" como predeterminada, lea las capacidades y marque la casilla "Reconozco que AWS CloudFormation podría crear recursos de IAM" en la parte inferior.
Haga clic en Siguiente , en "Revisar y crear", revise su configuración y haga clic en Enviar .
Espere entre 3 y 5 minutos para que finalice la implementación, luego haga clic en la pila de CloudFormation y vaya a la pestaña Salidas . Puede encontrar la URL de la API que se ve así: https://xxx.xxx.awsapprunner.com
o https://xxx.lambda-url.xxx.on.aws
Descarga la aplicación
Inicie la aplicación, abra el menú del cajón y toque Configuración .
Pegue la API URL
y API Key
y luego seleccione la Región.
Haga clic en el ícono ✓ superior derecho para guardar su configuración e iniciar su chat.
Felicitaciones? ¡Tu aplicación SwiftChat está lista para usar!
Claude 3 Haiku
esté habilitado en la región seleccionada) Velocidad de lanzamiento rápida
Velocidad de solicitud rápida
Velocidad de renderizado rápida
useMemo
y almacenamiento en caché personalizado para crear un caché secundario para el contenido de la sesión? Velocidad de almacenamiento rápida
Primero, clona este repositorio. Todo el código de la aplicación se encuentra en la carpeta react-native
. Antes de continuar, ejecute el siguiente comando para descargar las dependencias.
cd react-native && npm i
npm start && npm run android
npm start && npm run ios
isMac = true
en /src/App.tsx
y ejecute npm start
.ios/SwiftChat.xcworkspace
para abrir el proyecto en su Xcode.My Mac (Mac Catalyst)
y luego haga clic en el botón ▶ Ejecutar. Primero, configure su API URL
y API Key
como:
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"
} '
Esta API se utiliza para implementar conversaciones de transmisión y solo devuelve el uso de texto y token para su visualización.
Los messages
debajo del cuerpo cumplen totalmente con la especificación de estructura de mensajes en la API de transmisión inversa de Amazon Bedrock. También puede agregar image
o document
según la especificación para admitir conversaciones 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"
} '
Esta API se utiliza para generar imágenes y devuelve una cadena codificada en base64 de la imagen.
/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"
} '
Esta API se utiliza para obtener una lista de todos los modelos de texto y de generación de imágenes compatibles con streaming en la región especificada.
/api/upgrade
curl " ${API_URL} /api/upgrade "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
Esta API se utiliza para obtener la nueva versión de SwiftChat para actualizaciones de la aplicación Android y macOS.
Código de cliente: bedrock-api.ts
Código del servidor: main.py
Nota : después de descargar una nueva versión, consulte las notas de la versión para ver si se requiere una actualización de la versión API.
swiftchat-api
, haga clic en el botón Implementar en la parte superior derecha.SwiftChatLambda-xxx
, haga clic en el botón Implementar nueva imagen y haga clic en Guardar. Consulte CONTRIBUCIÓN para obtener más información.
Esta biblioteca tiene la licencia MIT-0. Ver el archivo de LICENCIA.