π§ 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