Back to Learn Hub

DriveClient

Namespace: Daisi.SDK.Clients.V1.Orc

Inheritance: DriveManagerProto.DriveManagerProtoClient

Factory

DriveClientFactory - create a DriveClient using your IClientKeyProvider.

var driveClientFactory = new DriveClientFactory(clientKeyProvider);
var driveClient = driveClientFactory.Create();

Remarks

DriveClient manages file storage and semantic search on DAISI Drive. Files are organized into repositories with access control. The vector search feature uses RAG (Retrieval-Augmented Generation) to find relevant files based on natural language queries, scoped to repositories the caller has access to.

Vector Search

Search across your files using natural language. Results are automatically scoped to repositories you have access to:

// Basic search
var response = await driveClient.VectorSearchAsync("customer onboarding process", topK: 10);

foreach (var result in response.Results)
{
    Console.WriteLine($"{result.FileName} (score: {result.Score:F3})");
    Console.WriteLine($"  Repository: {result.RepositoryId}");
    Console.WriteLine($"  Snippet: {result.Content}");
}

Filtered Vector Search

Filter search results to specific repositories or files:

// Search within specific repositories
var response = await driveClient.VectorSearchAsync(
    query: "quarterly revenue data",
    topK: 5,
    repositoryIds: new[] { "repo-finance", "repo-reports" },
    fileIds: null,
    includeSystemFiles: false
);

Access Control

Vector search respects DAISI Drive's repository access model. Results are filtered server-side based on the caller's permissions — you will only receive results from repositories you can access. Repository types include:

  • Account - Accessible to all users in the account
  • Private - Accessible only to the file owner
  • Custom - Accessible to specific users or groups