Tag Archives: microsoft
How to Disable the Strong Password Requirement
Hello,
I followed the instructions in the Set strong passwords guide and used the following command
Update-MgUser -UserId <UserPrincipalName> -PasswordPolicies “DisableStrongPassword”
However, when I tried to set a simple password, I still received the message: “Choose a password that is harder to guess.”
Could you please assist me in resolving this issue?
Thank you.
Hello,I followed the instructions in the Set strong passwords guide and used the following command Update-MgUser -UserId <UserPrincipalName> -PasswordPolicies “DisableStrongPassword” However, when I tried to set a simple password, I still received the message: “Choose a password that is harder to guess.”Could you please assist me in resolving this issue?Thank you. Read More
Trouble Editing data in a cell, ivolves entire sheet
I’ve tried several different ideas but haven’t solved my problem. It drops me a cell either down or sidewise.
I’ve tried several different ideas but haven’t solved my problem. It drops me a cell either down or sidewise. Read More
MGDC for SharePoint FAQ: How can I estimate my Azure bill? Updated!
Introduction
When gathering SharePoint data through Microsoft Graph Data Connect, you are billed through Azure. As I write this blog, the price to pull 1,000 objects from Microsoft Graph Data Connect in the US is $0.75, plus the cost for Azure infrastructure like Azure Storage and Azure Synapse.
That is true for all datasets except the SharePoint Files dataset, which has a different billing rate. Because of its typical high volume, the SharePoint Files dataset is billed at $0.75 per 50,000 objects.
I wrote a blog about what counts as an object, but I frequently get questions about how to estimate the overall Azure bill for the Microsoft Graph Data Connect for SharePoint for a specific project. Let me try to clarify things…
Before we start, here are a few notes and disclaimers:
These are estimates and your specific Azure bill will vary.
Check the official Azure links provided. Rates may vary by country and over time.
These are Azure pay-as-you-go list prices in the US as of October 2024.
You may benefit from Azure discounts, like savings using a pre-paid plan.
How many objects?
To estimate the number of objects, you start by finding out the number of sites in the tenant. This should include all sites (not just active sites) in your tenant. You can find this number easily in the SharePoint Admin Center. That will be the number of objects in your SharePoint Sites dataset.
Finding the number of SharePoint Groups and SharePoint Permissions will require some estimation. I recently collected some telemetry and saw that the average number of SharePoint Groups per Site for a sample of large tenants was around 31. The average SharePoint permissions per site was around 61. The average number of files per site was 2,874.
Delta pulls (gathering just what changed) will be smaller, but that also varies depending on how much collaboration happens in your tenant (in the Delta numbers below, I am estimating a 5% change for an average collaboration level).
Here’s a table to help you estimate your Microsoft Graph Data Connect for SharePoint costs:
Notes for the table above:
* Higher collaboration level assumes twice the average in terms of groups, permissions and files.
** Security scenario includes Sites, Groups and Permissions. Capacity Scenario includes Sites and Files.
*** Delta assumes 5% change for average collaboration and 10% change for high collaboration. These are on the high side for one week’s worth of changes. Your numbers will likely be smaller.
As you can see, smaller tenants with an average collaboration will see costs below $10 for the smaller Sites dataset and below $1,000 for larger datasets like Permissions or Files.
If you want to estimate the number of SharePoint objects more precisely, there is an option to sample the dataset and get a total object count without pulling the entire dataset. For more information, see MGDC for SharePoint FAQ: How can I sample or estimate the number objects in a dataset?
The official information about Microsoft Graph Data Connect pricing is at https://azure.microsoft.com/en-us/pricing/details/graph-data-connect/
How much storage?
The SharePoint information you get from Microsoft Graph Data Connect will be stored in an Azure Storage account. That also incurs some cost, but it’s usually small when compared to the Microsoft Graph Data Connect costs for data pulls. The storage will be proportional to the number of objects and to the size of these objects.
Again, this will vary depending on the amount of collaboration in the tenant. More sharing means more members in groups and more people in the permissions, which will result in more objects and also larger objects.
I also did some estimating of object size and arrived at around 2KB per SharePoint Site object, 20KB per SharePoint Group object, 3KB per Permission object and 1KB per file object. There are several Azure storage options including Standard vs. Premium, LRS vs. GRS, v1 vs. v2 and Hot vs. Cool. For Microsoft Graph Data Connect, you can go with a Standard + LRS + V2 + Cool blob storage account, which costs $0.01 per GB per month.
Here’s a table to help you estimate your Azure Storage costs:
The same notes from the previous table apply here.
As you can see, smaller tenants with average collaboration will see storage costs below $1000/month, most of it going to storing the larger Files dataset. The cost for delta dataset storage is also fairly small, even for the largest of tenants. There are additional costs per storage operation like read and write but those are negligible at this scale (for instance, $0.065 per 10,000 writes and $0.005 per 10,000 reads).
The official information about Azure Storage pricing is at https://azure.microsoft.com/en-us/pricing/details/storage/blobs/
What about Synapse?
You will also typically use Azure Synapse to move the SharePoint data from Microsoft 365 to your Azure account. You could run a pipeline daily to get the information and do some basic processing, like computing deltas or creating aggregations.
Here are a few of the items that are billed for Azure Synapse when running Microsoft Graph Data Connect pipelines:
Azure Hosted – Integration Runtime – Data Movement – $0.25/DIU-hour
Azure Hosted – Integration Runtime – Pipeline Activity (Azure Hosted) – $0.005/hour
Azure Hosted – Integration Runtime – Orchestration Activity Run – $1 per 1,000 runs
vCore – $0.15 per vCore-hour
As with Azure Storage, the costs here are small. You will likely need one pipeline run per day and it will typically run in less than one hour for a small tenant. Large tenants might need a few hours per run to gather all their SharePoint datasets. You should expect less than $10/month for smaller tenants and less than $100/month for larger and/or more collaborative tenants.
The official information about Azure Synapse pricing is at https://azure.microsoft.com/en-us/pricing/details/synapse-analytics/
Closing notes
These are the main meters in Azure to get you started with costs related to Microsoft Graph Data Connect for SharePoint. I suggest experimenting with a small test/dev tenant to get familiar with Azure billing.
For more information about Microsoft Graph Data Connect for SharePoint, see the links at https://aka.ms/SharePointData.
Microsoft Tech Community – Latest Blogs –Read More
Teams main page
Since the beginning of my subscription, EVERYTIME I am in a Teams meeting, I am in a small box in the lower right guest corner and not on the main page where other meeting participants are. After many instances of people trying to fix the problem, nobody has. How do I correct this problem? Please help!
Since the beginning of my subscription, EVERYTIME I am in a Teams meeting, I am in a small box in the lower right guest corner and not on the main page where other meeting participants are. After many instances of people trying to fix the problem, nobody has. How do I correct this problem? Please help! Read More
Access to start menu
Windows 10 IoT Enterprise LTSC
Version 21H2
Installed on 16/10/2024
OS build 19044.5011
Experience Windows Feature Experience Pack 1000.19060.1000.0
Following update KB5044273 ‘left click’ Windows logo and search bar inoperative. (right click ok)
Uninstalled update – everything working fine. See event viewer dump below.
Note : SFC scan showed no problems.
Log Name: Application
Source: Application Error
Date: 01/11/2024 21:13:01
Event ID: 1000
Task Category: (100)
Level: Error
Keywords: Classic
User: N/A
Computer: DESKTOP-9G9MAB2
Description:
Faulting application name: StartMenuExperienceHost.exe, version: 0.0.0.0, time stamp: 0x124eac11
Faulting module name: KERNELBASE.dll, version: 10.0.19041.2913, time stamp: 0xa1c3e870
Exception code: 0xc000027b
Fault offset: 0x000000000012d862
Faulting process id: 0x2e4
Faulting application start time: 0x01db2ca2d52abc83
Faulting application path: C:WINDOWSSystemAppsMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyStartMenuExperienceHost.exe
Faulting module path: C:WINDOWSSystem32KERNELBASE.dll
Report Id: 628d9b62-4894-46fd-8d44-f6f935319ae7
Faulting package full name: Microsoft.Windows.StartMenuExperienceHost_10.0.19041.4239_neutral_neutral_cw5n1h2txyewy
Faulting package-relative application ID: App
Event Xml:
<Event xmlns=”http://schemas.microsoft.com/win/2004/08/events/event“>
<System>
<Provider Name=”Application Error” />
<EventID Qualifiers=”0″>1000</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>100</Task>
<Opcode>0</Opcode>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime=”2024-11-01T21:13:01.5650495Z” />
<EventRecordID>12114</EventRecordID>
<Correlation />
<Execution ProcessID=”0″ ThreadID=”0″ />
<Channel>Application</Channel>
<Computer>DESKTOP-9G9MAB2</Computer>
<Security />
</System>
<EventData>
<Data>StartMenuExperienceHost.exe</Data>
<Data>0.0.0.0</Data>
<Data>124eac11</Data>
<Data>KERNELBASE.dll</Data>
<Data>10.0.19041.2913</Data>
<Data>a1c3e870</Data>
<Data>c000027b</Data>
<Data>000000000012d862</Data>
<Data>2e4</Data>
<Data>01db2ca2d52abc83</Data>
<Data>C:WINDOWSSystemAppsMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyStartMenuExperienceHost.exe</Data>
<Data>C:WINDOWSSystem32KERNELBASE.dll</Data>
<Data>628d9b62-4894-46fd-8d44-f6f935319ae7</Data>
<Data>Microsoft.Windows.StartMenuExperienceHost_10.0.19041.4239_neutral_neutral_cw5n1h2txyewy</Data>
<Data>App</Data>
</EventData>
</Event>
Windows 10 IoT Enterprise LTSCVersion 21H2Installed on 16/10/2024OS build 19044.5011Experience Windows Feature Experience Pack 1000.19060.1000.0 Following update KB5044273 ‘left click’ Windows logo and search bar inoperative. (right click ok)Uninstalled update – everything working fine. See event viewer dump below.Note : SFC scan showed no problems. Log Name: ApplicationSource: Application ErrorDate: 01/11/2024 21:13:01Event ID: 1000Task Category: (100)Level: ErrorKeywords: ClassicUser: N/AComputer: DESKTOP-9G9MAB2Description:Faulting application name: StartMenuExperienceHost.exe, version: 0.0.0.0, time stamp: 0x124eac11Faulting module name: KERNELBASE.dll, version: 10.0.19041.2913, time stamp: 0xa1c3e870Exception code: 0xc000027bFault offset: 0x000000000012d862Faulting process id: 0x2e4Faulting application start time: 0x01db2ca2d52abc83Faulting application path: C:WINDOWSSystemAppsMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyStartMenuExperienceHost.exeFaulting module path: C:WINDOWSSystem32KERNELBASE.dllReport Id: 628d9b62-4894-46fd-8d44-f6f935319ae7Faulting package full name: Microsoft.Windows.StartMenuExperienceHost_10.0.19041.4239_neutral_neutral_cw5n1h2txyewyFaulting package-relative application ID: AppEvent Xml:<Event xmlns=”http://schemas.microsoft.com/win/2004/08/events/event”><System><Provider Name=”Application Error” /><EventID Qualifiers=”0″>1000</EventID><Version>0</Version><Level>2</Level><Task>100</Task><Opcode>0</Opcode><Keywords>0x80000000000000</Keywords><TimeCreated SystemTime=”2024-11-01T21:13:01.5650495Z” /><EventRecordID>12114</EventRecordID><Correlation /><Execution ProcessID=”0″ ThreadID=”0″ /><Channel>Application</Channel><Computer>DESKTOP-9G9MAB2</Computer><Security /></System><EventData><Data>StartMenuExperienceHost.exe</Data><Data>0.0.0.0</Data><Data>124eac11</Data><Data>KERNELBASE.dll</Data><Data>10.0.19041.2913</Data><Data>a1c3e870</Data><Data>c000027b</Data><Data>000000000012d862</Data><Data>2e4</Data><Data>01db2ca2d52abc83</Data><Data>C:WINDOWSSystemAppsMicrosoft.Windows.StartMenuExperienceHost_cw5n1h2txyewyStartMenuExperienceHost.exe</Data><Data>C:WINDOWSSystem32KERNELBASE.dll</Data><Data>628d9b62-4894-46fd-8d44-f6f935319ae7</Data><Data>Microsoft.Windows.StartMenuExperienceHost_10.0.19041.4239_neutral_neutral_cw5n1h2txyewy</Data><Data>App</Data></EventData></Event> Read More
Document Library Approval Emails Not Coming Through
I’d like to start using approvals for certain doc libraries. I’ve turned them on and, on the SharePoint side, they appear to be working, but the site owner is not getting approval emails. (I’m the site owner BTW.) My account gets other emails from SharePoint just find and our Exchange admin says nothing’s being blocked to my account.
The library settings are below. What am I missing?
In Microsoft’s documentation, the only place I can find to designate approval accounts are for page approvals via Power Automate. I set that up as well, thinking maybe that would transfer to doc library approvals, but nope. (Page approvals are working find BTW.)
I’d like to start using approvals for certain doc libraries. I’ve turned them on and, on the SharePoint side, they appear to be working, but the site owner is not getting approval emails. (I’m the site owner BTW.) My account gets other emails from SharePoint just find and our Exchange admin says nothing’s being blocked to my account. The library settings are below. What am I missing? In Microsoft’s documentation, the only place I can find to designate approval accounts are for page approvals via Power Automate. I set that up as well, thinking maybe that would transfer to doc library approvals, but nope. (Page approvals are working find BTW.) Read More
October 2024 V2 Title Plan now available!
October V2 Title Plan has been uploaded. Go to: aka.ms/Courseware_Title_Plan
Don’t forget to checkout bi-weekly updates made to the Title Plan, shared in its permanent location, linked above.
Please note: This is not a support forum. Only necessary comments related to this specific blog post content are permitted and responded to.
For Training Services Partners support:
aka.ms/TSP_Learn_Resources
partner.microsoft.com/support
For Microsoft Certified Trainers support:
Microsoft Tech Community – Latest Blogs –Read More
Additional MB courses coming in December! MB-7005 & 7006
Course Name: MB-7005: Create and manage journeys with Dynamics 365 Customer Insights
Release Date: December 13th, 2024 (Release dates are subject to change)
Duration: 1-Day ILT
Solution Area: Business Applications
Credential: Applied Skills Assessment
Course Description:
Audience:
Students in this course should be familiar with Dynamics 365 Customer Insights and have an interest in running marketing campaigns and basic marketing principles.
Course Name: MB-7006: Create and manage segments in Customer Insights – Data
Release Date: December 13th, 2024 (Release dates are subject to change)
Duration: 1-Day ILT
Solution Area: Business Applications
Credential: Applied Skills Assessment
Course Description:
Audience:
Students should be familiar with Customer Insights – Data and have an interest in building segments that target unified profiles. Some segmentation/marketing experience and some simple data analysis experience is recommended.
Please note: This is not a support forum. Only comments related to this specific blog post content are permitted and responded to.
If you have ILT questions not related to this blog post, please reach out to your program forums & resources for additional support.
For Training Services Partners:
aka.ms/TSP_Learn_Resources
partner.microsoft.com/support
For Microsoft Certified Trainers:
Microsoft Tech Community – Latest Blogs –Read More
Azure Open IA, acelerando nossos caminhos.
Há algum tempo temos ouvido falar sobre o OpenAI, que se tornou um dos temas mais requisitados da atualidade. É comum sentirmos o desejo de testar suas funcionalidades, porém, surge a dúvida de por onde começar e como fazê-lo sem comprometer a confidencialidade de nossos dados.
O caminho que vou apresentar aqui envolve o uso de um acelerador do Azure para o OpenAI azure-search-openai-demo, ele nos auxiliará desde a configuração da infraestrutura até a implementação de aplicações de exemplo. Fiquei impressionado com a facilidade de uso, a estratégia de usar o “azd” facilitou muito as coisas, veja como instalar aqui Install the Azure Developer CLI | Microsoft Learn
Basta executar alguns comandos e pronto, o ambiente estará todo configurado no Azure. Eu apenas criei uma nova pasta sem clonar nenhum repositório e executei esses comandos.
azd auth login
azd up
1-) azd init -t azure-search-openai-demo
2-) azd auth login
3-) azd up
Ao fim da execução de mais ou menos 30 minutos, pude ver esses recursos criados:
Visualizador de Recursos:
A aplicação nasce pronta:
Arquivos criados ao rodar o comando azd init -t azure-search-openai-demo:
Basta fazer as perguntas. Inclusive, uma série de documentos de exemplo foram adicionados à solução, os quais podem ser encontrados na pasta local “data” ou no armazenamento do Azure.
O próximo passo será trabalhar com a ingestão de dados. Existe um guia na própria documentação do acelerador intitulado Indexing documents for the Chat App. Para começar, vou fazer o upload de um artigo meu do blog, chamado “Escalando nodes e escalando e pods no AKS. | by Wilson Santos | Medium”, para isso, basta gerar um PDF e colocar o arquivo dentro da pasta “data” do acelerador, diretamente na sua máquina local.
Após isso, você irá executar um pequeno script em PowerShell chamado “prepdoc”. O comando para executá-lo é o seguinte
Assim que terminar de rodar podemos fazer perguntas sobre esse conteúdo.
O acelerador traz uma implementação em React e python e podemos estudar como ela funciona usando esse código que fica na pasta app do acelerador
Temos um front em React e um backend em Python, mas caso você esteja acostumado com C# que é o meu caso, nada melhor que explorar os SDKS do Azure.AI.OpenAI e o SemanticKernel que eu estou apresentando a seguir.
Agora, vamos criar um pequeno programa em .NET Core Console que aproveitará toda a infraestrutura criada pelo acelerador. Este programa será capaz de fazer perguntas ao Azure Open AI e, além disso, responderá com base nos documentos que forem atualizados na base de conhecimento. Para isso, utilizaremos o pacote Azure.AI.OpenAI. No meu exemplo, estou utilizando a versão 2.0.0.
Primeiro passo vamos criar um client da classe AzureOpenAIClient:
Para as credenciais e o endpoint, utilizamos uma chave do recurso que pode ser obtida na seção “Keys and Endpoint” da instância do Azure OpenAI.
var credential = new AzureKeyCredential(“…”);
Depois, vamos criar uma instancia da classe chamada SearchClient. Essa classe ajudará na conexão com o serviço de busca (Search service).
algo assim:
var searchEndpoint = new Uri(“…”);
var searchCredential = new AzureKeyCredential(“…”);
var indexName = “gptkbindex”;
var searchClient = new SearchClient(searchEndpoint, indexName, searchCredential);
var searchOptions = new SearchOptions
{
Size = 5 // Número de documentos a recuperar
};
var searchResults = searchClient.Search<SearchDocument>(text, searchOptions);
var retrievedDocuments = searchResults.Value.GetResults().Select(result => result.Document[“content”].ToString());
var context = string.Join(“n”, retrievedDocuments);
A classe SearchClient também requer o uso de uma chave de segurança. Para encontrá-la, acessamos a instância do serviço de busca (Search service) na seção “Keys”
o endpoint esta em overview
Agora vamos criar uma instancia da classe ChatClient, que será responsável por fazer perguntas para o OpenAI, e passar o prompt para o Azure openIA.
E aqui que está o grande segredo do RAG, tudo é prompt, pegamos o resultado da busca do SearchClient que está na variável context e juntamos no prompt.
var prompt = $”Contexto: {context}nPergunta: {text}”;
ChatClient chatClient = await azureClient.CompleteChatAsync(“gpt-4o”);
ChatCompletion completion = chatClient.CompleteChat(new List<ChatMessage>
{
new SystemChatMessage(“Você é um assistente atencioso”),
new UserChatMessage(prompt),
});
Para obter o valor do campo DeploymentName, no meu caso o gpt-4o, você pode encontrá-lo na instância do OpenAI. Basta abrir os “Model deployments”, clicar em “Management deployment”. Isso abrirá o Azure OpenAI Studio, onde você poderá visualizar os modelos implantados.
os pacotes utilizados foram esses:
<PackageReference Include=”Azure.Identity” Version=”1.13.1″ />
<PackageReference Include=”Azure.Search.Documents” Version=”11.4.0″ />
using Azure.AI.OpenAI;
using Azure.Search.Documents;
using Azure.Search.Documents.Models;
using OpenAI.Chat;
public class Program
{
static async Task Main(string[] args)
{
while (true)
{
Console.WriteLine(“Digite uma Pergunta”);
var question = Console.ReadLine();
if (question != null)
{
var result = await AskingChatCompletionWithSearchsAsync(question);
Console.WriteLine(result);
}
}
}
static async Task<string> AskingChatCompletionWithSearchsAsync(string text)
{
var endpoint = new Uri(“https://openiapriv02.openai.azure.com/”);
var credential = new AzureKeyCredential(“…”);
AzureOpenAIClient azureClient = new(endpoint, credential);
var searchEndpoint = new Uri(“https://gptkb-kv4atymcdg6pg.search.windows.net”);
var searchCredential = new AzureKeyCredential(“…”);
var indexName = “gptkbindex”;
var searchClient = new SearchClient(searchEndpoint, indexName, searchCredential);
var searchOptions = new SearchOptions
{
Size = 5 // Número de documentos a recuperar
};
var searchResults = searchClient.Search<SearchDocument>(text, searchOptions);
var retrievedDocuments = searchResults.Value.GetResults().Select(result => result.Document[“content”].ToString());
var context = string.Join(“n”, retrievedDocuments);
var prompt = $”Contexto: {context}nPergunta: {text}”;
ChatClient chatClient = azureClient.GetChatClient(“gpt-4o”);
ChatCompletion completion = await chatClient.CompleteChatAsync(new List<ChatMessage>
{
new SystemChatMessage(“Você é um assistente atencioso”),
new UserChatMessage(prompt),
});
var result = $”{completion.Role}: {completion.Content[0].Text}”;
return result;
}
}
fiz uma pergunta para o assistente com base em um documento que já veio de exemplo no acelerador o Benefit_Options.pdf, perguntei o que é o programa Northwind Health Plus?. Observe que a resposta é dada com base nos documentos indexados no Search service
Os modelos são constantemente atualizados com novas características, as versões de modelo são a maneira de controlar essas mudanças do OpenAI.
Em particular, os modelos GPT-3.5 Turbo e GPT-4 recebem atualizações regulares com novos recursos. Por exemplo, as versões 0613 do GPT-3.5 Turbo e GPT-4 introduziram a chamada de função. A chamada de função é um recurso popular que permite ao modelo criar saídas estruturadas que podem ser usadas para chamar ferramentas externas. Fique atento aos modelos disponíveis para sua região quais modelos seu SDK suporta, saiba mais em Azure OpenAI Service model versions — Azure OpenAI | Microsoft Learn
O Semantic Kernel é um SDK de código aberto projetado para integrar com o código existente. Ele suporta várias linguagens de programação, incluindo C#, Python e Java. Através de conectores e plugins, o Semantic Kernel permite adicionar inteligencia aos aplicativos. Sua flexibilidade permite aos desenvolvedores orquestrar o código existente sem se prender a um provedor específico de modelos de IA, proporcionando liberdade na escolha e combinação de serviços conforme as necessidades do projeto. Saiba mais
Vamos fazer algumas implementações básicas, a começar por um chat básico sem RAG, é importante lembrar que alguns dos pacotes usados ainda estão em versões alpha não indicados para ambiente produtivo.
vamos começar a instalar o pacote
Agora vamos criar uma representação do que o SDK chama de Kernel, essa representação já adiciona a injeção do Chat Completion da nossa instancia do Azure Open IA
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
“gpt-4o”, // Azure OpenAI Deployment Name
“https://wsopenia.openai.azure.com/”, // Azure OpenAI Endpoint
“…”); // Azure OpenAI Key
var kernel = builder.Build();
O prompt no Semantic Kernel é um template em formato texto que permite valorar variáveis, chamar funções e extrair valores, para isso usamos as chaves {{…}}. no nosso exemplo temos as variáveis history e input em uma estrutura que mostra para a IA quais informações são a entrada de usuário e quais são apenas instruções. para saber mais sobre prompt Using the out-of-the-box prompt template language | Microsoft Learn
var prompt = @”Chat:{{$history}} User:{{$input}}”;
Agora usamos o método CreateFunctionFromPrompt especificando as configurações de prompt como MaxTokens, Temperatura etc.
{
MaxTokens = 500,
ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions
});
e usando a classe KernelArguments, passamos os valores das variáveis
arguments[“input”] = question;
arguments[“history”] = questionHistory;
a etapa final é chamar as funções InvokeAsync passando a instancia de “kf” e passando a instancia dos argumentos
var result = await kernel.InvokeAsync(kf, arguments);
um exemplo de implementação é essa:
var arguments = new KernelArguments();
var prompt = @”Chat:{{$history}} User:{{$input}}”;
var kf = kernel.CreateFunctionFromPrompt(prompt, executionSettings: new OpenAIPromptExecutionSettings
{
MaxTokens = 500,
ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions
});
var questionHistory = “”;
while (true)
{
Console.WriteLine(“Digite uma Pergunta”);
var question = Console.ReadLine();
// Add user input
arguments[“input”] = question;
var result = await kernel.InvokeAsync(kf, arguments);
Console.WriteLine(“result:” + result);
//Console.WriteLine(“history:” + questionHistory);
questionHistory += “Chat:” + result + “User:” + question + “n”;
arguments[“history”] = questionHistory;
}
aqui não temos RAG apenas o LLM respondendo a pergunta “o que é o Azure OpenIA”?
Pacotes utilizados:
Com ele podemos usar os plugins para interagir com nosso código existente como por exemplo consultar pedidos em uma base de dados, e podemos usar os conectores para integrar com os serviços de IA, por exemplo o Azure openIA, saiba mais
Vou mostrar um exemplo de plugin, vou criar uma classe order:
public sealed class Order
{
[KernelFunction, Description(“Show order details for number”)]
public static string Sqrt([Description(“The number to order details”)] double number1)
{
return $”The detail about order {number1} is your current state is closed.”;
}
}
perceba que descrevemos seu comportamento usando um atributo KernelFunction
depois eu vou adicionar esse plugin dessa forma:
var builder = Kernel.CreateBuilder();
builder.Plugins.AddFromType<Order>();
feito isso podemos optar pela auto chamada configurando a classe OpenAIPromptExecutionSettings com propriedade ToolCallBehavior setada para o valor AutoInvokeKernelFunctions
OpenAIPromptExecutionSettings openAIPromptExecutionSettings = new()
{
ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions,
};
o restante do código é o mesmo mas vou colocar um exemplo completo aqui:
builder.AddAzureOpenAIChatCompletion(
“gpt-4o”, // Azure OpenAI Deployment Name
“https://cog-nggxeq6fpjnxg.openai.azure.com/”, // Azure OpenAI Endpoint
“…”); // Azure OpenAI Key
builder.Plugins.AddFromType<Order>();
var arguments = new KernelArguments();
var prompt = @”Chat:{{$history}} User:{{$input}}”;
var kf = kernel.CreateFunctionFromPrompt(prompt, executionSettings: new OpenAIPromptExecutionSettings
{
MaxTokens = 500,
ToolCallBehavior = ToolCallBehavior.AutoInvokeKernelFunctions
});
var questionHistory = “”;
while (true)
{
Console.WriteLine(“Digite uma Pergunta”);
var question = Console.ReadLine();
// Add user input
arguments[“input”] = question;
var result = await kernel.InvokeAsync(kf, arguments);
Console.WriteLine(“result:” + result);
questionHistory += “Chat:” + result + “User:” + question + “\n”;
arguments[“history”] = questionHistory;
}
console e execução respondendo a pergunta “Show order details for number 10”?
pacotes utilizados:
Aqui temos o uso de um conector e de um plugin, o conector vai adicionar accesso ao IA Search por meio dessa implementação:
memoryBuilder.WithMemoryStore(new AzureAISearchMemoryStore(
“https://gptkb-nggxeq6fpjnxg.search.windows.net”,
“…”)
);
Alem do pacote do Microsoft.SemanticKernel ainda vamos precisar de mais dois pacotes o Microsoft.SemanticKernel.Connectors.AzureAISearch e o Microsoft.SemanticKernel.Plugins.Memory
Mas também precisamos do plugin TextMemoryPlugin para acessar as memorias, mas ates de acessar vamos cria-las
Para isso vamos usar essa implementação:
const string MemoryCollectionName = “aboutMe”;
await memory.SaveInformationAsync(MemoryCollectionName, id: “info1”, text: “My name is Andrea”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info2”, text: “I currently work as a tourist operator”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info3”, text: “I currently live in Seattle and have been living there since 2005”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info4”, text: “I visited France and Italy five times since 2015”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info5”, text: “My family is from New York”);
kernel.ImportPluginFromObject(new TextMemoryPlugin(memory));
Com isso sera gerado um index na IA Search chamado aboutme
lista de indexs
Search explorer
Campos do index
esse index foi gerado usando esse Text Embedding text-embedding-ada-002, que é um tipo de algoritmo de vetorização
Deployments Azure OpenAI Studio
com essa implementação temos a configuração da instancia do Azure openIA que irá fazer o embending das perguntas usando o modelo text-embedding-ada-002 :
memoryBuilder.WithTextEmbeddingGeneration((loggerFactory, httpClient) => {
return new AzureOpenAITextEmbeddingGenerationService(
“text-embedding-ada-002”, // Embedding generation service name
“https://openiapriv02.openai.azure.com/”,
“…”,
httpClient: httpClient,
loggerFactory: loggerFactory
);
});
por fim para fazer as perguntas ao chat e receber resposta que vem desse index como se fossem uma lembrança do chat, mas antes precisamos enriquecer o prompt com essas informações algo assim:
const string skPrompt = @”
ChatBot can have a conversation with you about any topic.
It can give explicit instructions or say ‘I don’t know’ if it does not have an answer.
Information about me, from previous conversations:
– {{$fact1}} {{recall $fact1}}
– {{$fact2}} {{recall $fact2}}
– {{$fact3}} {{recall $fact3}}
– {{$fact4}} {{recall $fact4}}
– {{$fact5}} {{recall $fact5}}
Chat:
{{$history}}
User: {{$userInput}}
ChatBot: “;
esses valores serão passados pelo KernelArguments:
arguments[“fact1”] = “What my name?”;
arguments[“fact2”] = “where do I live?”;
arguments[“fact3”] = “where is my family from?”;
arguments[“fact4”] = “where have I travelled?”;
arguments[“fact5”] = “what do I do for work?”;
veja a implementação completa:
var builder = Kernel.CreateBuilder();
builder.AddAzureOpenAIChatCompletion(
“gpt-35-turbo”, // Azure OpenAI Deployment Name
“https://cog-nggxeq6fpjnxg.openai.azure.com/”, // Azure OpenAI Endpoint
“…”); // Azure OpenAI Key
var kernel = builder.Build();
#pragma warning disable SKEXP0001, SKEXP0010, SKEXP0050, SKEXP0020
var memoryBuilder = new MemoryBuilder();
memoryBuilder.WithTextEmbeddingGeneration((loggerFactory, httpClient) => {
return new AzureOpenAITextEmbeddingGenerationService(
“text-embedding-ada-002”, // Embedding generation service name
“https://openiapriv02.openai.azure.com/”,
“…”,
httpClient: httpClient,
loggerFactory: loggerFactory
);
});
memoryBuilder.WithMemoryStore(new AzureAISearchMemoryStore(
“https://gptkb-nggxeq6fpjnxg.search.windows.net”,
“…”)
);
var memory = memoryBuilder.Build();
const string MemoryCollectionName = “aboutMe”;
await memory.SaveInformationAsync(MemoryCollectionName, id: “info1”, text: “My name is Andrea”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info2”, text: “I currently work as a tourist operator”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info3”, text: “I currently live in Seattle and have been living there since 2005”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info4”, text: “I visited France and Italy five times since 2015”);
await memory.SaveInformationAsync(MemoryCollectionName, id: “info5”, text: “My family is from New York”);
var questions = new[]
{
“what is my name?”,
“where do I live?”,
“where is my family from?”,
“where have I travelled?”,
“what do I do for work?”,
};
#pragma warning disable SKEXP0050
// TextMemoryPlugin provides the “recall” function
kernel.ImportPluginFromObject(new TextMemoryPlugin(memory));
const string skPrompt = @”
ChatBot can have a conversation with you about any topic.
It can give explicit instructions or say ‘I don’t know’ if it does not have an answer.
Information about me, from previous conversations:
– {{$fact1}} {{recall $fact1}}
– {{$fact2}} {{recall $fact2}}
– {{$fact3}} {{recall $fact3}}
– {{$fact4}} {{recall $fact4}}
– {{$fact5}} {{recall $fact5}}
Chat:
{{$history}}
User: {{$userInput}}
ChatBot: “;
var chatFunction = kernel.CreateFunctionFromPrompt(skPrompt, new OpenAIPromptExecutionSettings { MaxTokens = 200, Temperature = 0.8 });
#pragma warning disable SKEXP0050
var arguments = new KernelArguments();
arguments[“fact1”] = “What my name?”;
arguments[“fact2”] = “where do I live?”;
arguments[“fact3”] = “where is my family from?”;
arguments[“fact4”] = “where have I travelled?”;
arguments[“fact5”] = “what do I do for work?”;
arguments[TextMemoryPlugin.CollectionParam] = MemoryCollectionName;
arguments[TextMemoryPlugin.LimitParam] = “2”;
arguments[TextMemoryPlugin.RelevanceParam] = “0.8”;
var history = “”;
arguments[“history”] = history;
Func<string, Task> Chat = async (string input) => {
// Save new message in the kernel arguments
arguments[“userInput”] = input;
// Process the user message and get an answer
var answer = await chatFunction.InvokeAsync(kernel, arguments);
// Append the new interaction to the chat history
var result = $”nUser: {input}nChatBot: {answer}n”;
history += result;
arguments[“history”] = history;
// Show the bot response
Console.WriteLine(result);
};
while (true)
{
Console.WriteLine(“Digite uma Pergunta”);
var question = Console.ReadLine();
if (question != null)
{
await Chat(question);
}
}
console e execução respondendo a pergunta “What my name”?
Pacotes utilizados:
<PackageReference Include=”Microsoft.SemanticKernel.Connectors.AzureAISearch” Version=”1.6.3-alpha” />
<PackageReference Include=”Microsoft.SemanticKernel.Plugins.Memory” Version=”1.6.3-alpha” />
<PackageReference Include=”System.Linq.Async” Version=”6.0.1″ />
azure-search-openai-demo
azure-search-openai-demo-csharp
Azure/Vector-Search-AI-Assistant at cognitive-search-vector (github.com)
Troubleshoot Azure Developer CLI | Microsoft Learn
Usar seus próprios dados com o Serviço OpenAI do Azure — Azure OpenAI | Microsoft Learn
Indexing documents for the Chat App
AzureAIServicesLandingZone
Create AI agents with Semantic Kernel | Microsoft Learn
Using the out-of-the-box prompt template language | Microsoft Learn
Azure OpenAI Service model versions — Azure OpenAI | Microsoft Learn
GUEST POST: Getting Started with Semantic Kernel for LangChain users | Semantic Kernel (microsoft.com)
Introducing API Manifest Plugins for Semantic Kernel | Semantic Kernel (microsoft.com)
Microsoft Tech Community – Latest Blogs –Read More
Coming soon: MS-4014: Build a foundation to extend Microsoft 365 Copilot
Course Name: MS-4014: Build a foundation to extend Microsoft 365 Copilot
Release Date: November 22nd, 2024 (Release dates are subject to change)
Duration: 1-Day ILT
Solution Area: Modern Work
Credential: N/A
Course Description:
Audience:
This course is role-agnostic and is appropriate for any learner who wants to learn the basics of how to extend their Microsoft Copilot 365 functionality.
Please note: This is not a support forum. Only comments related to this specific blog post content are permitted and responded to.
If you have ILT questions not related to this blog post, please reach out to your program forums & resources for additional support.
For Training Services Partners:
aka.ms/TSP_Learn_Resources
partner.microsoft.com/support
For Microsoft Certified Trainers:
Microsoft Tech Community – Latest Blogs –Read More
Announcing Oracle Database@Azure in Italy North and Brazil South
Microsoft and Oracle are excited to announce that we are expanding the general availability of Oracle Database@Azure for the Azure Italy North and Brazil South regions.
This significant expansion underscores our commitment to providing unrivaled cloud services, fostering innovation, and meeting the diverse needs of our enterprise customers. Out of the 21 announced regions, Oracle Database@Azure is now available in eight Azure regions – Italy North, Brazil South, Australia East, Canada Central, East US, France Central, Germany West Central, and UK South.
To meet growing global demand, the service will soon be available in more regions, including Central India, Central US, East US 2, Japan East, North Europe, South Central US, Southeast Asia, Spain Central, Sweden Central, UAE North, West Europe, West US 2, and West US 3.
In addition to the 21 primary regions, we’ve recently announced expanding disaster recovery support across several other Azure regions, including Brazil Southeast, Canada East, France South, Germany North, Japan West, North Central US, South India, Sweden South, UAE Central, UK West, and West US.
We invite you to explore Oracle Database@Azure and experience the benefits firsthand in our sessions at Microsoft Ignite. Come join us in-person or virtually to learn more!
Microsoft Ignite sessions:
Breakout session: BRK226: Technical deep dive on Oracle Database@Azure
Demo: THR633: How to run your Oracle workloads in Azure with Oracle Database@Azure
Demo: THR517: How to unlock Data and AI capabilities with Oracle Database@Azure
Demo: THRFP757 Develop apps using Oracle Database and AI on Microsoft Azure
Learn more: https://aka.ms/oracle
Technical documentation: Overview – Oracle Database@Azure | Microsoft Learn
Get skilled: https://aka.ms/ODAA_Learn
Microsoft Tech Community – Latest Blogs –Read More
Paragraphs and Page Breaks in Online Word keep breaking and displacing up or down after I save my do
This is probably a long shot, but I’ve been losing my mind trying to figure out how to fix this.
I have to use Online Word for several courses I’m taking, and whenever I’m writing a paper in it, I usually have no issues in it. However, when I come back to a previously saved document, I notice that most of my paragraphs have been displaced either up or down, or page breaks that I’ve put in have completely broken. This has actually caused me to lose points on a paper or two, and I had to explain to my instructor that this is a problem I’ve been having for awhile. I have no idea how to fix this, and I’m trying to provide my instructors with a flawless paper that doesn’t have any formatting issues. If anyone can help out, I’d appreciate it.
Thanks
This is probably a long shot, but I’ve been losing my mind trying to figure out how to fix this. I have to use Online Word for several courses I’m taking, and whenever I’m writing a paper in it, I usually have no issues in it. However, when I come back to a previously saved document, I notice that most of my paragraphs have been displaced either up or down, or page breaks that I’ve put in have completely broken. This has actually caused me to lose points on a paper or two, and I had to explain to my instructor that this is a problem I’ve been having for awhile. I have no idea how to fix this, and I’m trying to provide my instructors with a flawless paper that doesn’t have any formatting issues. If anyone can help out, I’d appreciate it. Thanks Read More
In Word for Mac, I don’t see a File tab to the left of the Home tab
I was looking for how to do something in Word and the Youtube videos describe selecting the File tab which their video shows to be left of the Home tab, but my Word has Home as the first tab with nothing to the left of it. I’ve installed the latest MS Word but still no File tab.
I’d love to learn how to retrieve it but also why did it ever disappear?
Thanks in advance.
Brian
I was looking for how to do something in Word and the Youtube videos describe selecting the File tab which their video shows to be left of the Home tab, but my Word has Home as the first tab with nothing to the left of it. I’ve installed the latest MS Word but still no File tab. I’d love to learn how to retrieve it but also why did it ever disappear? Thanks in advance.Brian Read More
URGENT: Updated course releases for DP-3020 & AZ-2007
Updated course releases:
DP-3020: Develop data-driven applications with Azure SQL Database
New release date: December 13th, 2024
Please see the initial blog post for any additional information about this course: Coming soon: DP-3020: Develop data-driven applications with Azure SQL Database – Microsoft Community Hub
AZ-2007: Accelerate app development by using GitHub Copilot
New release date: December 13th, 2024
Please see the initial blog post for any additional information about this course: Coming soon: AZ-2007: Accelerate app development by using GitHub Copilot – Microsoft Community Hub
We apologize for any inconveniences this may cause in your future ILT deliveries.
Thank you
Please note: This is not a support forum. Only comments related to this specific blog post content are permitted and responded to.
If you have ILT questions not related to this blog post, please reach out to your program forums & resources for additional support.
For Training Services Partners:
aka.ms/TSP_Learn_Resources
partner.microsoft.com/support
For Microsoft Certified Trainers:
Microsoft Tech Community – Latest Blogs –Read More
Warning in Excel when trying to use dynamic array
Hi there, I did a search on this before posting, but no luck yet. Consequently, if this has already been answered, please point me there. With that said, I am a “seasoned” user of Excel (aka old), and I am used to the old school CSE array formula. So now I am supposed to use dynamic arrays. OK I like learning new things, so I gave it a spin. I got a message from Excel about spilling an array that read like a warning or otherwise suggesting I did a Bad Thing. Looking that up brought me here.
USE CASE (in case it matters)
What I wanted to do was use a SUMIFS function to sum over a date range that was in another sheet arranged vertically (in a table), but put the result in a grid (i.e., not a table) that had the dates horizontally. The objective is to subtotal the amount for each day over a list that had many entries for each date. So maybe it was the transposition that made Excel throw a warning, but using the CSE formula works fine.
—–/END USE CASE
I can easily resolve this using a Pivot Table, but that’s not my question. Really, I want to know why is MS complaining about doing something its own documentation has said is preferrable to the legacy method? I don’t know who prevails in this disagreement. Is the documentation or the Excel internal messaging dominant in this case? Either way it undermines the usefulness of these warnings and tips, which I am turning off because they are worse than useless.
Hi there, I did a search on this before posting, but no luck yet. Consequently, if this has already been answered, please point me there. With that said, I am a “seasoned” user of Excel (aka old), and I am used to the old school CSE array formula. So now I am supposed to use dynamic arrays. OK I like learning new things, so I gave it a spin. I got a message from Excel about spilling an array that read like a warning or otherwise suggesting I did a Bad Thing. Looking that up brought me here. USE CASE (in case it matters)What I wanted to do was use a SUMIFS function to sum over a date range that was in another sheet arranged vertically (in a table), but put the result in a grid (i.e., not a table) that had the dates horizontally. The objective is to subtotal the amount for each day over a list that had many entries for each date. So maybe it was the transposition that made Excel throw a warning, but using the CSE formula works fine.—–/END USE CASE I can easily resolve this using a Pivot Table, but that’s not my question. Really, I want to know why is MS complaining about doing something its own documentation has said is preferrable to the legacy method? I don’t know who prevails in this disagreement. Is the documentation or the Excel internal messaging dominant in this case? Either way it undermines the usefulness of these warnings and tips, which I am turning off because they are worse than useless. Read More
Deleting Sum number box in Microsoft Excel.
How do I delete and stop the SUM box showing in Micreosoft Excel?
How do I delete and stop the SUM box showing in Micreosoft Excel? Read More
Can’t assign confidential sensitivity label – The label selected is unavailable in office on the web
Hello All,
I’ve been experiencing following issue, whenever I try to assign a confidential sensitivity label (which is the highest label in my case) to a doc in MS 365 or sharepoint I’m getting following error ( details of error, key config settings of the label and policy are listed below):
Note: I’m able to assign other lower level sensitivity labels on the web, but not confidential label
Appreciate any help in resolving this issue.
Error when assigning confidential label to a doc:
Error
Confidential Label key settings:
Following is the main config
Policy label key settings:
Confidential label has been correctly published to a policy as show below
I’m one of the user with the ability to create and assign labels.
Hello All,I’ve been experiencing following issue, whenever I try to assign a confidential sensitivity label (which is the highest label in my case) to a doc in MS 365 or sharepoint I’m getting following error ( details of error, key config settings of the label and policy are listed below):Note: I’m able to assign other lower level sensitivity labels on the web, but not confidential label Appreciate any help in resolving this issue. Error when assigning confidential label to a doc:ErrorConfidential Label key settings:Following is the main config Policy label key settings:Confidential label has been correctly published to a policy as show belowI’m one of the user with the ability to create and assign labels. Read More
Microsoft AI for Business Leaders Masterclass
Unlock the power of AI to Drive Business Success. This masterclass is designed specifically for business leaders who want to leaverage Microsoft’s cutting edge AI Technology for Enhancing Strategic Decision Making.
Date: November 25, 2024
Time: 12 pm-2 pm EST
Unlock the power of AI to Drive Business Success. This masterclass is designed specifically for business leaders who want to leaverage Microsoft’s cutting edge AI Technology for Enhancing Strategic Decision Making.Date: November 25, 2024Time: 12 pm-2 pm EST Read More
Using the FILTER function to filter out data
I have a large spreadsheet with over 3000 entries and multiple columns of data. I need to efficiently edit out a specific packet of data that repeats in this case its the phrase “inactive” for one specific column. What formula can I use that will parse this column and remove all entries that have “inactive” in this column? Thank you, if this was not clear enough I can provide more information.
I have a large spreadsheet with over 3000 entries and multiple columns of data. I need to efficiently edit out a specific packet of data that repeats in this case its the phrase “inactive” for one specific column. What formula can I use that will parse this column and remove all entries that have “inactive” in this column? Thank you, if this was not clear enough I can provide more information. Read More
Dynamic Filtering Help
Hello-
I need help filtering the difference in settings based on the 9 column headers. I would like to filter differences in adjustments on current setup to adjustments on the next setup, example: I am currently set up for 12oz 4pk and will be switching to 12oz 6pk. Ideally I would see a much more condensed list of adjustments on 12oz 6pk because some of the settings do not change. Is this possible?
Adj #DescriptionReference Point12oz 4pk12oz 6pk12oz 6pk Half Flaps12oz 12pk12oz 24pk16oz 6pk16oz 4pk16oz 24pk19.2oz 12pk1Magazine Drive HeightPosition Indicator2.632.632.6357.251.251.251.252.312Magazine BackstopPosition Indicator4.234.692.994.624.626.055.795.796.133Magazine Drive Belt WidthPosition Indicator5.547.757.091015.627.755.545.5410.384Magazine Picture FrameChange Part12oz 4pk12oz 6pk12oz 6pk Half Flaps12oz 12pk12oz 24pk16oz 6pk16oz 4pk16oz 24pk19.2oz 12pk5Magazine HeightPosition Indicator6.115.766.158.210.2565.6211.647.636Setup HeightPosition Indicator4.814.814.814.814.816.256.256.257.447A-CVacuum Cup WidthScale4 1/2″ 6 9/16″ NA4″ 6 3/4″ 9 5/8″4″ 6 3/4″ 9 5/8″4″ 8″ 12″5 1/2″ 10 1/2″ 15 1/2″4″ 6 3/4″ 9 5/8″4 1/2″ 6 9/16″ N/A5 1/2″ 10 1/2″ 15 1/2″5 1/4″ 8″ 11″8Left Setup GuideScale5 1/4″5 1/8″5 1/8″7 7/8″10 1/2″5 1/8″5 1/4″10 1/2″7 3/4″9Right Setup GuideScale5 1/4″5 1/8″5 1/8″7 7/8″10 1/2″5 1/8″5 1/4″10 1/2″7 3/4″10A-CCase Squaring WidthScale4 7/8″7 3/4″7 3/4″10 1/2″15 5/8″7 3/4″4 1/4″15 5/8″10 3/8″11Tool BarPosition Indicator5.087.757.7510.4415.697.755.0815.9810.3812Right Upper Flap Guide HeightPosition Indicator4.814.814.814.814.816.196.196.197.4413Right Glue Gun HeightScale111 1/4″11111 1/4″2 1/4″14Right Ram HeightScale1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″15Right Upper Flap Plow HeightScale4.54.54.54.54.54.54.54.56 1/2″16Load DeckChange PartNot UsedCCBACNot UsedAB17Carton Support RailChange PartNot UsedNot UsedNot UsedUsedUsedNot UsedNot UsedUsedUsed18Carton Support RailChange PartNot UsedNot UsedNot UsedUsedUsedNot UsedNot UsedUsedUsed19Left Upper Flap Plow HeightScale4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″6 1/2″20Left Ram HeightScale1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″21Left Glue Gun HeightScale111.2511111 1/4″2 1/4″22Left Upper Flap Guide HeightPosition Indicator5.115.115.115.115.116.46.46.357.5423Selector BarsChange Part2 dot2 dot2 dot3 dot4 dot2 dot2 dot4 dot3 dot26Preload Air Cylinders HeightPosition Indicator777777.457.457.458.7530Infeed GuidesScale6 1/8″8 7/16″8 7/16″1115 5/16″8 7/16″6 7/16″15 5/16″10 7/8″32Infeed GuidesScale12 5/8″12 9/16″12 9/16″15 1/4″20 1/8″12 9/16″12 5/8″20 1/8″15 3/8″35Tipped Product Flags HeightScale4 13/16″4 13/16″4 13/16″4 13/16″4 13/16″6 3/16″6 3/16″6 3/16″7 3/8″36Tipped Product Flags Up/DownLanes 1 2Lanes 1 2 3Lanes 1 2 3Lanes 1 2 3 4All LanesLanes 1 2 3Lanes 1 2All LanesLanes 1 2 3 437Lane Guide 1Change PartAAABBAABB38Lane Guide 2Change PartBNot UsedNot UsedNot UsedNot UsedNot UsedBNot UsedNot Used39Lane Guide 3Change PartNot UsedAANot UsedNot UsedANot UsedNot UsedNot Used40Lane Guide 4Change PartNot UsedNot UsedNot UsedANot UsedNot UsedNot UsedNot UsedA42Lane Guide 5Change PartNot UsedNot UsedNot UsedNot UsedANot UsedNot UsedANot Used
Hello-I need help filtering the difference in settings based on the 9 column headers. I would like to filter differences in adjustments on current setup to adjustments on the next setup, example: I am currently set up for 12oz 4pk and will be switching to 12oz 6pk. Ideally I would see a much more condensed list of adjustments on 12oz 6pk because some of the settings do not change. Is this possible? Adj #DescriptionReference Point12oz 4pk12oz 6pk12oz 6pk Half Flaps12oz 12pk12oz 24pk16oz 6pk16oz 4pk16oz 24pk19.2oz 12pk1Magazine Drive HeightPosition Indicator2.632.632.6357.251.251.251.252.312Magazine BackstopPosition Indicator4.234.692.994.624.626.055.795.796.133Magazine Drive Belt WidthPosition Indicator5.547.757.091015.627.755.545.5410.384Magazine Picture FrameChange Part12oz 4pk12oz 6pk12oz 6pk Half Flaps12oz 12pk12oz 24pk16oz 6pk16oz 4pk16oz 24pk19.2oz 12pk5Magazine HeightPosition Indicator6.115.766.158.210.2565.6211.647.636Setup HeightPosition Indicator4.814.814.814.814.816.256.256.257.447A-CVacuum Cup WidthScale4 1/2″ 6 9/16″ NA4″ 6 3/4″ 9 5/8″4″ 6 3/4″ 9 5/8″4″ 8″ 12″5 1/2″ 10 1/2″ 15 1/2″4″ 6 3/4″ 9 5/8″4 1/2″ 6 9/16″ N/A5 1/2″ 10 1/2″ 15 1/2″5 1/4″ 8″ 11″8Left Setup GuideScale5 1/4″5 1/8″5 1/8″7 7/8″10 1/2″5 1/8″5 1/4″10 1/2″7 3/4″9Right Setup GuideScale5 1/4″5 1/8″5 1/8″7 7/8″10 1/2″5 1/8″5 1/4″10 1/2″7 3/4″10A-CCase Squaring WidthScale4 7/8″7 3/4″7 3/4″10 1/2″15 5/8″7 3/4″4 1/4″15 5/8″10 3/8″11Tool BarPosition Indicator5.087.757.7510.4415.697.755.0815.9810.3812Right Upper Flap Guide HeightPosition Indicator4.814.814.814.814.816.196.196.197.4413Right Glue Gun HeightScale111 1/4″11111 1/4″2 1/4″14Right Ram HeightScale1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″15Right Upper Flap Plow HeightScale4.54.54.54.54.54.54.54.56 1/2″16Load DeckChange PartNot UsedCCBACNot UsedAB17Carton Support RailChange PartNot UsedNot UsedNot UsedUsedUsedNot UsedNot UsedUsedUsed18Carton Support RailChange PartNot UsedNot UsedNot UsedUsedUsedNot UsedNot UsedUsedUsed19Left Upper Flap Plow HeightScale4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″4 5/8″6 1/2″20Left Ram HeightScale1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″1/2″21Left Glue Gun HeightScale111.2511111 1/4″2 1/4″22Left Upper Flap Guide HeightPosition Indicator5.115.115.115.115.116.46.46.357.5423Selector BarsChange Part2 dot2 dot2 dot3 dot4 dot2 dot2 dot4 dot3 dot26Preload Air Cylinders HeightPosition Indicator777777.457.457.458.7530Infeed GuidesScale6 1/8″8 7/16″8 7/16″1115 5/16″8 7/16″6 7/16″15 5/16″10 7/8″32Infeed GuidesScale12 5/8″12 9/16″12 9/16″15 1/4″20 1/8″12 9/16″12 5/8″20 1/8″15 3/8″35Tipped Product Flags HeightScale4 13/16″4 13/16″4 13/16″4 13/16″4 13/16″6 3/16″6 3/16″6 3/16″7 3/8″36Tipped Product Flags Up/DownLanes 1 2Lanes 1 2 3Lanes 1 2 3Lanes 1 2 3 4All LanesLanes 1 2 3Lanes 1 2All LanesLanes 1 2 3 437Lane Guide 1Change PartAAABBAABB38Lane Guide 2Change PartBNot UsedNot UsedNot UsedNot UsedNot UsedBNot UsedNot Used39Lane Guide 3Change PartNot UsedAANot UsedNot UsedANot UsedNot UsedNot Used40Lane Guide 4Change PartNot UsedNot UsedNot UsedANot UsedNot UsedNot UsedNot UsedA42Lane Guide 5Change PartNot UsedNot UsedNot UsedNot UsedANot UsedNot UsedANot Used Read More