trail_ai 1.0.1 copy "trail_ai: ^1.0.1" to clipboard
trail_ai: ^1.0.1 copied to clipboard

A Flutter package for building AI-powered applications with support for both online (Google Gemini) and offline (Gemma) language models. Features connectivity-aware model switching, streaming response [...]

trail_ai #

trail_ai is a reusable Flutter package that gives you one agent API for:

  • Online chat with Gemini
  • Offline chat with a local model via flutter_gemma
  • Auto online/offline switching from network connectivity
  • Optional fallback to offline when online fails
  • Streaming and non-streaming responses

Quick start #

Add dependency:

dependencies:
	trail_ai:

Create and initialize an agent:

import 'package:trail_ai/trail_ai.dart';

final agent = TrailAiAgent(
	config: const TrailAiConfig(
		geminiApiKey: 'YOUR_GEMINI_API_KEY',
		agentContext: 'You are a concise travel assistant.',
	),
);

await agent.initialize();

Ask a question and get a complete response:

final result = await agent.ask('Plan a 3-day trip to Jaipur');
print(result.source); // TrailAiSource.online or TrailAiSource.offline
print(result.text);

Ask with streaming chunks:

await for (final chunk in agent.askStream('Best places to visit in Udaipur?')) {
	print(chunk.text);
}

Dispose when done:

await agent.dispose();

API overview #

  • TrailAiConfig: setup key, model names/urls, default behavior context
  • TrailAiAgent.initialize(): starts Gemini, connectivity listener, optional offline preload
  • TrailAiAgent.ask() / askStream(): send questions with optional per-call context override
  • onlineStatusStream: emits online/offline state changes
  • downloadProgressStream: emits local model download state/progress

Behavior context #

You can provide context in two ways:

  • Global context in TrailAiConfig.agentContext
  • Request-level context in ask(..., context: '...')

Request-level context overrides global context for that question.

Notes #

  • Offline responses require the local model to be downloaded and ready.
  • If online fails and fallbackToOfflineOnOnlineFailure is true, the agent tries local model automatically.
1
likes
120
points
170
downloads

Documentation

API reference

Publisher

verified publisherabhijithrnair.me

Weekly Downloads

A Flutter package for building AI-powered applications with support for both online (Google Gemini) and offline (Gemma) language models. Features connectivity-aware model switching, streaming responses, and automatic offline model management.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

connectivity_plus, flutter, flutter_gemma, google_generative_ai

More

Packages that depend on trail_ai