gpt-4o is indeed not intended for embeddings - it’s a chat completions model. For generating embeddings you have the choice among the following three models, all of which can be accessed under Tier 1:
Model
Description
Output Dimension
text-embedding-3-large
Most capable embedding model for both english and non-english tasks
3,072
text-embedding-3-small
Increased performance over 2nd generation ada embedding model
1,536
text-embedding-ada-002
Most capable 2nd generation embedding model, replacing 16 first generation models
1,536
The detailed API specs for embeddings models are available here.
I will say this API seems squirrley (technical term). After repeated calls from various clients using the same API key and model (text-embedding-3-large) to the embeddings API
Bruno gives me 200s
Curl gives me a mix of 200 and 403:
{
"error": {
"message": "Project `proj_qGWHlze5FmF2Xv5IISYIVlM6` does not have access to model `text-embedding-3-large`",
"type": "invalid_request_error",
"param": null,
"code": "model_not_found"
}
}
And my Go code is giving me 401s.
So it seems there’s some kind of eventual consistency happening behind the scenes.