Skip to content

Commit 3d66439

Browse files
committed
Adding different assertions for the different model sizes.
1 parent 7216445 commit 3d66439

File tree

3 files changed

+27
-4
lines changed

3 files changed

+27
-4
lines changed

+llms/+utils/errorMessageCatalog.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@
5555
catalog("llms:pngExpected") = "Argument must be a PNG image.";
5656
catalog("llms:warningJsonInstruction") = "When using JSON mode, you must also prompt the model to produce JSON yourself via a system or user message.";
5757
catalog("llms:apiReturnedError") = "OpenAI API Error: {1}";
58+
catalog("llms:dimensionsMustBeSmallerThan") = "Dimensions must be less than or equal to {1}.";
5859
end

extractOpenAIEmbeddings.m

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
nvp.ModelName (1,1) {mustBeMember(nvp.ModelName,["text-embedding-ada-002", ...
2828
"text-embedding-3-large", "text-embedding-3-small"])} = "text-embedding-ada-002"
2929
nvp.TimeOut (1,1) {mustBeReal,mustBePositive} = 10
30-
nvp.Dimensions (1,1) {mustBeInteger,mustBePositive, mustBeLessThanOrEqual(nvp.Dimensions, 1536)}
30+
nvp.Dimensions (1,1) {mustBeInteger,mustBePositive}
3131
nvp.ApiKey {llms.utils.mustBeNonzeroLengthTextScalar}
3232
end
3333

@@ -42,6 +42,7 @@
4242
error("llms:invalidOptionForModel", ...
4343
llms.utils.errorMessageCatalog.getMessage("llms:invalidOptionForModel", "Dimensions", nvp.ModelName));
4444
end
45+
mustBeCorrectDimensions(nvp.Dimensions,nvp.ModelName);
4546
parameters.dimensions = nvp.Dimensions;
4647
end
4748

@@ -53,4 +54,19 @@
5354
emb = emb';
5455
else
5556
emb = [];
57+
end
58+
59+
60+
end
61+
62+
function mustBeCorrectDimensions(dimensions,modelName)
63+
model2dim = ....
64+
dictionary(["text-embedding-3-large", "text-embedding-3-small"], ...
65+
[3072,1536]);
66+
67+
if dimensions>model2dim(modelName)
68+
error("llms:dimensionsMustBeSmallerThan", ...
69+
llms.utils.errorMessageCatalog.getMessage("llms:dimensionsMustBeSmallerThan", ...
70+
string(model2dim(modelName))));
71+
end
5672
end

tests/textractOpenAIEmbeddings.m

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,15 @@ function testInvalidInputs(testCase, InvalidInput)
9696
"Input",{{"bla", "Dimensions", "-11" }},...
9797
"Error","MATLAB:validators:mustBeNumericOrLogical"),...
9898
...
99-
"LargeDimensionValue",struct( ...
100-
"Input",{{"bla", "Dimensions", 100000 }},...
101-
"Error","MATLAB:validators:mustBeLessThanOrEqual"),...
99+
"LargeDimensionValueForModelLarge",struct( ...
100+
"Input",{{"bla", "ModelName", "text-embedding-3-large", ...
101+
"Dimensions", 3073, "ApiKey", "fake-key" }},...
102+
"Error","llms:dimensionsMustBeSmallerThan"),...
103+
...
104+
"LargeDimensionValueForModelSmall",struct( ...
105+
"Input",{{"bla", "ModelName", "text-embedding-3-small", ...
106+
"Dimensions", 1537, "ApiKey", "fake-key" }},...
107+
"Error","llms:dimensionsMustBeSmallerThan"),...
102108
...
103109
"InvalidDimensionSize",struct( ...
104110
"Input",{{"bla", "Dimensions", [123, 123] }},...

0 commit comments

Comments
 (0)