GenAI.BuildingBlocks
1.0.11
See the version list below for details.
dotnet add package GenAI.BuildingBlocks --version 1.0.11
NuGet\Install-Package GenAI.BuildingBlocks -Version 1.0.11
<PackageReference Include="GenAI.BuildingBlocks" Version="1.0.11" />
paket add GenAI.BuildingBlocks --version 1.0.11
#r "nuget: GenAI.BuildingBlocks, 1.0.11"
// Install GenAI.BuildingBlocks as a Cake Addin #addin nuget:?package=GenAI.BuildingBlocks&version=1.0.11 // Install GenAI.BuildingBlocks as a Cake Tool #tool nuget:?package=GenAI.BuildingBlocks&version=1.0.11
Documenta��o do Projeto
Este documento fornece uma vis�o geral de como trabalhar com classes e opera��es espec�ficas, incluindo a cria��o de queries Mongo com linguagem natural e a intera��o com o Microsoft Teams.
1. Cria��o de Classe que Representa uma Cole��o
A classe a seguir representa uma cole��o, com atributos utilizados como prompts para gera��o de queries Mongo com linguagem natural. Utilize o atributo "RuleConditionPrompt" tanto no n�vel de classe como nas propriedades para criar seu pr�prio prompt:
[RuleConditionPrompt(Rule = "Regra 100", Condition = @"Lembre-se: voc� deve retornar todos os campos relacionados na cole��o cadastro_usuarios.")]
[RuleConditionPrompt(Rule = "Regra 101", Condition = @"Lembre-se da regra 100.")]
[Display(Name = "Cadastro de Usu�rios")]
[BsonCollection("cadastro_usuarios_teste_hml")]
public class User : BaseModel
{
[Display(Name = "ID")]
[JsonProperty(PropertyName = "_id")]
[BsonRepresentation(BsonType.String)]
public ObjectId Id { get; set; }
[Display(Name = "E-Mail")]
[JsonProperty(PropertyName = "Mail")]
public string Mail { get; set; }
}
2. Exemplo de gera��o de query com linguagem natural baseando-se na classe User
Para gerar uma query com linguagem natural baseando-se na classe User, siga os passos abaixo:
var _mongoQueryBuilder = InternalConfigurationDI.GetService<IMongoQueryBuilder>();
var messageUser = "Liste todos os usu�rios";
var messagesHistory = new List<Message>();
messagesHistory.Add(messageUser);
ParametersOpenAI PoAI = new ParametersOpenAI(true); // true para OpenAI da Azure, false para outro servi�o da OpenAI
PoAI.MessageUser = messageUser;
PoAI.ApiVersion = "sua api version";
PoAI.ApiKey = "sua api key";
PoAI.Endpoint = "endpoint da sua OpenAI";
PoAI.DeploymentName = "Seu DeploymentName";
PoAI.Messages = new List<Message>();
PoAI.Messages.AddRange(messagesHistory);
var queryMongoIA = await _mongoQueryBuilder.GetQueryFromIA<User>(PoAI);
var queryFormated = queryMongoIA?.Replace("", "").Replace('', ' ');
var response = await _mongoCommand.GetRunCommandAsyncToTable(queryFormated);
3. Exemplo de utiliza��o do BaseMongoRepository para opera��es de reposit�rio
O uso do BaseMongoRepository permite que voc� trabalhe com Linq para realizar opera��es de reposit�rio:
public class UserRepository : BaseMongoDBRepository<User>
{
public UserRepository(string connectionString, string databaseName) : base(connectionString, databaseName)
{
}
}
4. Envio de mensagens ao Teams
Para enviar mensagens ao Microsoft Teams, obtenha primeiro o MicrosoftAppId, MicrosoftAppPassword e ConversationId do seu aplicativo. Em seguida, obtenha a inst�ncia do TeamsUtilities:
_teamsUtilities = InternalConfigurationDI.GetService<TeamsUtilities>(microsoftAppId, microsoftAppPassword, conversationId);
var result = await _teamsUtilities.SendMessageToTeams("sua mensagem");
5. Itera��o direta com a OpenAI
Voc� pode estabelecer uma conversa��o natural com a OpenAI, siga o exemplo abaixo:
var messageUser = "quem descobriu o Brasil?";
var messagesHistory = new List<Message>();
messagesHistory.Add(messageUser);
ParametersOpenAI PoAI = new ParametersOpenAI(true); // true para OpenAI da Azure, false para outro servi�o da OpenAI
PoAI.MessageUser = messageUser;
PoAI.ApiVersion = "sua api version";
PoAI.ApiKey = "sua api key";
PoAI.Endpoint = "endpoint da sua OpenAI";
PoAI.DeploymentName = "Seu DeploymentName";
PoAI.Messages = new List<Message>();
PoAI.Messages.AddRange(messagesHistory);
var OpenAISDK = InternalConfigurationDI.GetService<IOpenaiSdkService>();
var completion = await OpenAISDK.GetGenAICompletionAsync(PoAI);
var response = completion.Value.Choices[0].Message.Content;
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. |
-
net6.0
- Azure.AI.OpenAI (>= 1.0.0-beta.7)
- EPPlus (>= 4.5.3.3)
- Microsoft.AspNetCore.Mvc.NewtonsoftJson (>= 6.0.0)
- Microsoft.Bot.Builder.Azure (>= 4.20.1)
- Microsoft.Bot.Builder.Azure.Blobs (>= 4.20.1)
- Microsoft.Bot.Builder.Dialogs (>= 4.20.1)
- Microsoft.Bot.Builder.Integration.AspNet.Core (>= 4.20.1)
- Microsoft.Bot.Connector (>= 4.21.2)
- Microsoft.Extensions.DependencyInjection (>= 6.0.1)
- MongoDB.Driver (>= 2.23.1)
- NPOI (>= 2.6.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.