embed method
- String text
Generates embeddings for the given text.
Returns a list of doubles representing the vector embedding. Throws UnsupportedError if the provider doesn't support embeddings.
Implementation
@override
Future<List<double>> embed(String text) async {
final url =
'$_baseUrl/models/text-embedding-004:embedContent?key=${config.apiKey}';
final response = await _httpClient.post(
Uri.parse(url),
headers: {'Content-Type': 'application/json'},
body: jsonEncode({
'model': 'models/text-embedding-004',
'content': {
'parts': [
{'text': text}
]
},
}),
);
final json = jsonDecode(response.body) as Map<String, dynamic>;
if (response.statusCode != 200) {
throw _parseError(response.statusCode, json);
}
final embedding = json['embedding'] as Map<String, dynamic>;
return (embedding['values'] as List).cast<double>();
}