Module: Jekyll::EmbeddingsGenerator::Embeddings
- Extended by:
- Jekyll::EmbeddingsGenerator
- Defined in:
- lib/jekyll/embeddings-generator/embeddings/generate.rb,
lib/jekyll/embeddings-generator/embeddings/fingerprint.rb
Constant Summary collapse
- EMBEDDING_MODEL =
"text-embedding-3-small"
Constants included from Jekyll::EmbeddingsGenerator
Class Method Summary collapse
Methods included from Jekyll::EmbeddingsGenerator
Class Method Details
.fingerprint(content) ⇒ Object
11 12 13 14 |
# File 'lib/jekyll/embeddings-generator/embeddings/fingerprint.rb', line 11 def fingerprint(content) payload = "#{EMBEDDING_MODEL}\0#{content}" Digest::SHA256.hexdigest(payload) end |
.generate_embeddings(text) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/jekyll/embeddings-generator/embeddings/generate.rb', line 13 def (text) config = Jekyll::EmbeddingsGenerator.config api_key = config["openai_api_key"] response = HTTParty.post( "https://api.openai.com/v1/embeddings", :headers => { "Authorization" => "Bearer #{api_key}", "Content-Type" => "application/json", }, :body => { :model => EMBEDDING_MODEL, :input => text, }.to_json ) raise "OpenAI API error: #{response.parsed_response["error"]["message"]}" unless response.success? response.parsed_response["data"][0]["embedding"] end |