@attribute [Route(Routes.SETTINGS)] @using AIStudio.Assistants.Coding @using AIStudio.Assistants.TextSummarizer @using AIStudio.Provider @using AIStudio.Settings @using AIStudio.Settings.DataModel @using Host = AIStudio.Provider.SelfHosted.Host Settings Configured Providers What we call a provider is the combination of an LLM provider such as OpenAI and a model like GPT-4o. You can configure as many providers as you want. This way, you can use the appropriate model for each task. As an LLM provider, you can also choose local providers. However, to use this app, you must configure at least one provider. # Instance Name Provider Model Actions @context.Num @context.InstanceName @context.UsedLLMProvider @if (context.UsedLLMProvider is not LLMProviders.SELF_HOSTED) { @this.GetLLMProviderModelName(context) } else if (context.UsedLLMProvider is LLMProviders.SELF_HOSTED && context.Host is not Host.LLAMACPP) { @this.GetLLMProviderModelName(context) } else { @("as selected by provider") } Open Dashboard Edit Delete @if(this.SettingsManager.ConfigurationData.Providers.Count == 0) { No providers configured yet. } Add Provider LLM Provider Confidence Do you want to always be able to recognize how trustworthy your LLM providers are? This way, you keep control over which provider you send your data to. You have two options for this: Either you choose a common schema, or you configure the trust levels for each LLM provider yourself. @if(this.SettingsManager.ConfigurationData.LLMProviders.EnforceGlobalMinimumConfidence) { } @if (this.SettingsManager.ConfigurationData.LLMProviders.ShowProviderConfidence) { @if (this.SettingsManager.ConfigurationData.LLMProviders.ConfidenceScheme is ConfidenceSchemes.CUSTOM) { LLM Provider Description Confidence Level @context.ToName() @foreach (var confidenceLevel in Enum.GetValues().OrderBy(n => n)) { if(confidenceLevel is ConfidenceLevel.NONE or ConfidenceLevel.UNKNOWN) continue; @confidenceLevel.GetName() } } } @if (PreviewFeatures.PRE_RAG_2024.IsEnabled(this.SettingsManager)) { Configured Embeddings Embeddings are a way to represent words, sentences, entire documents, or even images and videos as digital fingerprints. Just like each person has a unique fingerprint, embedding models create unique digital patterns that capture the meaning and characteristics of the content they analyze. When two things are similar in meaning or content, their digital fingerprints will look very similar. For example, the fingerprints for 'happy' and 'joyful' would be more alike than those for 'happy' and 'sad'. This helps AI Studio understand and compare things in a way that's similar to how humans do. When you're working on something, AI Studio can automatically identify related documents and data by comparing their digital fingerprints. For instance, if you're writing about customer service, AI Studio can instantly find other documents in your data that discuss similar topics or experiences, even if they use different words. # Name Provider Model Actions @context.Num @context.Name @context.UsedLLMProvider @this.GetEmbeddingProviderModelName(context) Open Dashboard Edit Delete @if (this.SettingsManager.ConfigurationData.EmbeddingProviders.Count == 0) { No embeddings configured yet. } Add Embedding } Your Profiles Store personal data about yourself in various profiles so that the AIs know your personal context. This saves you from having to explain your context each time, for example, in every chat. When you have different roles, you can create a profile for each role. Are you a project manager in a research facility? You might want to create a profile for your project management activities, one for your scientific work, and a profile for when you need to write program code. In these profiles, you can record how much experience you have or which methods you like or dislike using. Later, you can choose when and where you want to use each profile. # Profile Name Actions @context.Num @context.Name Edit Delete @if(this.SettingsManager.ConfigurationData.Profiles.Count == 0) { No profiles configured yet. } Add Profile @if(this.SettingsManager.ConfigurationData.App.PreviewVisibility > PreviewVisibility.NONE) { var availablePreviewFeatures = ConfigurationSelectDataFactory.GetPreviewFeaturesData(this.SettingsManager).ToList(); if (availablePreviewFeatures.Count > 0) { } } @if (this.SettingsManager.ConfigurationData.Workspace.StorageBehavior is not WorkspaceStorageBehavior.DISABLE_WORKSPACES) { } @if (this.SettingsManager.ConfigurationData.Translation.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.Coding.PreselectedProgrammingLanguage is CommonCodingLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if(this.SettingsManager.ConfigurationData.TextSummarizer.PreselectedComplexity is Complexity.SCIENTIFIC_LANGUAGE_OTHER_EXPERTS) { } @if (this.SettingsManager.ConfigurationData.Agenda.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.GrammarSpelling.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.RewriteImprove.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.EMail.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.JobPostings.PreselectedTargetLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.Synonyms.PreselectedLanguage is CommonLanguages.OTHER) { } @if (this.SettingsManager.ConfigurationData.MyTasks.PreselectedTargetLanguage is CommonLanguages.OTHER) { } You have learned about @this.SettingsManager.ConfigurationData.BiasOfTheDay.UsedBias.Count out of @BiasCatalog.ALL_BIAS.Count biases. Reset @if (this.SettingsManager.ConfigurationData.BiasOfTheDay.PreselectedTargetLanguage is CommonLanguages.OTHER) { } Use Case: this agent is used to clean up text content. It extracts the main content, removes advertisements and other irrelevant things, and attempts to convert relative links into absolute links so that they can be used.