Method: Langchain::LLM::OpenAI#embed
- Defined in:
- lib/langchain/llm/openai.rb
#embed(text:, model: , encoding_format: nil, user: nil, dimensions: ) ⇒ Langchain::LLM::OpenAIResponse
Generate an embedding for a given text
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/langchain/llm/openai.rb', line 61 def ( text:, model: defaults[:embedding_model], encoding_format: nil, user: nil, dimensions: @defaults[:dimensions] ) raise ArgumentError.new("text argument is required") if text.empty? raise ArgumentError.new("model argument is required") if model.empty? raise ArgumentError.new("encoding_format must be either float or base64") if encoding_format && %w[float base64].include?(encoding_format) parameters = { input: text, model: model } parameters[:encoding_format] = encoding_format if encoding_format parameters[:user] = user if user if dimensions parameters[:dimensions] = dimensions elsif EMBEDDING_SIZES.key?(model) parameters[:dimensions] = EMBEDDING_SIZES[model] end # dimensions parameter not supported by text-embedding-ada-002 model parameters.delete(:dimensions) if model == "text-embedding-ada-002" response = with_api_error_handling do client.(parameters: parameters) end Langchain::LLM::OpenAIResponse.new(response) end |