🧠 globe_ai

globe_ai is a Dart-first package for interacting with large language models (LLMs) like OpenAI’s GPT series β€” built specifically for the Globe runtime.

This package currently only works in Globe Platform. Support for using it outside of Globe is coming soon. Internally, this package wraps the AI-SDK OpenAI to handle model execution and output parsing.

✨ Features

  • πŸ“ generateText β€” basic prompt-response text generation

  • πŸ“‘ streamText β€” stream text responses as they’re generated

  • 🧱 generateObject β€” validate structured JSON output against a schema

  • 🌊 streamObject β€” stream and validate structured data

πŸš€ Installation

Add to your pubspec.yaml:

dependencies:
  globe_ai: ^<latest-version>

Setup

Configure your model provider (e.g. OpenAI):

final model = openai.chat('gpt-4o', user: 'Chima');

or

final model = openai('gpt-4o');

Usage

πŸ”Ή Text Generation

final result = await generateText(
  model: openai.chat('gpt-4o'),
  prompt: 'What is the capital of Ghana?',
);
print(result);

πŸ”Ή Streaming Text

final stream = streamText(
  model: openai('o4-mini'),
  prompt: 'Describe the Mission burrito vs SF burrito debate.',
);

await for (final chunk in stream) {
  stdout.write(chunk);
}

πŸ”Ή Structured Object Generation

final schema = l.schema({
  'recipe': l.schema({
    'name': l.string(),
    'ingredients': l.list(validators: [
      l.schema({'name': l.string(), 'amount': l.string()}),
    ]),
    'steps': l.list(validators: [l.string()]),
  })
});

final result = await generateObject<Map<String, dynamic>>(
  model: openai('gpt-4.1'),
  prompt: 'Generate a lasagna recipe.',
  schema: schema,
);

print(result['recipe']['name']);

πŸ”Ή Streaming Structured Objects

final resultStream = streamObject<Map<String, dynamic>>(
  model: openai('gpt-4.1'),
  prompt: 'Generate a lasagna recipe.',
  schema: schema,
);

await for (final chunk in resultStream) {
  print(chunk); // Validated partial output
}

πŸ“š Roadmap

  • 🌐 Outside-Globe support β€” Coming soon

  • πŸ€– Additional model providers β€” In progress

  • πŸ§ͺ Unit tests & CI examples

  • πŸ“– Function-level API docs

πŸ› οΈ Development

  • Building the JS package

    dart pub run rps build
    
  • Generate types from protos

    dart pub run rps gen_dart
    

    and

    dart pub run rps gen_typescript