Integre agentes de áudio e vídeo da Real-time Conversational AI ao seu aplicativo iOS.
Descrição do código-fonte
Download do código-fonte
Baixe o código-fonte no projeto open source do GitHub.
Estrutura do código-fonte
├── iOS // Root directory for the iOS platform
│ ├── AUIAICall.podspec // Pod description file
│ ├── Source // Source code files
│ ├── Resources // Resource files
│ ├── Example // Demo code
│ ├── AUIBaseKits // Basic UI components
│ ├── README.md // Readme
Requisitos de ambiente
Xcode 16.0 ou superior. Recomendamos a versão oficial mais recente.
CocoaPods 1.9.3 ou superior.
Dispositivo físico iOS com versão 11,0 ou posterior.
Pré-requisitos
Desenvolva as operações de API relevantes em seu servidor ou implante o código-fonte do servidor fornecido. Para mais informações, consulte Implantar um projeto.
Executar a demonstração
Baixe o código-fonte e acesse a pasta Example.
Na pasta Example, execute o comando
pod install --repo-updatepara instalar as dependências do SDK.Abra o arquivo de projeto
AUIAICallExample.xcworkspacee modifique o ID do pacote.-
Abra o arquivo de configuração de cenário do agente
/Resources/AUIAIMain.bundle/agent_scenes.json. Especifique o ID do agente e a região conforme o tipo de agente. Por exemplo, para configurar um agente de voz, localize o nó Scenes ondeagent_typeéVoiceAgente preencha os camposagent_ideregion.// The following example shows how to configure a voice call agent { "agent_type": "VoiceAgent", "scenes": [ { "agent_id": "<Voice call agent ID>", "region": "<Region where the voice call agent ID is located>", "title": "Voice Call", "tags": [], "limit_seconds": 1800, "description": "", "asr_model_id": "xxx", "tts_model_id": "xxx", "voice_styles": [] } ] }NotaPara testar apenas um tipo de agente, basta definir os valores dos campos
agent_ideregioncorrespondentes. Para o valor deregion, consulte a coluna Region ID na tabela a seguir.Nome da região
Region ID
China (Hangzhou)
cn-hangzhou
China (Shanghai)
cn-shanghai
China (Beijing)
cn-beijing
China (Shenzhen)
cn-shenzhen
Singapura
ap-southeast-1
-
Após configurar o agente, inicie-o usando um dos métodos abaixo:
-
Com AppServer implantado: Se você já implantou o código-fonte do AppServer fornecido pela Alibaba Cloud, acesse
AUIAICallAppServer.swifte defina o nome de domínio do seu servidor.// AUIAICallAppServer.swift public let AICallServerDomain = "Your application server domain name" -
Sem AppServer implantado: Para executar rapidamente a demonstração sem implantar o AppServer, acesse
AUIAICallAuthTokenHelper.swift. Configure o parâmetroEnableDevelopToken, obtenha o App ID e a App Key do aplicativo ARTC no console e gere o token de autenticação diretamente no aplicativo.NotaEste método exige a incorporação da sua AppKey e de outras informações sensíveis no aplicativo. Ele se destina exclusivamente a testes e desenvolvimento. Nunca utilize este método em ambiente de produção. Expor sua AppKey no lado do cliente gera um grave risco de segurança.
// AUIAICallAuthTokenHelper.swift @objcMembers public class AUIAICallAuthTokenHelper: NSObject { // Set to true to enable Develop mode private static let EnableDevelopToken: Bool = true // Copy the RTCAppId from the console private static let RTCDevelopAppId: String = "RTC AppId used by the agent" // Copy the RTCAppKey from the console private static let RTCDevelopAppKey: String = "RTC AppKey used by the agent" ... }Para obter o AppID e a AppKey do aplicativo ARTC:
-
Acesse o console IMS e clique em seu agente de IA para abrir a página de detalhes.
Na aba Basic Information, localize a seção Workflow Configuration e anote o RTC App ID listado em ARTC application.
-
Clique no RTC App ID para abrir o console do ApsaraVideo Live e obter o App ID e a AppKey.
Na página Application Management, clique em seu aplicativo, acesse a aba Basic Information e copie o App ID e a AppKey.
-
-
Selecione o target Example e, em seguida, compile e execute o projeto.
Desenvolver rapidamente seu próprio recurso de chamada de IA
Integre o AUIAICall ao seu aplicativo para habilitar recursos de chamada de áudio e vídeo com agentes.
Integrar o código-fonte
Baixe o repositório e copie a pasta iOS para o diretório de código do seu aplicativo. Renomeie a pasta para AUIAICall, coloque-a no mesmo nível do seu Podfile e exclua as pastas Example e AICallKit.
-
Modifique o Podfile para importar as seguintes dependências:
AliVCSDK_ARTC: SDK cliente para interação de áudio e vídeo em tempo real. Também é possível usar AliVCSDK_Standard ou AliVCSDK_InteractiveLive. Para mais informações, consulte iOS.
ARTCAICallKit: SDK para o cenário de chamadas da Real-time Conversational AI.
AUIFoundation: Componentes básicos de interface do usuário.
AUIAICall: Código-fonte do componente de interface do usuário para o cenário de chamada de IA.
# Requires iOS 11.0 or later platform :ios, '11.0' target 'Your App target' do # Integrate the appropriate audio and video terminal SDK based on your business scenario pod 'AliVCSDK_ARTC', '~> x.x.x' # Real-time Conversational AI call scenario SDK pod 'ARTCAICallKit', '~> x.x.x' # Basic UI component source code pod 'AUIFoundation', :path => "./AUIAICall/AUIBaseKits/AUIFoundation/", :modular_headers => true # AI call scenario UI component source code pod 'AUIAICall', :path => "./AUIAICall/" endNotaVersão mais recente do SDK ARTC:
Versão mais recente do SDK AICallKit: .
Execute o comando
pod install --repo-update.A integração do código-fonte está concluída.
Configuração do projeto
Adicione permissões de microfone e câmera. Abra o arquivo
info.plistdo projeto e adicione a permissão de microfone (NSMicrophoneUsageDescription), a permissão de câmera (NSCameraUsageDescription) e a permissão da biblioteca de fotos (NSPhotoLibraryUsageDescription).Nas configurações do projeto, na aba Signing & Capabilities, ative Background Modes. Caso não habilite os modos em segundo plano, será necessário gerenciar manualmente o encerramento das chamadas quando o aplicativo entrar em segundo plano.
Configuração do código-fonte
Conclua as etapas de pré-requisito.
-
Acesse
AUIAICallAppServer.swifte defina o nome de domínio do seu servidor.// AUIAICallAppServer.swift public let AICallServerDomain = "Your application server domain name"NotaSe você ainda não implantou o AppServer, pode gerar um token de autenticação no aplicativo para testar rapidamente a demonstração. Para mais informações, consulte Sem AppServer implantado.
API de chamada
Após concluir as etapas anteriores, inicie chamadas de IA a partir de outros módulos ou da página inicial do seu aplicativo utilizando as interfaces do componente. Também é possível modificar o código-fonte para atender aos requisitos do seu negócio.
// Import components
import AUIAICall
import ARTCAICallKit
import AUIFoundation
// Check if microphone permission is enabled
AVDeviceAuth.checkMicAuth { auth in
if auth == false {
return
}
// For userId, use the user ID after your app logs on
let userId = "xxx"
// Build the controller using userId
let controller = AUIAICallController(userId: userId)
// Set the agent ID. It cannot be nil.
controller.config.agentId = "xxx"
// Set the call type (voice, digital human, or visual understanding). It must match the agent ID type.
controller.config.agentType = agentType
// The region where the agent is located. It cannot be nil.
controller.config.region = "xx-xxx"
// Create the call ViewController
let vc = AUIAICallViewController(controller)
// Open the call interface in full screen
vc.modalPresentationStyle = .fullScreen
vc.modalTransitionStyle = .coverVertical
vc.modalPresentationCapturesStatusBarAppearance = true
self.present(vc, animated: true)
}