Module: Prescient
- Defined in:
- lib/prescient.rb,
lib/prescient/client.rb,
lib/prescient/errors.rb,
lib/prescient/version.rb
Overview
Main Prescient module for AI provider abstraction
Prescient provides a unified interface for working with multiple AI providers including Ollama, OpenAI, Anthropic, and Hugging Face. It supports both embedding generation and text completion with configurable context handling.
Defined Under Namespace
Modules: Pgvector, Provider Classes: AuthenticationError, Base, CLI, Client, Configuration, ConfigurationLoader, ConnectionError, Error, InvalidResponseError, InvalidVectorError, ModelNotAvailableError, ProviderError, RateLimitError
Constant Summary collapse
- VERSION =
Current Prescient gem version.
'0.5.0'
Class Method Summary collapse
-
.client(provider_name = nil, enable_fallback: true, provider_options: {}) ⇒ Client
Convenience methods for quick access.
-
.configuration ⇒ Configuration
Get the current configuration instance.
-
.configure {|config| ... } ⇒ void
Configure Prescient with custom settings and providers.
-
.generate_embedding(text, provider: nil, enable_fallback: true, **options) ⇒ Array<Float>
Generate an embedding through a configured provider.
-
.generate_response(prompt, context_items = [], provider: nil, enable_fallback: true, **options) ⇒ Hash
Generate a response through a configured provider.
-
.health_check(provider: nil) ⇒ Hash
Return the health status of a configured provider.
-
.load_configuration(path = nil, env: ENV) ⇒ Configuration
Load configuration from a YAML file and replace the current configuration.
-
.reset_configuration! ⇒ Configuration
Reset configuration to defaults.
Class Method Details
.client(provider_name = nil, enable_fallback: true, provider_options: {}) ⇒ Client
Convenience methods for quick access
224 225 226 |
# File 'lib/prescient/client.rb', line 224 def self.client(provider_name = nil, enable_fallback: true, provider_options: {}) Client.new(provider_name, enable_fallback: enable_fallback, provider_options: ) end |
.configuration ⇒ Configuration
Get the current configuration instance
58 59 60 |
# File 'lib/prescient.rb', line 58 def self.configuration @_configuration ||= Configuration.new end |
.configure {|config| ... } ⇒ void
This method returns an undefined value.
Configure Prescient with custom settings and providers
51 52 53 |
# File 'lib/prescient.rb', line 51 def self.configure yield(configuration) end |
.generate_embedding(text, provider: nil, enable_fallback: true, **options) ⇒ Array<Float>
Generate an embedding through a configured provider.
234 235 236 |
# File 'lib/prescient/client.rb', line 234 def self.(text, provider: nil, enable_fallback: true, **) client(provider, enable_fallback: enable_fallback).(text, **) end |
.generate_response(prompt, context_items = [], provider: nil, enable_fallback: true, **options) ⇒ Hash
Generate a response through a configured provider.
246 247 248 |
# File 'lib/prescient/client.rb', line 246 def self.generate_response(prompt, context_items = [], provider: nil, enable_fallback: true, **) client(provider, enable_fallback: enable_fallback).generate_response(prompt, context_items, **) end |
.health_check(provider: nil) ⇒ Hash
Return the health status of a configured provider.
254 255 256 |
# File 'lib/prescient/client.rb', line 254 def self.health_check(provider: nil) client(provider, enable_fallback: false).health_check end |
.load_configuration(path = nil, env: ENV) ⇒ Configuration
Load configuration from a YAML file and replace the current configuration.
The loaded configuration starts from the current environment defaults, then applies the YAML file, environment-variable references, and any optional overrides.
78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/prescient.rb', line 78 def self.load_configuration(path = nil, env: ENV) effective_path = path || env['PRESCIENT_CONFIG'] configuration = if effective_path ConfigurationLoader.load_file(effective_path, env:) else Configuration.new.tap do |config| configure_default_providers(config, env) end end @_configuration = configuration end |
.reset_configuration! ⇒ Configuration
Reset configuration to defaults
65 66 67 |
# File 'lib/prescient.rb', line 65 def self.reset_configuration! @_configuration = Configuration.new end |