pub struct PostgresVectorStore<Model: EmbeddingModel> { /* private fields */ }Implementations§
Source§impl<Model> PostgresVectorStore<Model>where
Model: EmbeddingModel,
impl<Model> PostgresVectorStore<Model>where
Model: EmbeddingModel,
pub fn new( model: Model, pg_pool: PgPool, documents_table: Option<String>, distance_function: PgVectorDistanceFunction, ) -> Self
pub fn with_defaults(model: Model, pg_pool: PgPool) -> Self
Trait Implementations§
Source§impl<Model> InsertDocuments for PostgresVectorStore<Model>
impl<Model> InsertDocuments for PostgresVectorStore<Model>
Source§impl<Model> VectorStoreIndex for PostgresVectorStore<Model>where
Model: EmbeddingModel,
impl<Model> VectorStoreIndex for PostgresVectorStore<Model>where
Model: EmbeddingModel,
Source§async fn top_n<T: for<'a> Deserialize<'a> + Send>(
&self,
req: VectorSearchRequest<PgSearchFilter>,
) -> Result<Vec<(f64, String, T)>, VectorStoreError>
async fn top_n<T: for<'a> Deserialize<'a> + Send>( &self, req: VectorSearchRequest<PgSearchFilter>, ) -> Result<Vec<(f64, String, T)>, VectorStoreError>
Get the top n documents based on the distance to the given query. The result is a list of tuples of the form (score, id, document)
Source§async fn top_n_ids(
&self,
req: VectorSearchRequest<PgSearchFilter>,
) -> Result<Vec<(f64, String)>, VectorStoreError>
async fn top_n_ids( &self, req: VectorSearchRequest<PgSearchFilter>, ) -> Result<Vec<(f64, String)>, VectorStoreError>
Same as top_n but returns the document ids only.
Source§type Filter = PgSearchFilter
type Filter = PgSearchFilter
The filter type for this backend.
Auto Trait Implementations§
impl<Model> !RefUnwindSafe for PostgresVectorStore<Model>
impl<Model> !UnwindSafe for PostgresVectorStore<Model>
impl<Model> Freeze for PostgresVectorStore<Model>where
Model: Freeze,
impl<Model> Send for PostgresVectorStore<Model>
impl<Model> Sync for PostgresVectorStore<Model>
impl<Model> Unpin for PostgresVectorStore<Model>where
Model: Unpin,
impl<Model> UnsafeUnpin for PostgresVectorStore<Model>where
Model: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T, F> Tool for Twhere
F: SearchFilter<Value = Value> + WasmCompatSend + WasmCompatSync + for<'de> Deserialize<'de>,
T: VectorStoreIndex<Filter = F>,
impl<T, F> Tool for Twhere
F: SearchFilter<Value = Value> + WasmCompatSend + WasmCompatSync + for<'de> Deserialize<'de>,
T: VectorStoreIndex<Filter = F>,
Source§const NAME: &'static str = "search_vector_store"
const NAME: &'static str = "search_vector_store"
The name of the tool. This name should be unique within a single
ToolSet or other registration scope that dispatches tools by name.Source§type Error = VectorStoreError
type Error = VectorStoreError
The error type of the tool.
Source§type Args = VectorSearchRequest<F>
type Args = VectorSearchRequest<F>
The arguments type of the tool.
Source§type Output = Vec<VectorStoreOutput>
type Output = Vec<VectorStoreOutput>
The output type of the tool.
Source§fn description(&self) -> String
fn description(&self) -> String
Model-facing description of what the tool does.
Source§fn parameters(&self) -> Value
fn parameters(&self) -> Value
JSON Schema for the tool arguments.
Source§async fn call(
&self,
args: <T as Tool>::Args,
) -> Result<<T as Tool>::Output, <T as Tool>::Error>
async fn call( &self, args: <T as Tool>::Args, ) -> Result<<T as Tool>::Output, <T as Tool>::Error>
The tool execution method.
Both the arguments and return value are a String since these values are meant to
be the output and input of LLM models (respectively)
Source§fn call_with_extensions(
&self,
args: Self::Args,
_extensions: &ToolCallExtensions,
) -> impl Future<Output = Result<Self::Output, Self::Error>> + WasmCompatSend
fn call_with_extensions( &self, args: Self::Args, _extensions: &ToolCallExtensions, ) -> impl Future<Output = Result<Self::Output, Self::Error>> + WasmCompatSend
Tool execution with per-call runtime extensions. Read more
Source§fn classify_error(&self, error: &Self::Error) -> ToolFailure
fn classify_error(&self, error: &Self::Error) -> ToolFailure
Classify an error returned by this tool into a structured
ToolFailure. Read moreSource§fn call_structured(
&self,
args: Self::Args,
extensions: &ToolCallExtensions,
) -> impl Future<Output = Result<ToolReturn<Self::Output>, Self::Error>> + WasmCompatSend
fn call_structured( &self, args: Self::Args, extensions: &ToolCallExtensions, ) -> impl Future<Output = Result<ToolReturn<Self::Output>, Self::Error>> + WasmCompatSend
Execute the tool, returning a structured
ToolReturn instead of a bare
output. Read moreSource§impl<T> ToolDyn for Twhere
T: Tool,
impl<T> ToolDyn for Twhere
T: Tool,
Source§fn call_structured<'a>(
&'a self,
args: String,
extensions: &'a ToolCallExtensions,
) -> Pin<Box<dyn Future<Output = ToolExecutionResult> + Send + 'a>>
fn call_structured<'a>( &'a self, args: String, extensions: &'a ToolCallExtensions, ) -> Pin<Box<dyn Future<Output = ToolExecutionResult> + Send + 'a>>
Routes through Tool::call_structured so rich returns
(ToolReturn) and Tool::classify_error are honored: a JSON
argument parse failure becomes an
InvalidArgs outcome, a returned
Err(Self::Error) is classified, and a successful ToolReturn is
serialized while preserving its outcome and extensions.
Source§fn description(&self) -> String
fn description(&self) -> String
Model-facing description of what the tool does.
Source§fn parameters(&self) -> Value
fn parameters(&self) -> Value
JSON Schema for the tool arguments.