google_multimodal_assistant_real_time_with_daily 1.0.0 copy "google_multimodal_assistant_real_time_with_daily: ^1.0.0" to clipboard
google_multimodal_assistant_real_time_with_daily: ^1.0.0 copied to clipboard

PlatformiOS

A Flutter plugin for integrating Pipecat's iOS SDK with real-time audio and video communication.

example/lib/main.dart

import 'package:google_multimodal_assistant_real_time_with_daily/google_multimodal_assistant_real_time_with_daily.dart';

class SimpleAssistantExample {
  final assistant = GoogleMultimodalAssistantRealTimeWithDaily();

  Future<void> setup() async {
    // Inicializar el asistente
    await assistant.initialize(
      baseUrl: 'https://api.pipecat.ai', // URL base de Pipecat
      enableMic: true,
      enableCamera: true,
      config: {
        // Configuración de Daily para WebRTC
        'service': 'daily',
        'options': [
          {
            'name': 'url',
            'value':
                'https://your-domain.daily.co/room-name' // Tu URL de sala Daily
          },
          {
            'name': 'token',
            'value': 'your-daily-token' // Tu token de Daily
          }
        ],
        // Configuración del modelo LLM
        'service': 'llm',
        'options': [
          {'name': 'model', 'value': 'meta-llama/Llama-2-7b-chat-hf'},
          {
            'name': 'messages',
            'value': [
              {'role': 'system', 'content': 'You are a helpful assistant.'}
            ]
          }
        ],
        // Configuración de Text-to-Speech si lo necesitas
        'service': 'tts',
        'options': [
          {'name': 'voice', 'value': 'your-voice-id'}
        ]
      },
    );

    // Iniciar la sesión
    await assistant.startSession();

    // Escuchar diferentes tipos de eventos
    assistant.eventStream.listen((event) {
      if (event is Map<String, dynamic>) {
        switch (event['type']) {
          case 'transcript':
            print('Transcripción: ${event['text']}');
            break;
          case 'tracks':
            print('Cambios en tracks de media: ${event['tracks']}');
            break;
          case 'participant':
            print('Actualización de participante: ${event['participant']}');
            break;
          default:
            print('Evento recibido: $event');
        }
      }
    });

    // Ejemplo de interacción
    await assistant.sendMessage('Hello, assistant!');
  }

  // Métodos adicionales útiles
  Future<void> toggleMicrophone(bool enabled) async {
    await assistant.setMicrophoneEnabled(enabled);
  }

  Future<void> toggleCamera(bool enabled) async {
    await assistant.setCameraEnabled(enabled);
  }

  Future<void> sendMessage(String message) async {
    await assistant.sendMessage(message);
  }

  Future<void> disconnect() async {
    await assistant.disconnect();
  }
}

// Uso del ejemplo
void main() async {
  final example = SimpleAssistantExample();

  try {
    await example.setup();

    // Ejemplo de uso
    await example.sendMessage("¿Cómo puedo ayudarte hoy?");

    // Recuerda desconectar cuando termines
    await example.disconnect();
  } catch (e) {
    print('Error: $e');
  }
}
1
likes
140
points
18
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter plugin for integrating Pipecat's iOS SDK with real-time audio and video communication.

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on google_multimodal_assistant_real_time_with_daily

Packages that implement google_multimodal_assistant_real_time_with_daily