Class CoreService
- Namespace
 - FoundationaLLM.Core.Services
 
- Assembly
 - FoundationaLLM.Core.dll
 
Initializes a new instance of the CoreService class.
public class CoreService : ICoreService
  - Inheritance
 - 
      
      CoreService
 
- Implements
 
- Inherited Members
 
- Extension Methods
 
Constructors
CoreService(IAzureCosmosDBService, IEnumerable<IDownstreamAPIService>, ILogger<CoreService>, IOptions<ClientBrandingConfiguration>, IOptions<CoreServiceSettings>, IOrchestrationContext, IEnumerable<IResourceProviderService>, IConfiguration, IHttpClientFactoryService, IContextServiceClient)
Initializes a new instance of the CoreService class.
public CoreService(IAzureCosmosDBService cosmosDBService, IEnumerable<IDownstreamAPIService> downstreamAPIServices, ILogger<CoreService> logger, IOptions<ClientBrandingConfiguration> brandingSettings, IOptions<CoreServiceSettings> settings, IOrchestrationContext callContext, IEnumerable<IResourceProviderService> resourceProviderServices, IConfiguration configuration, IHttpClientFactoryService httpClientFactory, IContextServiceClient contextServiceClient)
  Parameters
cosmosDBServiceIAzureCosmosDBServiceThe Azure Cosmos DB service that contains chat sessions and messages.
downstreamAPIServicesIEnumerable<IDownstreamAPIService>The services used to make calls to the downstream APIs.
loggerILogger<CoreService>The logging interface used to log under the CoreService type name.
brandingSettingsIOptions<ClientBrandingConfiguration>The ClientBrandingConfiguration settings retrieved by the injected IOptions<TOptions>.
settingsIOptions<CoreServiceSettings>The CoreServiceSettings settings for the service.
callContextIOrchestrationContextContains contextual data for the calling service.
resourceProviderServicesIEnumerable<IResourceProviderService>A dictionary of IResourceProviderService resource providers hashed by resource provider name.
configurationIConfigurationThe IConfiguration service providing configuration settings.
httpClientFactoryIHttpClientFactoryServiceThe IHttpClientFactory used to build HTTP clients.
contextServiceClientIContextServiceClientThe IContextServiceClient used to interact with the Context API.
Methods
CreateConversationAsync(string, ConversationProperties)
Creates a new chat session.
public Task<Conversation> CreateConversationAsync(string instanceId, ConversationProperties chatSessionProperties)
  Parameters
instanceIdstringThe instance Id.
chatSessionPropertiesConversationPropertiesThe session properties.
Returns
DeleteAttachments(string, List<string>)
Deletes one or more attachments.
public Task<Dictionary<string, ResourceProviderDeleteResult?>> DeleteAttachments(string instanceId, List<string> resourcePaths)
  Parameters
instanceIdstringThe FoundationaLLM instance id.
resourcePathsList<string>The list of resources to be deleted.
Returns
- Task<Dictionary<string, ResourceProviderDeleteResult>>
 A dictionary with the delete operation result for each resource path.
DeleteConversationAsync(string, string)
Delete a chat session and related messages.
public Task DeleteConversationAsync(string instanceId, string sessionId)
  Parameters
Returns
DownloadAttachment(string, string, string)
Downloads an attachment.
public Task<AttachmentFile?> DownloadAttachment(string instanceId, string fileProvider, string fileId)
  Parameters
instanceIdstringThe FoundationaLLM instance id.
fileProviderstringThe name of the file provider.
fileIdstringThe identifier of the file.
Returns
- Task<AttachmentFile>
 An AttachmentFile object with the properties and the content of the attachment.
Remarks
The following file providers are supported:
- FoundationaLLM.Attachments
 - FoundationaLLM.AzureOpenAI
 
GetAllConversationsAsync(string)
Returns list of chat session ids and names.
public Task<List<Conversation>> GetAllConversationsAsync(string instanceId)
  Parameters
instanceIdstringThe instance id for which to retrieve chat sessions.
Returns
GetChatCompletionAsync(string, CompletionRequest)
Receive a prompt from a user, retrieve the message history from the related session, generate a completion response, and log full completion results.
public Task<Message> GetChatCompletionAsync(string instanceId, CompletionRequest completionRequest)
  Parameters
instanceIdstringThe instance id.
completionRequestCompletionRequestThe completion request.
Returns
GetChatSessionMessagesAsync(string, string)
Returns the chat messages related to an existing session.
public Task<List<Message>> GetChatSessionMessagesAsync(string instanceId, string sessionId)
  Parameters
instanceIdstringThe instance id for which to retrieve chat messages.
sessionIdstringThe session id for which to retrieve chat messages.
Returns
GetCompletionAsync(string, CompletionRequest)
Provides a completion for a user prompt, without a session.
public Task<Message> GetCompletionAsync(string instanceId, CompletionRequest directCompletionRequest)
  Parameters
instanceIdstringThe instance id.
directCompletionRequestCompletionRequestThe completion request.
Returns
GetCompletionOperationStatus(string, string)
Gets the status of a completion operation.
public Task<LongRunningOperation> GetCompletionOperationStatus(string instanceId, string operationId)
  Parameters
instanceIdstringThe FoundationaLLM instance id.
operationIdstringThe OperationId for which to retrieve the status.
Returns
- Task<LongRunningOperation>
 Returns a LongRunningOperation object containing the OperationId, Status, and result.
GetCompletionPrompt(string, string, string)
Returns the completion prompt for a given session and completion prompt id.
public Task<CompletionPrompt> GetCompletionPrompt(string instanceId, string sessionId, string completionPromptId)
  Parameters
instanceIdstringThe instance Id.
sessionIdstringThe session id from which to retrieve the completion prompt.
completionPromptIdstringThe id of the completion prompt to retrieve.
Returns
GetCoreConfiguration(string)
Gets the file store configuration for the given instance.
public Task<CoreConfiguration> GetCoreConfiguration(string instanceId)
  Parameters
instanceIdstringThe FoundationaLLM instance id.
Returns
- Task<CoreConfiguration>
 The file store configuration.
RateMessageAsync(string, string, string, MessageRatingRequest)
Rate an assistant message. This can be used to discover useful AI responses for training, discoverability, and other benefits down the road.
public Task RateMessageAsync(string instanceId, string id, string sessionId, MessageRatingRequest rating)
  Parameters
instanceIdstringThe instance id.
idstringThe message id to rate.
sessionIdstringThe session id to which the message belongs.
ratingMessageRatingRequestThe rating and optional comments to assign to the message.
Returns
StartCompletionOperation(string, CompletionRequest)
Begins a completion operation.
public Task<LongRunningOperation> StartCompletionOperation(string instanceId, CompletionRequest completionRequest)
  Parameters
instanceIdstringThe FoundationaLLM instance id.
completionRequestCompletionRequestThe completion request containing the user prompt and message history.
Returns
- Task<LongRunningOperation>
 Returns an LongRunningOperation object containing the OperationId and Status.
UpdateConversationAsync(string, string, ConversationProperties)
Update the conversation.
public Task<Conversation> UpdateConversationAsync(string instanceId, string conversationId, ConversationProperties conversationProperties)
  Parameters
instanceIdstringThe instance id.
conversationIdstringThe identifier of the conversation to rename.
conversationPropertiesConversationPropertiesThe conversation properties to update.
Returns
UploadAttachment(string, string, AttachmentFile, string)
Uploads an attachment.
public Task<ResourceProviderUpsertResult<AttachmentFile>> UploadAttachment(string instanceId, string sessionId, AttachmentFile attachmentFile, string agentName)
  Parameters
instanceIdstringThe FoundationaLLM instance id.
sessionIdstringThe session id from which the attachment is uploaded.
attachmentFileAttachmentFileThe AttachmentFile object containing the attachment file data.
agentNamestringThe name of the agent.
Returns
- Task<ResourceProviderUpsertResult<AttachmentFile>>
 A ResourceProviderUpsertResult<T> object with the FoundationaLLM.Attachment resource provider object id.