Browse Source

Enhance AI Management module docs

pull/24370/head
enisn 2 months ago
parent
commit
e14e4e5022
No known key found for this signature in database GPG Key ID: A052619F04155D1C
  1. 58
      docs/en/modules/ai-management/index.md

58
docs/en/modules/ai-management/index.md

@ -130,7 +130,7 @@ PreConfigure<AbpAIWorkspaceOptions>(options =>
#### Dynamic Workspaces #### Dynamic Workspaces
* **Created through the UI** or programmatically via `IWorkspaceRepository` * **Created through the UI** or programmatically via `ApplicationWorkspaceManager` and `IWorkspaceRepository`
* **Fully manageable** - can be created, updated, activated/deactivated, and deleted * **Fully manageable** - can be created, updated, activated/deactivated, and deleted
* **Stored in database** with all configuration * **Stored in database** with all configuration
* **Ideal for** user-customizable AI features * **Ideal for** user-customizable AI features
@ -138,15 +138,30 @@ PreConfigure<AbpAIWorkspaceOptions>(options =>
Example (data seeding): Example (data seeding):
```csharp ```csharp
var workspace = new Workspace( public class WorkspaceDataSeederContributor : IDataSeedContributor, ITransientDependency
name: "CustomerSupportWorkspace", {
provider: "OpenAI", private readonly IWorkspaceRepository _workspaceRepository;
modelName: "gpt-4", private readonly ApplicationWorkspaceManager _applicationWorkspaceManager;
apiKey: "your-api-key" public WorkspaceDataSeederContributor(
); IWorkspaceRepository workspaceRepository,
workspace.ApplicationName = ApplicationInfoAccessor.ApplicationName; ApplicationWorkspaceManager applicationWorkspaceManager)
workspace.SystemPrompt = "You are a helpful customer support assistant."; {
await _workspaceRepository.InsertAsync(workspace); _workspaceRepository = workspaceRepository;
_applicationWorkspaceManager = applicationWorkspaceManager;
}
public async Task SeedAsync(DataSeedContext context)
{
var workspace = await _applicationWorkspaceManager.CreateAsync(
name: "CustomerSupportWorkspace",
provider: "OpenAI",
modelName: "gpt-4");
workspace.ApiKey = "your-api-key";
workspace.SystemPrompt = "You are a helpful customer support assistant.";
await _workspaceRepository.InsertAsync(workspace);
}
``` ```
### Workspace Naming Rules ### Workspace Naming Rules
@ -172,12 +187,13 @@ The AI Management module defines the following permissions:
In addition to module-level permissions, you can restrict access to individual workspaces by setting the `RequiredPermissionName` property: In addition to module-level permissions, you can restrict access to individual workspaces by setting the `RequiredPermissionName` property:
```csharp ```csharp
var workspace = new Workspace( var workspace = await _applicationWorkspaceManager.CreateAsync(
name: "PremiumWorkspace", name: "PremiumWorkspace",
provider: "OpenAI", provider: "OpenAI",
modelName: "gpt-4", modelName: "gpt-4"
requiredPermissionName: "MyApp.PremiumFeatures"
); );
// Set a specific permission for the workspace
workspace.RequiredPermissionName = MyAppPermissions.AccessPremiumWorkspaces;
``` ```
When a workspace has a required permission: When a workspace has a required permission:
@ -558,14 +574,14 @@ After implementing and registering your factory:
2. **Through Code** (data seeding): 2. **Through Code** (data seeding):
```csharp ```csharp
await _workspaceRepository.InsertAsync(new Workspace( await _applicationWorkspaceManager.CreateAsync(
GuidGenerator.Create(), name: "MyOllamaWorkspace",
"MyOllamaWorkspace", provider: "Ollama",
provider: "Ollama", modelName: "mistral"
modelName: "mistral", );
apiBaseUrl: "http://localhost:11434", workspace.ApiBaseUrl = "http://localhost:11434";
description: "Local Ollama workspace" workspace.Description = "Local Ollama workspace";
)); await _workspaceRepository.InsertAsync(workspace);
``` ```
> **Tip**: The provider name you use in `AddFactory<TFactory>("ProviderName")` must match the provider name stored in the workspace configuration in the database. > **Tip**: The provider name you use in `AddFactory<TFactory>("ProviderName")` must match the provider name stored in the workspace configuration in the database.

Loading…
Cancel
Save