moved authentication for the semantic index into the EmbeddingProvider
This commit is contained in:
parent
1e8b23d8fb
commit
a2c3971ad6
14 changed files with 200 additions and 206 deletions
|
@ -1,5 +1,5 @@
|
|||
use crate::{parsing::Span, JobHandle};
|
||||
use ai::{auth::ProviderCredential, embedding::EmbeddingProvider};
|
||||
use ai::embedding::EmbeddingProvider;
|
||||
use gpui::executor::Background;
|
||||
use parking_lot::Mutex;
|
||||
use smol::channel;
|
||||
|
@ -41,7 +41,6 @@ pub struct EmbeddingQueue {
|
|||
pending_batch_token_count: usize,
|
||||
finished_files_tx: channel::Sender<FileToEmbed>,
|
||||
finished_files_rx: channel::Receiver<FileToEmbed>,
|
||||
pub provider_credential: ProviderCredential,
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
|
@ -51,11 +50,7 @@ pub struct FileFragmentToEmbed {
|
|||
}
|
||||
|
||||
impl EmbeddingQueue {
|
||||
pub fn new(
|
||||
embedding_provider: Arc<dyn EmbeddingProvider>,
|
||||
executor: Arc<Background>,
|
||||
provider_credential: ProviderCredential,
|
||||
) -> Self {
|
||||
pub fn new(embedding_provider: Arc<dyn EmbeddingProvider>, executor: Arc<Background>) -> Self {
|
||||
let (finished_files_tx, finished_files_rx) = channel::unbounded();
|
||||
Self {
|
||||
embedding_provider,
|
||||
|
@ -64,14 +59,9 @@ impl EmbeddingQueue {
|
|||
pending_batch_token_count: 0,
|
||||
finished_files_tx,
|
||||
finished_files_rx,
|
||||
provider_credential,
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_credential(&mut self, credential: ProviderCredential) {
|
||||
self.provider_credential = credential;
|
||||
}
|
||||
|
||||
pub fn push(&mut self, file: FileToEmbed) {
|
||||
if file.spans.is_empty() {
|
||||
self.finished_files_tx.try_send(file).unwrap();
|
||||
|
@ -118,7 +108,6 @@ impl EmbeddingQueue {
|
|||
|
||||
let finished_files_tx = self.finished_files_tx.clone();
|
||||
let embedding_provider = self.embedding_provider.clone();
|
||||
let credential = self.provider_credential.clone();
|
||||
|
||||
self.executor
|
||||
.spawn(async move {
|
||||
|
@ -143,7 +132,7 @@ impl EmbeddingQueue {
|
|||
return;
|
||||
};
|
||||
|
||||
match embedding_provider.embed_batch(spans, credential).await {
|
||||
match embedding_provider.embed_batch(spans).await {
|
||||
Ok(embeddings) => {
|
||||
let mut embeddings = embeddings.into_iter();
|
||||
for fragment in batch {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue