moved authentication for the semantic index into the EmbeddingProvider

This commit is contained in:
KCaverly 2023-10-30 10:02:27 -04:00
parent 1e8b23d8fb
commit a2c3971ad6
14 changed files with 200 additions and 206 deletions

View file

@ -1,28 +1,14 @@
use anyhow::Result;
use futures::{future::BoxFuture, stream::BoxStream};
use gpui::AppContext;
use crate::{
auth::{CredentialProvider, ProviderCredential},
models::LanguageModel,
};
use crate::{auth::CredentialProvider, models::LanguageModel};
pub trait CompletionRequest: Send + Sync {
fn data(&self) -> serde_json::Result<String>;
}
pub trait CompletionProvider {
pub trait CompletionProvider: CredentialProvider {
fn base_model(&self) -> Box<dyn LanguageModel>;
fn credential_provider(&self) -> Box<dyn CredentialProvider>;
fn retrieve_credentials(&self, cx: &AppContext) -> ProviderCredential {
self.credential_provider().retrieve_credentials(cx)
}
fn save_credentials(&self, cx: &AppContext, credential: ProviderCredential) {
self.credential_provider().save_credentials(cx, credential);
}
fn delete_credentials(&self, cx: &AppContext) {
self.credential_provider().delete_credentials(cx);
}
fn complete(
&self,
prompt: Box<dyn CompletionRequest>,