Skip to content

Commit

Permalink
feat(openai_dart): Support new embeddings API functionality (#200)
Browse files Browse the repository at this point in the history
Minor changes
  • Loading branch information
davidmigloz committed Nov 7, 2023
1 parent f12f6f5 commit 9b43d85
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 24 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class CreateEmbeddingResponse with _$CreateEmbeddingResponse {
required String model,

/// The object type, which is always "list".
required String object,
required CreateEmbeddingResponseObject object,

/// The usage information for the request.
required EmbeddingUsage usage,
Expand Down Expand Up @@ -55,3 +55,13 @@ class CreateEmbeddingResponse with _$CreateEmbeddingResponse {
};
}
}

// ==========================================
// ENUM: CreateEmbeddingResponseObject
// ==========================================

/// The object type, which is always "list".
enum CreateEmbeddingResponseObject {
@JsonValue('list')
list,
}
12 changes: 11 additions & 1 deletion packages/openai_dart/lib/src/generated/schema/embedding.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class Embedding with _$Embedding {
@_EmbeddingVectorConverter() required EmbeddingVector embedding,

/// The object type, which is always "embedding".
required String object,
required EmbeddingObject object,
}) = _Embedding;

/// Object construction from a JSON representation
Expand Down Expand Up @@ -95,3 +95,13 @@ class _EmbeddingVectorConverter
};
}
}

// ==========================================
// ENUM: EmbeddingObject
// ==========================================

/// The object type, which is always "embedding".
enum EmbeddingObject {
@JsonValue('embedding')
embedding,
}
33 changes: 17 additions & 16 deletions packages/openai_dart/lib/src/generated/schema/schema.freezed.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11503,7 +11503,8 @@ mixin _$CreateEmbeddingResponse {
String get model => throw _privateConstructorUsedError;

/// The object type, which is always "list".
String get object => throw _privateConstructorUsedError;
CreateEmbeddingResponseObject get object =>
throw _privateConstructorUsedError;

/// The usage information for the request.
EmbeddingUsage get usage => throw _privateConstructorUsedError;
Expand All @@ -11523,7 +11524,7 @@ abstract class $CreateEmbeddingResponseCopyWith<$Res> {
$Res call(
{List<Embedding> data,
String model,
String object,
CreateEmbeddingResponseObject object,
EmbeddingUsage usage});

$EmbeddingUsageCopyWith<$Res> get usage;
Expand Down Expand Up @@ -11560,7 +11561,7 @@ class _$CreateEmbeddingResponseCopyWithImpl<$Res,
object: null == object
? _value.object
: object // ignore: cast_nullable_to_non_nullable
as String,
as CreateEmbeddingResponseObject,
usage: null == usage
? _value.usage
: usage // ignore: cast_nullable_to_non_nullable
Expand Down Expand Up @@ -11589,7 +11590,7 @@ abstract class _$$CreateEmbeddingResponseImplCopyWith<$Res>
$Res call(
{List<Embedding> data,
String model,
String object,
CreateEmbeddingResponseObject object,
EmbeddingUsage usage});

@override
Expand Down Expand Up @@ -11626,7 +11627,7 @@ class __$$CreateEmbeddingResponseImplCopyWithImpl<$Res>
object: null == object
? _value.object
: object // ignore: cast_nullable_to_non_nullable
as String,
as CreateEmbeddingResponseObject,
usage: null == usage
? _value.usage
: usage // ignore: cast_nullable_to_non_nullable
Expand Down Expand Up @@ -11666,7 +11667,7 @@ class _$CreateEmbeddingResponseImpl extends _CreateEmbeddingResponse {

/// The object type, which is always "list".
@override
final String object;
final CreateEmbeddingResponseObject object;

/// The usage information for the request.
@override
Expand Down Expand Up @@ -11712,7 +11713,7 @@ abstract class _CreateEmbeddingResponse extends CreateEmbeddingResponse {
const factory _CreateEmbeddingResponse(
{required final List<Embedding> data,
required final String model,
required final String object,
required final CreateEmbeddingResponseObject object,
required final EmbeddingUsage usage}) = _$CreateEmbeddingResponseImpl;
const _CreateEmbeddingResponse._() : super._();

Expand All @@ -11730,7 +11731,7 @@ abstract class _CreateEmbeddingResponse extends CreateEmbeddingResponse {
@override

/// The object type, which is always "list".
String get object;
CreateEmbeddingResponseObject get object;
@override

/// The usage information for the request.
Expand All @@ -11755,7 +11756,7 @@ mixin _$Embedding {
EmbeddingVector get embedding => throw _privateConstructorUsedError;

/// The object type, which is always "embedding".
String get object => throw _privateConstructorUsedError;
EmbeddingObject get object => throw _privateConstructorUsedError;

Map<String, dynamic> toJson() => throw _privateConstructorUsedError;
@JsonKey(ignore: true)
Expand All @@ -11771,7 +11772,7 @@ abstract class $EmbeddingCopyWith<$Res> {
$Res call(
{int index,
@_EmbeddingVectorConverter() EmbeddingVector embedding,
String object});
EmbeddingObject object});

$EmbeddingVectorCopyWith<$Res> get embedding;
}
Expand Down Expand Up @@ -11805,7 +11806,7 @@ class _$EmbeddingCopyWithImpl<$Res, $Val extends Embedding>
object: null == object
? _value.object
: object // ignore: cast_nullable_to_non_nullable
as String,
as EmbeddingObject,
) as $Val);
}

Expand All @@ -11829,7 +11830,7 @@ abstract class _$$EmbeddingImplCopyWith<$Res>
$Res call(
{int index,
@_EmbeddingVectorConverter() EmbeddingVector embedding,
String object});
EmbeddingObject object});

@override
$EmbeddingVectorCopyWith<$Res> get embedding;
Expand Down Expand Up @@ -11862,7 +11863,7 @@ class __$$EmbeddingImplCopyWithImpl<$Res>
object: null == object
? _value.object
: object // ignore: cast_nullable_to_non_nullable
as String,
as EmbeddingObject,
));
}
}
Expand Down Expand Up @@ -11890,7 +11891,7 @@ class _$EmbeddingImpl extends _Embedding {

/// The object type, which is always "embedding".
@override
final String object;
final EmbeddingObject object;

@override
String toString() {
Expand Down Expand Up @@ -11930,7 +11931,7 @@ abstract class _Embedding extends Embedding {
const factory _Embedding(
{required final int index,
@_EmbeddingVectorConverter() required final EmbeddingVector embedding,
required final String object}) = _$EmbeddingImpl;
required final EmbeddingObject object}) = _$EmbeddingImpl;
const _Embedding._() : super._();

factory _Embedding.fromJson(Map<String, dynamic> json) =
Expand All @@ -11948,7 +11949,7 @@ abstract class _Embedding extends Embedding {
@override

/// The object type, which is always "embedding".
String get object;
EmbeddingObject get object;
@override
@JsonKey(ignore: true)
_$$EmbeddingImplCopyWith<_$EmbeddingImpl> get copyWith =>
Expand Down
17 changes: 13 additions & 4 deletions packages/openai_dart/lib/src/generated/schema/schema.g.dart

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions packages/openai_dart/oas/openapi_curated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1187,6 +1187,7 @@ components:
object:
type: string
description: The object type, which is always "list".
enum: [list]
usage:
$ref: "#/components/schemas/EmbeddingUsage"
required:
Expand Down Expand Up @@ -1216,6 +1217,7 @@ components:
object:
type: string
description: The object type, which is always "embedding".
enum: [embedding]
required:
- index
- object
Expand Down
4 changes: 2 additions & 2 deletions packages/openai_dart/test/openai_client_embeddings_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ void main() {
expect(res.data, hasLength(1));
expect(res.data.first.index, 0);
expect(res.data.first.embeddingVector, hasLength(1536));
expect(res.data.first.object, 'embedding');
expect(res.data.first.object, EmbeddingObject.embedding);
expect(res.model, startsWith('text-embedding-ada-002'));
expect(res.object, 'list');
expect(res.object, CreateEmbeddingResponseObject.list);
expect(res.usage.promptTokens, greaterThan(0));
expect(res.usage.totalTokens, greaterThan(0));
});
Expand Down

0 comments on commit 9b43d85

Please sign in to comment.