中文
SwiftChat é um aplicativo de bate-papo de IA rápido e responsivo desenvolvido com React Native e desenvolvido pela Amazon Bedrock. Com sua filosofia de design minimalista e proteção robusta de privacidade, ele oferece conversas por streaming em tempo real e recursos de geração de imagens de IA nas plataformas Android, iOS e macOS.
Principais recursos:
Por padrão, usamos o AWS App Runner , que é comumente usado para hospedar servidores Python FastAPI, oferecendo alto desempenho, escalabilidade e baixa latência.
Como alternativa, oferecemos a opção de substituir o App Runner pelo AWS Lambda usando URL de função para obter uma solução mais econômica, conforme mostrado neste exemplo.
Certifique-se de ter acesso aos modelos básicos do Amazon Bedrock. As configurações padrão do SwiftChat são:
us-west-2
Claude 3.5 Sonnet
Stable Image Core 1.0
Siga o Guia do usuário do Amazon Bedrock para habilitar seus modelos.
Faça login no console AWS e clique com o botão direito em Parameter Store para abri-lo em uma nova guia.
Verifique se você está na região suportada e clique no botão Criar parâmetro .
Preencha os parâmetros abaixo, deixando as outras opções como padrão:
Nome : Insira um nome de parâmetro (por exemplo, "SwiftChatAPIKey", será usado como ApiKeyParam
na Etapa 2).
Tipo : Selecione SecureString
Valor : insira qualquer string sem espaços (esta será sua API Key
na Etapa 3)
Clique em Criar parâmetro .
Clique em um dos botões a seguir para iniciar o CloudFormation Stack na mesma região onde sua chave de API foi criada.
Corredor de aplicativos
Lambda (Observação: somente para uso do cliente AWS)
Clique em Avançar e, na página "Especificar detalhes da pilha", forneça as seguintes informações:
ApiKeyParam
com o nome do parâmetro que você usou para armazenar a chave API (por exemplo, "SwiftChatAPIKey").InstanceTypeParam
com base em suas necessidades.Clique em Avançar , mantenha a página "Configurar opções de pilha" como padrão, leia os recursos e marque a caixa de seleção "Reconheço que o AWS CloudFormation pode criar recursos IAM" na parte inferior.
Clique em Avançar , em "Revisar e criar", revise sua configuração e clique em Enviar .
Aguarde cerca de 3 a 5 minutos para que a implantação termine, clique na pilha CloudFormation e vá para a guia Saídas . Você pode encontrar o URL da API que se parece com: https://xxx.xxx.awsapprunner.com
ou https://xxx.lambda-url.xxx.on.aws
Baixe o aplicativo
Inicie o aplicativo, abra o menu da gaveta e toque em Configurações .
Cole o API URL
e API Key
e selecione a região.
Clique no ícone ✓ superior direito para salvar sua configuração e iniciar seu bate-papo.
Parabéns? Seu aplicativo SwiftChat está pronto para uso!
Claude 3 Haiku
esteja ativado na região selecionada) Velocidade de lançamento rápida
Velocidade de solicitação rápida
Velocidade de renderização rápida
useMemo
e cache personalizado para criar cache secundário para o conteúdo da sessão? Velocidade de armazenamento rápida
Primeiro, clone este repositório. Todo o código do aplicativo está localizado na pasta react-native
. Antes de continuar, execute o seguinte comando para baixar as dependências.
cd react-native && npm i
npm start && npm run android
npm start && npm run ios
isMac = true
em /src/App.tsx
e execute npm start
.ios/SwiftChat.xcworkspace
para abrir o projeto em seu Xcode.My Mac (Mac Catalyst)
e clique no botão ▶ Executar. Primeiro, configure API URL
e 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 é usada para implementar conversas de streaming e retorna apenas o texto e o uso de token para exibição.
As messages
abaixo do corpo estão em total conformidade com a especificação da estrutura de mensagens na API de fluxo de conversação do Amazon Bedrock. Você também pode adicionar image
ou document
de acordo com a especificação para suportar conversas multimodais.
/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 é usada para gerar imagens e retorna uma string codificada em base64 da imagem.
/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 é usada para obter uma lista de todos os modelos de texto e modelos de geração de imagem com suporte para streaming na região especificada.
/api/upgrade
curl " ${API_URL} /api/upgrade "
--header ' Content-Type: application/json '
--header ' accept: application/json '
--header " Authorization: Bearer ${API_KEY} "
Esta API é usada para obter a nova versão do SwiftChat para atualizações do aplicativo Android e macOS.
Código do cliente: bedrock-api.ts
Código do servidor: main.py
Observação : após baixar uma nova versão, verifique as notas de lançamento para ver se é necessária uma atualização da versão da API.
swiftchat-api
, clique no botão superior direito Implantar .SwiftChatLambda-xxx
, clique no botão Implantar nova imagem e clique em Salvar. Consulte CONTRIBUINDO para obter mais informações.
Esta biblioteca está licenciada sob a licença MIT-0. Veja o arquivo LICENÇA.