Month: October 2024
How to get list of channels and members in teams bot
Hi,
I’m working on building a Microsoft Teams bot and came across the TeamsInfo.getTeamChannels(turnContext, teamId) method in the BotBuilder SDK. Could you help clarify how it works? Specifically, how does turnContext return data for a team? I’ve already assigned all the necessary scopes through the Teams Developer Portal. Do I still need to use Microsoft Graph APIs, or will this method handle everything?
Also, when calling this method, I noticed that one channel (the “General” channel) is missing from the response. What’s the best way to fetch a complete list of members and channels in a team where my bot is installed, especially since users are interacting with it in personal DMs?
{
“name”: undefined,
“id”: “19:nGtWIyKBcs0m93LgdScfymNX4_YhoaEj0Zo1@thread.tacv2”
},
{
“name”: “newchannel”,
“id”: “19:42baf94a1a3e86cb0@thread.tacv2”
},
{
“name”: “testchannel”,
“id”: “19:54b4ac2af6228c4573fff12@thread.tacv2”
}
]
Hi,I’m working on building a Microsoft Teams bot and came across the TeamsInfo.getTeamChannels(turnContext, teamId) method in the BotBuilder SDK. Could you help clarify how it works? Specifically, how does turnContext return data for a team? I’ve already assigned all the necessary scopes through the Teams Developer Portal. Do I still need to use Microsoft Graph APIs, or will this method handle everything?Also, when calling this method, I noticed that one channel (the “General” channel) is missing from the response. What’s the best way to fetch a complete list of members and channels in a team where my bot is installed, especially since users are interacting with it in personal DMs? [
{
“name”: undefined,
“id”: “19:nGtWIyKBcs0m93LgdScfymNX4_YhoaEj0Zo1@thread.tacv2”
},
{
“name”: “newchannel”,
“id”: “19:42baf94a1a3e86cb0@thread.tacv2”
},
{
“name”: “testchannel”,
“id”: “19:54b4ac2af6228c4573fff12@thread.tacv2”
}
] Read More
Auto-populate text based on value of two columns separately
I’m trying to figure out how I can change the text in Column E based on Column B and Column D. I have only been able to use the IF function based on Column D. But what I really need is:
If there is nothing populated in either columns B and D, Column E shows “Past Due”.
Then when a date is populated in Column B, Column E show “In Progress”.
Lastly, when a date is entered in Column D, Column E shows “Done”.
And if not, any other ideas on how to keep track of progress without having to use a drop down box? Any help would be so appreciated!
I’m trying to figure out how I can change the text in Column E based on Column B and Column D. I have only been able to use the IF function based on Column D. But what I really need is: If there is nothing populated in either columns B and D, Column E shows “Past Due”.Then when a date is populated in Column B, Column E show “In Progress”.Lastly, when a date is entered in Column D, Column E shows “Done”. And if not, any other ideas on how to keep track of progress without having to use a drop down box? Any help would be so appreciated! Read More
SharePoint Oversharing, Governance, and Lifecycle
SharePoint Advanced Management (SAM) is a $3/user/month add-on that can help Microsoft 365 tenants manage problems like oversharing, data governance, and site lifecycle. A TEC 2024 session describe how SAM can help tenants cope with these issues in the AI era.
https://office365itpros.com/2024/10/03/sharepoint-advanced-management/
SharePoint Advanced Management (SAM) is a $3/user/month add-on that can help Microsoft 365 tenants manage problems like oversharing, data governance, and site lifecycle. A TEC 2024 session describe how SAM can help tenants cope with these issues in the AI era.
https://office365itpros.com/2024/10/03/sharepoint-advanced-management/ Read More
Open Form when OpenArgs is Null
Hello Experts,
I usually open a form with OpenArgs but I now want to be able to open the form on its own (not from another form) and add a record without using the OpenArgs. I still need to retain the OpenArgs functionality though when I do open the form from another form and using OpenArgs.
I currently get an “Invalid Use of Null” error 94 when I try to open the form on its own.
How would I modify the below if OpenArgs is Null?
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.txtPrjIDfk = Split(Me.OpenArgs, “;”)(0)
End Sub
here is the error on the form. I get it when I try to add a new record and OpenArgs are Null (its says 0 in below and I assume that is Null).
thank you
Hello Experts, I usually open a form with OpenArgs but I now want to be able to open the form on its own (not from another form) and add a record without using the OpenArgs. I still need to retain the OpenArgs functionality though when I do open the form from another form and using OpenArgs. I currently get an “Invalid Use of Null” error 94 when I try to open the form on its own. How would I modify the below if OpenArgs is Null? Private Sub Form_BeforeInsert(Cancel As Integer) Me.txtPrjIDfk = Split(Me.OpenArgs, “;”)(0)End Sub here is the error on the form. I get it when I try to add a new record and OpenArgs are Null (its says 0 in below and I assume that is Null). thank you Read More
Heading style easy and quick fix ?
Hi,
I have some formatting to do on several big documents (more than 200 pages), and one of the issue is that there are a lot of title to have the style “Heading 2” to be applied. These titles already have a different style (also Heading 2 type) applied, but when I import the correct heading 2 style (from Developer tab), it’s not taking automatically the correct style.
I have attached what I have (Example heading question), and what I want (Example heading question – expectation).
Ideally, it would take only 2-3 steps to fix all titles…
Is there a way to do that at all?
Thank you all for your help !
Hi, I have some formatting to do on several big documents (more than 200 pages), and one of the issue is that there are a lot of title to have the style “Heading 2” to be applied. These titles already have a different style (also Heading 2 type) applied, but when I import the correct heading 2 style (from Developer tab), it’s not taking automatically the correct style.I have attached what I have (Example heading question), and what I want (Example heading question – expectation).Ideally, it would take only 2-3 steps to fix all titles… Is there a way to do that at all?Thank you all for your help ! Read More
Installations via InTunes failing but work from SCCM
We have pretty much completed our migration from using SCCM to InTune (IT).
However, we are encountering a few apps which hang at certain points during the installation. These have worked 100% falwlessly through SCCM and indeed, if we revive the SCCM deployment, we can install via that route.
I strongly suspect that IT is handling output (STDOUT?) differently than SCCM does, wherein the installer is trying to display a screen but cannot and so just hangs indefinitely.
Aside from the above return-to-using-SCCM work-around, we have occasionally resorted to repackaging the offending installer but this obviously introduces a delay in getting apps deployed to our user-base.
Is there some flag we can set when adding apps to IT that we’re somehow not seeing, or some other configuration we set – maybe at the client-level – to bypass this behaviour?
If you feel like experimenting, grab the Innorix Agent installer which is one that’s causing us grief presently.
We have pretty much completed our migration from using SCCM to InTune (IT).However, we are encountering a few apps which hang at certain points during the installation. These have worked 100% falwlessly through SCCM and indeed, if we revive the SCCM deployment, we can install via that route.I strongly suspect that IT is handling output (STDOUT?) differently than SCCM does, wherein the installer is trying to display a screen but cannot and so just hangs indefinitely.Aside from the above return-to-using-SCCM work-around, we have occasionally resorted to repackaging the offending installer but this obviously introduces a delay in getting apps deployed to our user-base.Is there some flag we can set when adding apps to IT that we’re somehow not seeing, or some other configuration we set – maybe at the client-level – to bypass this behaviour?If you feel like experimenting, grab the Innorix Agent installer which is one that’s causing us grief presently. Read More
Updating Content Types from Content Type Gallery
Hello All,
I have a content type issue I was hoping for some guidance with please. Using SharePoint Online, we have a large number of content types created within the modern content type gallery that are made available for our sites to use. These contain a wide mixture of columns with different datatypes (MMS, choice, boolean, SLOT, Date & Time, etc).
We have around 100 site collections (currently) that are subscribed to these content types via the new moden method. These sites were created (either script or manual) and via a site design template, a group of 15 content types are added to the default document library along with a few other tasks such as joining to a hub).
Our issue is that after updating the central content type, I was expecting the subscribed sites to automatically update their locally stored content types however that does not appear to be the case. If I visit these sites individually I can see the content type advises “an update is available” but this has to be done manually by clicking the button. Checking the content type ID of the local CT on the site and the instance in the gallery matches and there are no errors in the Content Type Publishing log. Most of these sites are modern Team sites attached to O365 groups to allow us to use Teams later on.
It has been difficult to find definitive proof so can anyone please advise if it is correct that content types should automatically update or is it a manual process that needs to be performed?
If it is manual then that is really not fit for purpose so I am hoping what I am seeing is not by design. I have a support ticket open with MS to investigate but suspected I would get more joy with the community.
Hello All, I have a content type issue I was hoping for some guidance with please. Using SharePoint Online, we have a large number of content types created within the modern content type gallery that are made available for our sites to use. These contain a wide mixture of columns with different datatypes (MMS, choice, boolean, SLOT, Date & Time, etc). We have around 100 site collections (currently) that are subscribed to these content types via the new moden method. These sites were created (either script or manual) and via a site design template, a group of 15 content types are added to the default document library along with a few other tasks such as joining to a hub). Our issue is that after updating the central content type, I was expecting the subscribed sites to automatically update their locally stored content types however that does not appear to be the case. If I visit these sites individually I can see the content type advises “an update is available” but this has to be done manually by clicking the button. Checking the content type ID of the local CT on the site and the instance in the gallery matches and there are no errors in the Content Type Publishing log. Most of these sites are modern Team sites attached to O365 groups to allow us to use Teams later on. It has been difficult to find definitive proof so can anyone please advise if it is correct that content types should automatically update or is it a manual process that needs to be performed? If it is manual then that is really not fit for purpose so I am hoping what I am seeing is not by design. I have a support ticket open with MS to investigate but suspected I would get more joy with the community. Read More
Outlook data file cannot be configured
Hello,
Office 365. Windows 11.
1.) I have a user that is receiving “Your Outlook datafile cannot be configured” pop-ups multiple times (30) during the course of an evening. During the day no messages come up. I have checked the pc itself, reinstalled 3x’s, ran scanpst and SaRa. I wanted to create a new profile and I am unable to and receive “couldnt set up your account manually try setting the account up another way” I do it the other way, doesnt work. Email works fine other than the data file message and wouldnt know there was an issue.
2.) Also same pc, There are over 1,000 sameusername.nst files can I remove them? They data back from installation.
3.) Im not sure if this is something that could be related. The inbox folder is larger than 4Gb. Some articles I have read said this is not a big deal but, I curious if this affects data file config?
Im close to starting from scratch but I am not certain that would solve the problem.
Thanks
Hello, Office 365. Windows 11.1.) I have a user that is receiving “Your Outlook datafile cannot be configured” pop-ups multiple times (30) during the course of an evening. During the day no messages come up. I have checked the pc itself, reinstalled 3x’s, ran scanpst and SaRa. I wanted to create a new profile and I am unable to and receive “couldnt set up your account manually try setting the account up another way” I do it the other way, doesnt work. Email works fine other than the data file message and wouldnt know there was an issue. 2.) Also same pc, There are over 1,000 sameusername.nst files can I remove them? They data back from installation. 3.) Im not sure if this is something that could be related. The inbox folder is larger than 4Gb. Some articles I have read said this is not a big deal but, I curious if this affects data file config? Im close to starting from scratch but I am not certain that would solve the problem. Thanks Read More
RAG On PDF With Text And Embedded Images, With Citations Referencing Image Answering User Query
In today’s era of Generative AI, customers can unlock valuable insights from their unstructured or structured data to drive business value. By infusing AI into their existing or new products, customers can create powerful applications, which puts the power of AI into the hands of their users. For these Generative AI applications to work on customers data, implementing efficient RAG (Retrieval augment generation) solution is key to make sure the right context of the data is provided to the LLM based on the user query.
Customers have PDF documents with text and embedded figures which could be images or diagrams holding valuable information that they would like to use as a context to the LLM to answer a given user query. Parsing those PDFs to implement an efficient RAG solution is challenging, especially when the customer wants to maintain the relationship between the text and extracted image context used to answer the user query. Also, referencing the image as part of the citation which answers the user query is also challenging if the images are not extracted and are retrievable. This blog post is addressing the challenge of extracting PDF content with text and images as part of the RAG solution, where the relationship between the searchable text context with any of its extracted images is maintained so that the images can be retrieved as references within the citations.
Below we outline a simple architecture to build a RAG application on PDF data, where the extracted image content within the PDF is also retrievable as part of the LLM output as part of citation references.
Solution Overview
Azure OpenAI Service provides REST API access to OpenAI’s powerful language models including GPT-4o, GPT-4o mini, GPT-4 Turbo with Vision, GPT-4, GPT-3.5-Turbo, and Embeddings model series. These models can be easily adapted to your specific task including but not limited to content generation, summarization, image understanding, semantic search, and natural language to code translation.
Azure AI Search provides secure information retrieval at scale over user-owned content in traditional and generative AI search applications. Information retrieval is foundational to any app that surfaces text and vectors. Common scenarios include catalog or document search, data exploration, and increasingly feeding query results to prompts based on your proprietary grounding data for conversational and copilot search.
Azure Blob Storage is Microsoft’s object storage solution for the cloud. Blob Storage is optimized for storing massive amounts of unstructured data. Unstructured data is data that doesn’t adhere to a particular data model or definition, such as text or binary data.
Azure Functions is a serverless solution that allows you to write less code, maintain less infrastructure, and save on costs. Instead of worrying about deploying and maintaining servers, the cloud infrastructure provides all the up-to-date resources needed to keep your applications running.
In this solution, we leverage Azure OpenAI models for text generation and embeddings, Azure AI Search for information retrieval grounded in our data, Azure Blob for storing raw PDF files and the prepared data utilized by Azure AI Search for efficient data retrieval, and Azure Functions as a serverless component to prepare the data for populating the Azure AI Search index.
Figure 1: Document data management
The document data management flow operates as follows:
A raw PDF document file is uploaded to Azure Blob storage.
An event trigger in Azure Blob invokes an Azure Function, which then splits large PDFs, extracts text chunks, and maps images to the corresponding text chunks.
Once the Azure Function prepares the data, it uploads the prepaired data back to Azure Blob storage.
An index scheduler is then invoked to initiate the indexing process for the prepared data.
The prepared data is retrieved from Azure Blob by Azure AI Search.
Azure AI Search processes the text chunks in parallel, using the Azure OAI embedding model to vectorize the text.
The Azure AI Search index is populated with the prepared data and vectorized chunks. Additionally, it maps the relevant images to their corresponding text chunks using a custom index field.
Figure 2: Application runtime
The application runtime flow operates as follows:
User makes a query request through the client-side application.
The server-side AI chatbot application forwards the user’s query to Azure OAI. Note: This step is an ideal point to implement controls such as safety measures using the Azure AI Content Safety service.
Azure OAI, given the user’s query, makes a request to Azure AI Search to retrieve relevant text and images. Notably, the responsibility for making the request to Azure AI Search shifts from the application code to the AIAO service itself.
With the user’s query and the relevant text retrieved from Azure AI Search, AIAO generates the response.
AIAO returns the generated response and associated metadata (e.g., citation data) to the server-side AI chatbot application.
The server-side AI chatbot application remaps the response data, creating a payload that includes text and image URLs. This step is another excellent point to implement additional controls before sending the payload back to the client-side application.
The server-side AI chatbot application sends the response to the user’s query back to the client-side application.
The client-side application displays the generated response text and downloads any images from Azure Blob, rendering them in the user interface.
Note: Steps 9a and 9b are conceptual components of the reference architecture but are not currently part of the deployable artifact. We welcome your feedback and may potentially extend the implementation to include these steps.
Figure 3: Azure Blob directory and file structure
The directory and file structure serve the following primary purposes:
Azure Function: To retrieve raw PDF files and upload the prepared data back. The event trigger is configured to receive events under the raw_data directory.
Azure AI Search: To download the prepared data for populating the index. The Azure AI Search data source is configured to retrieve data from the prepared_data directory.
Deployment and Implementation Details
In this section, we will delve deeper into the essential components of our solution and their specific functionalities. We will start with the implementation, followed by an overview of the deployment process.
Implementation Details
Before Azure AI Search can index a raw PDF document, it must undergo pre-processing, facilitated by an Azure Function. This function is configured to listen to Azure Blob Storage events and is triggered whenever a new document is uploaded. The function performs the following tasks:
Splits a Single PDF into Text Chunks: This involves breaking down the PDF document into smaller text chunks.
Generates a JSON File: The text chunks are then organized into a JSON file, which is subsequently uploaded back to the Azure Blob Storage. Each element in the JSON array represents a text chunk.
Extracts and Maps Images: Images from the PDF are extracted and mapped to their corresponding text chunks. Specifically, images found on a given PDF page are associated with text chunks from the same page.
Once the data is prepared, the Azure AI Search indexer is activated to handle the actual ingestion and index population. During this process, Azure AI Search skills are employed to map the data to the fields defined in the index. Upon completion of the indexing, the ingested data is mapped to the specified fields, making it ready for query execution.
Deployment
Having gained a comprehensive understanding of how Azure Functions and Azure AI Search are utilized in this solution, the next step is to deploy the solution and explore the demo application. This will enable you to see the implementation in action and understand its practical applications.
To deploy the solution, refer to the GitHub repository, follow the provided steps, and complete the sections on prerequisites and deployment.
Extending Deployment with Your Own Documents
The provided repository includes a small snippet of the Azure AKS documentation, offering a glimpse into the end-user experience. However, you may be interested in trying it out with your own PDF documents. The section on extending deployment with your own documents was created with this in mind. It provides a quick and straightforward way for you to incorporate your documents into the solution and start querying them using the already operational demo application.
By following these steps, you will be able to efficiently manage and query your PDF documents using Azure AI Search, ensuring a seamless and effective search experience.
Clean up
After you’ve tested the solution, you can clean up all the Azure resources created by deleting the deployment. To do so, follow the steps in the cleanup section.
Conclusion
In this post, we demonstrated how to use Azure OpenAI and Azure AI Search to build a Retrieval-Augmented Generation (RAG) application with your own data. By offloading AI Search communication to Azure OpenAI, this solution not only enhances text-based queries but also provides a powerful way to identify and retrieve relevant images based on the user’s query. This capability ensures that your query responses are enriched with relevant visual content whenever available.
If you have any feedback, questions, or suggestions to help improve this solution, please submit them through the GitHub repository. We welcome all input and look forward to hearing from you.
Microsoft Tech Community – Latest Blogs –Read More
New on Microsoft AppSource: September 10-20, 2024
We continue to expand the Microsoft AppSource ecosystem. For this volume, 303 new offers successfully met the onboarding criteria and went live. See details of the new offers below:
Get it now in our marketplace
3-2-1-GoCheck Background Checking: 3-2-1-GoCheck offers an updated background checking solution that automates data validation and verification processes, reducing HR administration and supporting quick decisions. The service is fully integrated into Microsoft Teams and uses AI technology to deliver real-time updates across departments while meeting industry security standards. Start the checking process with one click.
7twenty Platform: 7twenty Omnichannel Customer Engagement Platform streamlines workflows, improves service delivery, and boosts sales by integrating multiple communication channels and automating processes. It offers data-driven solutions and is deeply embedded in the healthcare industry, enhancing patient communication and operational efficiency. The platform is comprehensive, integrated, and secure, making it indispensable for modern healthcare providers aiming to deliver superior care and improve patient satisfaction.
Acumens Service Job Management: Acumens Service Job Management simplifies equipment servicing activities with submodules for service requests, inventory usage, technician scheduling, and more. It includes a customer portal and field service technician web app for real-time access to job details, customer information, and inventory. Available in English for Microsoft Dynamics 365 Business Central and Dynamics Nav.
Aporia Guardrails: Aporia is a tool for AI engineers that integrates Guardrails to vet user prompts and LLM responses in real-time. It offers over 20 pre-configured and customizable options to protect against issues like hallucinations, inadvertent data leaks, prompt injections, and inappropriate content. Aporia provides comprehensive transparency through its Session Explorer and Dashboard, offering real-time insights into user interactions and policy violations.
AppXite Commerce Platform: AppXite offers a multi-tier, multi-cloud e-commerce platform for technology-as-a-service solutions. It integrates with major hyperscalers and software-as-a-service vendors, providing partners with tools for product management, automated billing, provisioning, and sales analytics. The platform enables optimal operational efficiency and performance for direct and channel sales.
Aquila Clouds BillOps: Aquila Clouds BillOps streamlines and automates billing operations for cloud resellers and managed service providers. It eliminates manual processes and spreadsheets, saves time and money, and offers customizable billing structures. The solution provides automated data ingestion and reporting capabilities. BillOps reduces costs, improves efficiency, increases profitability, and enhances customer satisfaction.
Aquila Clouds FinOps: Aquila Clouds FinOps is a multi-cloud financial management platform that provides deep visibility into cloud expenses, automates cost-saving actions, and offers insightful reporting and governance tools. It addresses challenges such as wasted cloud spend, lack of visibility, manual cost management, and inconsistent governance. Key features include continuous monitoring and optimization, multi-cloud support, cost observability, AI-powered automation, policy-driven governance, and self-service cost management. Benefits include reduced cloud costs, improved financial control, faster time to decisions, increased efficiency, and enhanced collaboration.
BinaSuite: Available only in French, BinaSuite is a comprehensive project management solution for the construction industry. It automates bid integration, streamlines sales processes, tracks leads, manages construction sites, simplifies invoicing, and provides detailed reports. It helps businesses achieve operational excellence and efficiency.
BusinessTask: Available in Fijian, BusinessTask is a versatile project management tool that helps businesses streamline their workflow and improve team collaboration. It includes features such as task management, agile project management, and seamless integration with Microsoft 365. It also helps businesses comply with the GDPR and CCPA regulations.
Canvas Envision: Canvas Envision is a browser-based solution that allows anyone to create precise, model-based illustrations, animations, and instructional documents without prior CAD experience. It includes Envision Creator, Envision Portal, and Envision Viewer. The soution enables 3D visualization, document authoring, document management, and sharing. Users can export content to standard visual and multimedia formats, or embed interactive content for viewing in other application environments. Integration with PDM, PLM, and other platforms allows for frictionless updates to authored content when source CAD data changes.
Colligo Email Manager for Microsoft 365: Colligo Email Manager allows mid-sized to enterprise businesses using Microsoft 365 to capture and store emails and attachments from Outlook 365 in SharePoint and Teams. Auto-applied metadata ensures easy search and proper governance and compliance. Storing emails in a centralized repository like SharePoint Online strengthens knowledge management and collaboration, while driving user-adoption of SharePoint and Teams. The add-in supports Outlook Desktop for Mac and Windows, Outlook online, or Outlook on mobile devices.
Digiusher Cloud Cost Governance and Optimization Solution: Digiusher Cloud Cost Management offers a solution to manage and optimize multi-cloud environments, providing real-time visibility, advanced analytics, and optimization recommendations. It helps businesses reduce cloud expenditures through seamless integration with major cloud providers, proactive cost tracking, and resource utilization. The solution also offers in-depth cost analysis and optimization insights to improve financial efficiency, accurate financial reporting and compliance across currencies, and collaboration and transparency between finance and operations.
DLS – Time Expense Mileage: The Time Expense and Mileage app for Microsoft Dynamics 365 helps manage team time, expenses, and mileage. It integrates with existing workflows and tracks time, costs, and distances against incidents and opportunities.
Docuai IDP – Intelligent Document Processing: Docuai is an intelligent document processing solution that automates document workflows and extracts critical data from various document formats. It eliminates manual data entry, improves data accuracy, and provides valuable insights. The solution offers pre-built and custom AI models, supports various document formats, and seamlessly integrates with existing workflows and business systems. It enhances operational efficiency, reduces costs, and provides faster access to business insights.
Drill Down Shape Map PRO (Filter) by ZoomCharts: Drill Down Shape Map PRO (Filter) is a powerful tool allowing you to visualize location data on maps that are easy and intuitive to explore on any device. The tool offers multiple shape layers, filtering by shapes, storable custom shapes, clustering, cross-chart filtering, and more. It is ideal for monitoring production and equipment data, mapping sales results, and visualizing environmental, sociodemographic, and health data.
FAQs Web Part for SharePoint: The Dynamic Banner for SharePoint allows users to add engaging banners with customizable text overlays and alignment options to their SharePoint pages. The FAQs web part for SharePoint streamlines information access with features such as category-based filtering and logo customization. Both tools enhance the visual appeal of SharePoint while maintaining a professional aesthetic.
Financial Analytics with GenAI: NeoStats offers ready-made, domain-specific target reference architectures designed to streamline data management, governance, and advanced predictive modeling across your entire data lifecycle. The solutions deliver targeted offerings by combining predictive models with client and business constraints, driving customer lifetime value with real-time execution.
FX Trade Booking System: The Bank Retail Branch FX Trade Booking System allows retail customers to perform real-time FX trades with competitive rates and personalized pricing. It offers configurable market data and spread management, automated rate management, and integration with the bank’s treasury system for effective risk management. The platform is scalable and customizable, providing a comprehensive solution for retail FX trade operations.
GPT Exeling: Available in Lithuanian, GPT Exeling offers selective encryption technology to protect sensitive content in Microsoft Office documents and Teams messages. Only specified individuals or groups can view the encrypted content, allowing for secure sharing of information. The format of the documents is preserved, allowing for unrestricted viewing of unprotected content.
Helpdesk 365 Add-in: Helpdesk 365 is a customizable SharePoint-based ticketing system for Microsoft 365. It includes features such as modern view, rules and automation, approval workflows, and chatbot Bubble 365. The app can be added as a web part or full page in SharePoint and as a personal or Teams tab in Microsoft Teams.
Hive Perform: Hive Perform is a sales enablement tool that uses AI to anticipate and respond to unique challenges faced by sales representatives. It empowers teams with the right knowledge at the right time, ensuring they perform at their best.
Inforiver EDITable: EDITable is a self-service platform for managing reference data and flat tables in Power BI. It supports live sync with various data sources and offers features such as custom approval workflows, conditional formatting, and granular user activity permissions. EDITable is designed for business users and requires minimal IT setup. It is ideal for maintaining reference data and flat tables such as price lists and vendor lists.
KeyDocs: KeyDocs is a solution for Microsoft 365 and SharePoint Online that enables users to manage controlled documents throughout their lifecycle. It offers controlled document (CD) workflows, auditing, governance, industry-specific taxonomies, and integration with ERP systems. KeyDocs provides end-to-end enterprise CD lifecycle compliance.
LogLocker for Microsoft Sentinel: LogLocker is a blockchain-based long-term log storage solution that integrates with Microsoft Sentinel, offering low-cost, highly configurable log collection and archiving. It simplifies storage and preservation of high-value compliance logs, reduces data volumes, and strengthens governance and audit tactics.
Maximum Group Digital – Spatial Analytics: Spatial Analytics provides advanced GIS and spatial data analysis tools for decision-making in various sectors. It offers visualization tools, spatial modelling, and predictive analytics to monitor and advise on the ESG (environment, sustainability, and governance) impact of projects over time.
MitionFormition: Mition offers a comprehensive list of features for member management, subscriptions, payments, website, marketing, events, API, service desk, document library, discussion, roles, education LMS, and resource booking.
Murex Datamart: FinSurge offers specialized Murex Datamart Developer Services remotely on a time-and-material basis, customized to meet client-specific requirements. FinSurge’s deep expertise with Murex Datamart ensures efficient extraction, transformation, and delivery of financial data. The FinSurge team focuses on customization, efficiency, and scalability, ensuring seamless integration with Murex environment and support for critical trading, risk management, and regulatory functions.
Murex MxML Developer: FinSurge offers specialized Murex MXML Developer Services on a time-and-material basis, delivered remotely to ensure flexible, efficient, and cost-effective solutions for clients. FinSurge’s experienced developers manage Murex interfaces, workflows, and messaging, enabling seamless integration between Murex and other systems.
OptWorkflow: OptWorkflow is a comprehensive tool designed to address the multifaceted needs of daily office operations. With its robust features and intuitive interface, it streamlines communication channels and automates repetitive tasks, becoming an indispensable asset in the pursuit of organizational excellence. It empowers individuals and teams alike to unlock their full potential, fostering a culture of efficiency, collaboration, and innovation.
Outsmart Health Cancer Care Follow-up and Management (CFAM): CFAM is a holistic solution that automates the management and execution of breast cancer follow-up, ensuring consistent quality follow-up according to a defined protocol throughout the patient’s journey. It allows providers to improve breast cancer surveillance based on patient preferences, new treatment practices, and risk stratification. The solution provides real-time progress view of planned care path for a patient group and enables data management and utilization in cancer care research.
Packaging Waste Reporting: The Packaging Waste Reporting module for Microsoft Dynamics 365 Business Central helps companies comply with EU legislation on waste and packaging reporting. It allows for easy setup of packaging materials and generates required statistics for reporting to authorities. The module also supports WEEE, battery, and textile reporting.
Plans for Contacts Directory SPList: The Contacts Directory SPList web part for SharePoint streamlines organizational collaboration by providing a comprehensive employee listing with quick interaction options and dynamic filtering. It offers a choice between list or card view and is customizable to fit organizational needs.
Plans for Dynamic Banner: The Dynamic Banner for SharePoint allows users to add engaging banners with background videos or images to their pages. It offers customizable text overlays, adjustable brightness and banner height, and a professional aesthetic. The tool seamlessly integrates multimedia elements and enhances user engagement.
Plans for Insightful Profiles: Insightful Profiles is a web part for SharePoint that offers a central hub for user profiles, fostering connections across an organization. It displays essential details, captures individual essence, and allows users to filter and connect with like-minded colleagues effortlessly. The web part seamlessly integrates with preferred data sources, enables users to edit their information, and can be personalized for brand alignment. It encourages collaboration and a sense of community among team members.
Plans for New Hires Spotlight: The New Hires Spotlight web part for SharePoint simplifies the onboarding process for new team members and encourages interaction among colleagues. It offers comprehensive listing of new users, access to key user details, intuitive left panel for easy navigation, robust filtering and search capabilities, interactive map for visualizing employees’ geographical distribution, and customizable viewing modes. This innovative solution promotes collaboration and enhances teamwork dynamics, creating a more cohesive and productive work environment.
Plans for Organizational Chart SPList: The Organizational Chart SPList web part for SharePoint is a powerful tool that provides a clear and intuitive visualization of the organizational structure. It quickly identifies direct managers, offers customizable layouts, and includes assistance tags for additional contextual information. The solution integrates with detailed profiles in SharePoint for individual information access and allows expansion of direct reports to explore deeper hierarchies. With a search function to quickly locate specific users, it simplifies the visualization and understanding of organizational structure within your company.
Plans for Search on FAQs: The Search on FAQs web part for SharePoint enhances user experience by providing fast and accurate FAQ search and organized navigation. It is customizable to fit the visual design of your SharePoint site and is fully responsive for consistent user experience on all devices. The web part seamlessly integrates with SharePoint’s security and permissions.
Quality Inspections: The Quality Inspections app simplifies maintaining product quality by defining and managing quality inspections at every stage of production. It allows setting precise criteria for tests, inspecting products during production, assessing incoming shipments, or verifying items in the warehouse. The app offers simplified setup, flexible test configurations, customized inspections, detailed tracking, accountability, and easy navigation.
Sales Restrictions: The Sales Restrictions app allows businesses to control what their customers can purchase by setting defined product lists and enforcing minimum and maximum order ranges. It also offers features such as permitted items, quantity limits, customer restrictions, and release prevention.
Sales Velocity Compass By Office Solution: Sales Velocity by Office Solution is a powerful tool for analyzing sales of products in a country. The Sales Velocity chart comprises a pie region, circle, and needles that indicate sales and percentage. The chart is resizable, featuring detailed data of the product or country. It helps businesses understand their performance through color-coded representations.
Senso DNS Filtering: DNS Filter blocks website access based on selected categories for configured IP addresses. It provides insights into user activities and trends, and categorizes websites into groups such as social networking, plagiarism, and self-harm. The filter ensures CIPA compliance for schools by either allowing access or displaying a blocked page.
Senso Service Desk: Service Desk streamlines incident management and service requests by providing remote support to devices, creating tickets, and establishing direct communication between IT technicians and users. Automated processes can be configured to perform actions based on specific triggers, and SLA alerts can be set up to notify technicians of potential breaches.
Settlement Reminders for Outlook: Settlement Reminders is an Outlook add-in that automatically generates reminders for important dates related to property sale or purchase. It eliminates manual date tracking, provides customizable reminders, adjusts for non-business days, and simplifies workflow by keeping all important dates in one place. It is a seamless, efficient solution for managing conveyancing deadlines.
Shared Team Calendar: The Shared Team Calendar is a Microsoft Teams add-in that allows for easy scheduling and management of team events. It offers a variety of views and color-coded labels, and syncs with Outlook, Google, and other external calendars.
Show Me the PDF: Show Me the PDF is a document viewer for Dynamics 365 Business Central that allows users to instantly view purchase invoices, sales invoices, and incoming documents without any clicks. It streamlines workflows, saves time, and improves efficiency by having all important documents visible right away. The user-friendly interface ensures a smooth and intuitive experience.
The Search Box: This visualization tool allows users to filter items by entering terms and performing phrase searches with quotes. The interface is user-friendly and customizable, with optimized performance for large data sets.
Thomson Reuters HighQ: Thomson Reuters HighQ is a flexible solution that simplifies legal processes and promotes productivity and collaboration. It offers scalable solutions that enable legal professionals to connect to other software and services, access trusted information, and drive their businesses forward.
Timesheet 365: Timesheet 365 is an add-in for Microsoft 365 that allows users to track time and tasks without additional cloud or data security issues. It offers features like project management, daily/weekly time recording, and flexible reporting with no limit on projects or clients.
VAT Margin Scheme: Codadot’s VAT Margin Scheme app automates the calculation of VAT over the profit margin for second-hand goods in Microsoft Dynamics 365 Business Central. It eliminates the need for manual tracking and complex workarounds, reducing administrative burdens and ensuring compliance with EU and UK regulations.
WeManage eProcurement: WeManage eProcurement is a web-based solution that automates procure-to-pay processes for unlimited employees and vendors. It’s ideal for Microsoft Dynamics 365 and Microsoft 365 users, offering features such as vendor management, purchase requisition, tender management, and e-invoicing. The solution’s self-service functionality reduces manual data entry, and stakeholders can participate in processes from anywhere.
Go further with workshops, proofs of concept, and implementations
Accelerated Fabric Migration: Hexaware offers accelerated migration, data governance and compliance, managed services, continuous optimization, and ongoing support for migrating data from legacy platforms to Microsoft Fabric. The solution provides enhanced data quality and security, improved governance, and increased business agility while reducing operational costs and burden.
Advisory for Microsoft Copilot Studio: Two-and-a-Half-Hour Workshop: Japan Business Systems will enable users to learn about and experience the service concept and functions of Microsoft Copilot Studio. Available only in Japanese, this workshop offers a combination of lectures, demos, and hands-on experiences to help users understand how to use the service effectively. Users can also create custom AI assistants and ask questions about implementation.
AI-Powered Low-Code Innovation: 1-Hour Workshop: Low-code platforms like Microsoft Power Platform integrated with AI capabilities simplify application development, automate workflows, and transform business processes. Netwoven offers tailored solutions that enable teams to create powerful applications with minimal coding, empowering businesses to innovate faster and enhance their digital transformation initiatives. This hands-on innovation workshop will allow you to prototype a solution customizd to your specific needs and walk away with a clear plan for implementing AI-driven low-code solutions in your organization.
Copilot for Microsoft 365: 5-Day Workshop and Onboarding: Fellowminds offers a process to prepare and conduct a secure pilot of Microsoft 365 Copilot for Office. The process includes envisioning sessions, workshops, and risk assessments. By the end, organizations will have documented lessons learned and a roadmap for adoption.
Copilot for Microsoft 365: 5-Day Workshop and Onboarding (DE): Available in German, Fellowminds offers a structured approach to prepare and execute a pilot project for Microsoft 365 Copilot for Office. The process includes envisioning, workshops, and risk assessment to align data governance policies with business goals. The end result is a documented experience for a secure introduction of Copilot for Office and a roadmap for future activities.
COSMO Chemicals 2GO: 3-Month Implementation: COSMO Chemicals 2GO is an implementation service for businesses looking to integrate the COSMO Process Manufacturing Pack into their Microsoft Dynamics 365 Business Central operations. The package includes training and configuration advice for batch manufacturing, quality control, and vendor rating. The implementation process unfolds through key phases: analysis, design, testing, and deployment, each critical for the successful introduction of the extension.
COSMO Coatings 2GO: COSMO2GO Coatings is an implementation service for businesses looking to integrate the COSMO Process Manufacturing Pack into their Microsoft Dynamics 365 Business Central operations. The package includes training and configuration advice for batch manufacturing, quality control, and vendor rating. The implementation process includes analysis, key user training, configuration, deployment, and testing.
COSMO Plastics 2GO: 3-Month Implementation: COSMO2GO Plastics is an implementation service for businesses looking to integrate the COSMO Process Manufacturing Pack into their Microsoft Dynamics 365 Business Central operations. The package includes training and configuration advice for batch manufacturing, quality control, and vendor rating. The implementation process includes analysis, key user training, configuration, deployment, and testing.
Crown Jewels Identification App: Implementation: Identifying and prioritizing critical assets is crucial for effective cyber security. However, maintaining a register of these assets can be challenging for organizations due to inadequate procedures, knowledge, and tools. This engagement offers workshops, solution architecture, implementation, testing, and training support to align processes with crown jewels identification via Prometix’s Crown Jewels Power App.
Data Security Engagement for Microsoft 365: CompuNet’s Data Security Engagement assesses data protection and compliance with Microsoft 365 Purview solutions. It provides real data-driven examples of risks and offers recommendations to mitigate them. Topics include understanding dark organizational data, assessing against data protection standards, and exploring tools and services to help prevent risks.
Data Security Engagement: 4-Week Workshop: Tech One Global’s Data Security Engagement includes an assessment to help organizations understand and address data security, privacy, and compliance risks while maximizing the potential of their existing Microsoft 365 environment. The engagement includes a pre-engagement meeting, a detailed Data Security Check, an overview of the Microsoft Purview portfolio, and customized recommendations for the next steps to strengthen the security framework. Tech One experts will demonstrate how to enhance data security strategy, ensuring compliance while unlocking the full potential of Microsoft 365 investment.
Dynamics 365 Human Resources: 8-Week Implementation: Datacom offers a streamlined approach to implementing Microsoft Dynamics 365 Human Resources, with pre-built HR artifacts and industry-specific support. The solution includes employee self-service features, automated HR processes, and real-time analytics for informed decision-making. It is scalable and compliant with regulatory requirements, reducing the risk of non-compliance. Datacom’s implementation agenda includes onboarding, deployment, training, and go-live support. The solution is designed to be cost-effective and efficient, freeing up HR staff to focus on strategic initiatives.
Dynamics 365 Business Central for Construction: Implementation: Advaiya’s AdValue packages for Microsoft Dynamics 365 Business Central provide a comprehensive solution for the construction industry, integrating financial and project management into a single platform. The packages offer scalability and agility, allowing businesses to start with core functionalities and expand as they grow. With rapid implementation, businesses can achieve a quick return on investment.
Dynamics 365 Business Central: 1-Day Workshop: Available in German, this one-day workshop is designed for users and businesses who want to easily import data into Dynamics 365 Business Central. The workshop covers the successful setup of configuration packages, migration of master and transactional data, and the use of filters and data mappings.
Dynamics 365 Business Central: 2-Day Workshop: Available in German, this workshop is for users and businesses who want to customize documents, emails, and more in Dynamics 365 Business Central. It covers creating and adapting Word layouts, building configuration packages, and integrating custom documents into the system.
Empower Business Process Flows using Power Automate: 4-Week Implementation: This business process automation solution streamlines operations across departments, allowing non-technical users to design, manage, and execute complex workflows. It addresses data silos, scalability challenges, and error reduction. The implementation roadmap includes analysis, solution design, development, testing, and user training. Ongoing support and optimization are provided. The strategic benefits include operational efficiency, cost savings, and adaptability.
Generative AI Adoption: 1-Month Proof of Concept: L3 helps identify and prioritize generative AI initiatives by using Microsoft Copilot Studio, OpenAI, and/or Azure AI Studio. The offer sprints for preparation, development, and implementation. The client can then use the developed generative AI to validate its value with a proof of concept, leading to potential cost reduction, increased productivity, and risk mitigation.
Introduction to Microsoft Fabric workshop: Twyzer offers hands-on experience with the Microsoft Fabric data platform, allowing participants to gain practical skills and knowledge. Participants will work through real-world scenarios, including ingesting, cleaning, modeling, and visualizing data in Power BI using Fabric.
Microsoft Defender Threat Protection: 3-Day Workshop: Finchloom provides a comprehensive understanding of Microsoft security solutions, focusing on threat protection with XDR + SIEM. It covers the current cybersecurity challenges and practical applications. Suitable for security decision-makers and IT professionals looking to enhance their security posture and reduce the risk of cyber-attacks.
Microsoft Dynamics 365 Business Central for Manufacturing: Impementation: Advaiya’s AdValue packages for Dynamics 365 Business Central provide a comprehensive solution for the manufacturing industry, integrating essential business functions into a single platform. With rapid implementation, businesses can achieve a quick ROI and expand as they grow. Modules include financial management, production planning, and relationship management.
Migration Exchange Online: 3-Week Implementation: Available in French, NOWTEAM’s service offers a turnkey migration solution for organizations wishing to switch from their current messaging solution to a hosted professional messaging solution, Exchange Online. The service includes technical expertise and change management to ensure a smooth transition and a successful adoption. Activities include analysis and planning, preparation and configuration, data migration, integration and customization, testing and validation, change management, and continuous improvement.
Migration to Power BI: Migrate to Power BI with ease using EpicData’s expert migration service. EpicData will transfer data, optimize performance, and provide ready-to-use insights. The migration process includes discovery, assessment, data migration, model re-engineering, validation, testing, training, and support.
PMO Enablement for Large Enterprises: Implementation: Proventures offers PMO enablement services for large enterprises, including Six Sigma Black Belt training, principal consultant and process expert services, and advanced technology solutions like PECS Power ProMIS Pro and Microsoft Project Online. Proventures provides personalized solutions to drive business success and innovation.
PMO Enablement for SMEs: Implementation: Proventures offers PMO enablement services for SMEs, including Six Sixma Green Belt training, senior consultant services, and cutting-edge technology solutions like PECS Power ProMIS and Microsoft Project for the Web. Proventures delivers customized solutions to enhance project management capabilities, optimize processes, and foster business growth.
Power Automate Business Support: 2-Week Implementation: AVASOFT’s Automation Technology Consulting service specializes in RPA strategy, implementation, and managed services to optimize business processes within Microsoft 365 using Power Automate. The detailed implementation agenda includes strategy development, custom solution design, testing, review and feedback, and ongoing optimization and support. Benefits include enhanced operational efficiency and alignment of automation technologies with business goals.
Power BI Implementation Roadmap: EpicData’s adoption roadmap offers customized solutions for organizations through structured workshops focused on Microsoft Power BI. They analyze use cases and provide recommendations for optimal setup, including licenses and governance. The workshops cover strategic, tactical, and solution planning, including tenant setup, administration, data sources, security, workspaces, and content management.
Power BI Implementation Services: EpicData’s implementation service tailors the platform to unique business needs, providing custom dashboards, seamless integration, actionable insights, collaboration and sharing, and cost efficiency. It empowers teams to enhance reporting, improve operational efficiency, and drive innovation.
Slack to Microsoft Teams: Assessment: AVASOFT’s Precision Planner service helps organizations transition from Slack to Microsoft 365 with minimal disruption. It offers a detailed assessment of the current environment, customized migration planning, and ongoing support. The service provides insights into usage patterns and integration efficiencies, enabling organizations to maintain productivity and enhance collaboration. Ideal for businesses looking to transition from Slack to Microsoft 365.
Strategic AI & Low Code with Roadmap: 2-Week Workshop: JourneyTeam helps customers use the Microsoft Power Platform and AI solutions to transform their business operations. This workshop helps you build a strategic vision for business transformation using low-code solutions and AI. It includes assessing the current state, defining objectives, and developing an a roadmap.
Threat Protection Engagement for Microsoft 365: The Threat Protection Engagement by CompuNet helps you understand and deploy advanced security products, gain visibility into immediate threats, and remediate vulnerabilities.
Threat Protection Engagement: 4-Week Workshop: Tech One Global’s Threat Protection Engagement is designed to help organizations identify and address security threats while optimizing their use of Microsoft 365. The offer includes a pre-engagement meeting, detailed threat analysis, overview of Microsoft Security portfolio, and customized recommendations. By the end of the engagement, organizations will receive a comprehensive threat protection report and a clear roadmap for using Microsoft 365 security solutions to mitigate risks.
Transform with with Copilot for Microsoft 365: Available in Spanish, DATCO Chile offers a secure implementation of Copilot for Microsoft 365, with customized optimization and training for organizations. It includes an initial evaluation and planning, personalized optimization, and implementation with necessary security measures and training.
Using PERT PLUS for Implementing Critical Chain Management: Proventures PERT Plus, integrated with Microsoft 365, enhances your critical chain project management (CCPM) capabilities. The tool includes a schedule optimizer, PERT analysis and contingency planning, and RACI Matrix.
Workshop for Booking Offices with Microsoft 365: Available in German, perinco’s workshop offers assistance in integrating office booking for all employees into Microsoft 365. The session includes analyzing current processes, defining goals, presenting Microsoft 365 technologies, and creating a conceptual plan for office booking. The workshop provides an understanding of Microsoft 365 technologies, licensing costs, and a clear action plan for C-level executives.
Contact our partners
acadon Timber365: 1-Hour Assessment
Amazon Seller Central to Power BI
Banking Integration for Dynamics 365
Bookingfor Local Travel Alliance System
Campaign Manager 360 to Power BI
Cloud Migration Solution for Legacy Windows Applications
CloudSoda Data Management Platform
CogVoice Call Screener – Agentic Voice Solutions for Mobile Operators
ConnectPro Contact Center for Microsoft Teams
Content Marketing Services for Microsoft Partners
Copilot for Microsoft 365: Vodafone Readiness Assessment
Copilot for Microsoft 365: 2-Week Readiness Assessment
COSMO Romanian Localization for Dynamics 365
Cyber Risk Check According to DIN SPEC 27076
CyberWallet Invoices for Office
Data Security Audit: 3-Week Engagement
DK Sense – IoT Industrial Monitoring, Analysis, and Control
DocAI Intelligent Document Automationa>
Ema’s Agentic Business Automation Platform
EV SBA 365Construction Forecast Accrual
Extended Producer Responsibility – WEEE & Batteries
Extending Copilot for Microsoft 365: 4-Week Assessment
Facebook Page Insights to Power BI
FM Retail – Backorder Management
Foxit PDF Editor Cloud for Microsoft Outlook
Generative AI Linkage Service for IBM i
Generative AI Prompt Assistant
Geneyx Analysis – FASTQ to VCF Computing Time
Go4TMS – Ultimo Integration Offering
Google Analytics 4 to Power BI
Google My Business to Power BI
Google Search Console to Power BI
iConnect 365 for Nonprofits and Churches
IronYun Vaidio AI Vision Analytics
m+m Extend Production Information
Manufacturing Process Automation Launchpad
mHACCP Food Quality Management System for Hotels, Restaurants, and Retail
Microsoft 365 Assessment and Migration for Law Firms
Microsoft 365 Tenant Health-Check
Modern SecOps Engagement: 4-Week Workshop
Momentum Direct Routing for GCCH
Naviworld Quality Control Management Solution
Odyssey Essentials Incident Management
Odyssey Essentials Safety Conversations
PlainStaff Time Tracking for Web and Mobile
PowerCentral Financial Analytics for Dynamics 365 Business Central
Prodware Engineer to Order Project Accelerator
PSA Professional Services in Action (IT)
secure365 Managed Cybersecurity Dashboards
Sibasi Risk and Compliance Management Reports
SIEVERS Document Capture Connector to Simba
tegossuite NA – Safe Fleet Integration
Total Ship Logistics with Dynamics 365 Sales
Twitter / X Organic to Power BI
Wise Courier for National Registry
This content was generated by Microsoft Azure OpenAI and then revised by human editors.
Microsoft Tech Community – Latest Blogs –Read More
Using Structured Outputs in Azure OpenAI’s GPT-4o for consistent document data processing
When using language models for AI-driven document processing, ensuring reliability and consistency in data extraction is crucial for downstream processing.
This article outlines how the Structured Outputs feature of GPT-4o offers the most reliable and cost-effective solution to this challenge.
To jump into action and use Structured Outputs for document processing, get hands on with our Python samples on GitHub.
Key challenges in consistency in generating structured outputs
ISVs and Startups building document data extraction solutions grapple with the complexities of ensuring that language models generate a consistent output inline with their defined schemas. These key challenges include:
Limitations in inline JSON output. While some models introduced the ability to produce JSON outputs, inconsistencies still arise from them. Language models can generate a response that doesn’t conform to the provided schema. This requires additional prompt engineering or post-processing to resolve.
Complexity in prompts. Including detailed inline JSON schemas within prompts increases the overall number of input tokens consumed. This is particularly problematic if you have a large, complex output structure.
Benefits of using the Structured Outputs features in Azure OpenAI’s GPT-4o
To overcome the limitations and inconsistencies of inline JSON outputs, GPT-4o’s structured outputs enables the following capabilities:
Strict schema adherence. Structured Outputs dynamically constrains the model’s outputs to adhere to JSON schemas provided in the response format of the request to GPT-4o. This ensures that the response is always well-formed for downstream processing.
Reliability and consistency. Using additional libraries, such as Pydantic, combined with Structured Outputs, developers can define exactly how data should be constrained to a specific model. This minimizes any post-processing and improves data validation.
Cost optimization. Unlike inline JSON schemas, Structured Outputs do not count towards the total number of input tokens consumed in a request to GPT-4o. This provides more overall input tokens for consuming document data.
Let’s explore how to use Structured Outputs with document processing in more detail.
Understanding Structured Outputs in document processing
Introduced in September 2024, the Structured Outputs feature in Azure OpenAI’s GPT-4o model provided much needed flexibility in requests to generate a consistent output using class models and JSON schemas.
For document processing, this enables a more streamlined approach to both structured data extraction as well as document classifications. This is particularly useful when building document processing pipelines.
By utilizing a JSON schema format, GPT-4o constrains the generated output to a JSON structure that is consistent with every request. These JSON structures can then easily be deserialized into a model object that can be processed easily by other services or systems. This eliminates potential errors often caused by inline JSON structures being misinterpreted by language models.
Implementing consistent outputs using GPT-4o in Python
To take full advantage and simplify the schema generation with Python, Pydantic is the ideal supporting library to build out class models to define the desired structure for outputs. Pydantic offers built-in schema generation for producing the necessary JSON schema required for the request, as well as data validation.
Below is an example for extracting data from an invoice demonstrating the capabilities of a complex class structure using Structured Outputs.
from typing import Optional
from pydantic import BaseModel
class InvoiceSignature(BaseModel):
type: Optional[str]
name: Optional[str]
is_signed: Optional[bool]
class InvoiceProduct(BaseModel):
id: Optional[str]
description: Optional[str]
unit_price: Optional[float]
quantity: Optional[float]
total: Optional[float]
reason: Optional[str]
class Invoice(BaseModel):
invoice_number: Optional[str]
purchase_order_number: Optional[str]
customer_name: Optional[str]
customer_address: Optional[str]
delivery_date: Optional[str]
payable_by: Optional[str]
products: Optional[list[InvoiceProduct]]
returns: Optional[list[InvoiceProduct]]
total_product_quantity: Optional[float]
total_product_price: Optional[float]
product_signatures: Optional[list[InvoiceSignature]]
returns_signatures: Optional[list[InvoiceSignature]]
With a well-defined model in place, requests to the Azure OpenAI chat completions endpoint are as simple as providing the model as the request’s response format. This is demonstrated below in a request to extract data from an invoice.
completion = openai_client.beta.chat.completions.parse(
model=”gpt-4o”,
messages=[
{
“role”: “system”,
“content”: “You are an AI assistant that extracts data from documents.”,
},
{
“role”: “user”,
“content”: f”””Extract the data from this invoice.
– If a value is not present, provide null.
– Dates should be in the format YYYY-MM-DD.”””,
},
{
“role”: “user”,
“content”: document_markdown_content,
}
],
response_format=Invoice,
max_tokens=4096,
temperature=0.1,
top_p=0.1
)
Best practices for utilizing Structured Outputs for document data processing
Schema/model design. Use well defined names for nested objects and properties to make it easier for the GPT-4o model to interpret how to extract these key pieces of information from documents. Be specific in terminology to ensure the model determines the correct value for fields.
Utilize prompt engineering. Continue to use your input prompts to provide direct instruction to the model on how to work with the document provided. For example, include the definitions for domain jargon, acronyms, and synonyms that may exist in a document type.
Use libraries that generate JSON schemas. Libraries, such as Pydantic for Python, make it easier to focus on building out models and data validation without the complexities of understanding how to convert or build a JSON schema from scratch.
Combine with GPT-4o vision capabilities. Processing document pages as images in a request to GPT-4o using Structured Outputs can yield higher accuracy and cost-effectiveness when compared to processing document text alone.
Summary
Leveraging Structured Outputs in Azure OpenAI’s GPT-4o provides a necessary solution to ensure consistent and reliable outputs when processing documents. By enforcing adherence to JSON schemas, this feature minimizes the chances of errors, reduces post-processing needs, and optimizes token usage.
The one key recommendation to take away from this guidance is:
Evaluate Structured Outputs for your use cases. We have provided a collection of samples on GitHub to guide you through potential scenarios, including extraction and classifications. Modify these samples to the needs of your specific document types to evaluate the effectiveness of the techniques. Get the samples on GitHub.
By exploring this approach, you can further streamline your document processing workflows, enhancing developer productivity and satisfaction for end users.
Read more on document processing with Azure AI
Thank you for taking the time to read this article. We are sharing our insights for ISVs and Startups that enable document processing in their AI-powered solutions, based on real-world challenges we encounter. We invite you to continue your learning through our additional insights in this series.
Discover how to enhance data extraction accuracy with Azure AI Document Intelligence by tailoring models to your unique document structures.
Discover how Azure AI Document Intelligence and Azure OpenAI efficiently extract structured data from documents, streamlining document processing workflows for AI-powered solutions.
Evaluating the quality of AI document data extraction with small and large language models
Discover our evaluation of the effectiveness of AI models in quality document data extraction using small and large language models (SLMs and LLMs).
Further reading
How to use structured outputs with Azure OpenAI Service | Microsoft Learn
Discover how the structured outputs feature works, including limitations with schema size and field types.
Prompt engineering techniques with Azure OpenAI | Microsoft Learn
Discover how to improve your prompting techniques with Azure OpenAI to maximize the accuracy of your document data extraction.
Why use Pydantic | Pydantic Docs
Discover more about why you should adopt Pydantic for using the structured outputs feature in Python application, including details on how the JSON Schema output works.
Microsoft Tech Community – Latest Blogs –Read More
Connecting Simulink with Carla Simulator through ROS2 toolbox
This is my block from Simulink. The issue is that the enabling autopilot block is working fine but it seems that ROS2 toolbox isn’t able to read data from the topics. In this case, I’m trying to read an image from one of the camera sensors that the Carla Simulator has. The read image block returns "errorCode =1" which means that the codification of the image isn’t correct. I’ve checked several times and the image codification is bgra8, so that’s the configuration that I have in the block and it still doesn’t work. Also, I’ve readed the data from rviz2 and it works fine. It shows all the sensor data and the images that are being recorded in real time
Anyone knows what could be causing this?This is my block from Simulink. The issue is that the enabling autopilot block is working fine but it seems that ROS2 toolbox isn’t able to read data from the topics. In this case, I’m trying to read an image from one of the camera sensors that the Carla Simulator has. The read image block returns "errorCode =1" which means that the codification of the image isn’t correct. I’ve checked several times and the image codification is bgra8, so that’s the configuration that I have in the block and it still doesn’t work. Also, I’ve readed the data from rviz2 and it works fine. It shows all the sensor data and the images that are being recorded in real time
Anyone knows what could be causing this? This is my block from Simulink. The issue is that the enabling autopilot block is working fine but it seems that ROS2 toolbox isn’t able to read data from the topics. In this case, I’m trying to read an image from one of the camera sensors that the Carla Simulator has. The read image block returns "errorCode =1" which means that the codification of the image isn’t correct. I’ve checked several times and the image codification is bgra8, so that’s the configuration that I have in the block and it still doesn’t work. Also, I’ve readed the data from rviz2 and it works fine. It shows all the sensor data and the images that are being recorded in real time
Anyone knows what could be causing this? ros2 MATLAB Answers — New Questions
water filling_cvx
I have this code in my matlab but it has an error as:
Incorrect number or types of inputs or outputs for function vec.
I would really appreciate it if you could help me to solve it.
I should emphasize that I installed cvx on my matla.
Np = 4;
Nsc= 4;
mu_l_n = [1.56247628361161e-06;
1.59519914659906e-06;
1.27498226759933e-06;
1.03143933197703e-05];
tilde_P1_tot = 1000;
sigma2_dBm = -104;
sigma2 = 10^(sigma2_dBm / 10 – 3);
cvx_begin quiet
variable p1_l_n(Np) % Power allocation vector, column vector
term = (mu_l_n.^2 .* p1_l_n) / sigma2; % Define term for clarity
maximize(sum(log(1 + term))) % Objective function to maximize sum rates
subject to
sum(p1_l_n) == tilde_P1_tot / Nsc; % Total power constraint across subcarriers
p1_l_n >= 0; % Power must be non-negative
cvx_end
% Display the optimal power allocation
disp(‘Optimal power allocation:’);
disp(p1_l_n);I have this code in my matlab but it has an error as:
Incorrect number or types of inputs or outputs for function vec.
I would really appreciate it if you could help me to solve it.
I should emphasize that I installed cvx on my matla.
Np = 4;
Nsc= 4;
mu_l_n = [1.56247628361161e-06;
1.59519914659906e-06;
1.27498226759933e-06;
1.03143933197703e-05];
tilde_P1_tot = 1000;
sigma2_dBm = -104;
sigma2 = 10^(sigma2_dBm / 10 – 3);
cvx_begin quiet
variable p1_l_n(Np) % Power allocation vector, column vector
term = (mu_l_n.^2 .* p1_l_n) / sigma2; % Define term for clarity
maximize(sum(log(1 + term))) % Objective function to maximize sum rates
subject to
sum(p1_l_n) == tilde_P1_tot / Nsc; % Total power constraint across subcarriers
p1_l_n >= 0; % Power must be non-negative
cvx_end
% Display the optimal power allocation
disp(‘Optimal power allocation:’);
disp(p1_l_n); I have this code in my matlab but it has an error as:
Incorrect number or types of inputs or outputs for function vec.
I would really appreciate it if you could help me to solve it.
I should emphasize that I installed cvx on my matla.
Np = 4;
Nsc= 4;
mu_l_n = [1.56247628361161e-06;
1.59519914659906e-06;
1.27498226759933e-06;
1.03143933197703e-05];
tilde_P1_tot = 1000;
sigma2_dBm = -104;
sigma2 = 10^(sigma2_dBm / 10 – 3);
cvx_begin quiet
variable p1_l_n(Np) % Power allocation vector, column vector
term = (mu_l_n.^2 .* p1_l_n) / sigma2; % Define term for clarity
maximize(sum(log(1 + term))) % Objective function to maximize sum rates
subject to
sum(p1_l_n) == tilde_P1_tot / Nsc; % Total power constraint across subcarriers
p1_l_n >= 0; % Power must be non-negative
cvx_end
% Display the optimal power allocation
disp(‘Optimal power allocation:’);
disp(p1_l_n); power_allocation, water_filling, optimization, cvx MATLAB Answers — New Questions
Can you please help to plot the following ODE ?
<</matlabcentral/answers/uploaded_files/1783230/IMG_0192.jpeg>><</matlabcentral/answers/uploaded_files/1783230/IMG_0192.jpeg>> <</matlabcentral/answers/uploaded_files/1783230/IMG_0192.jpeg>> help MATLAB Answers — New Questions
Reuse forms (a copy) and save data to specific location as excel
Hello!
I’v created a form starting from an excel in a folder in SharePoint Document Library. No I would like to use a similar form to save the data in an other folder of the library. Since the form is not zero effort to create (with some languages to choose…) I don’t like to start the second form from scratch.
So, is there a way to start working on a form based on another one but get the data saved in a specific location?
Thanks in advance and regards,
Klaus
Hello!I’v created a form starting from an excel in a folder in SharePoint Document Library. No I would like to use a similar form to save the data in an other folder of the library. Since the form is not zero effort to create (with some languages to choose…) I don’t like to start the second form from scratch. So, is there a way to start working on a form based on another one but get the data saved in a specific location?Thanks in advance and regards,Klaus Read More
Sharepoint REST API file upload is atomic ?
Hello
I am using sharepoint rest api to upload files in Sharepoint using this documentation.
Everything works but I want to make sure that I compeletly understand the behavior.
Does the file become immediately available in sharepoint folder once I start the upload or does it wait for the upload to complete before becoming available to be read ?
I want to make sure that other users do not start reading my file while it’s still loading or while it’s still incomplete.
endpoint used for file upload:
POST https://{site_url}/_api/web/GetFolderByServerRelativeUrl(‘Folder Name’)/Files/add(url=’a.txt’,overwrite=true)
Thanks in advance.
HelloI am using sharepoint rest api to upload files in Sharepoint using this documentation.Everything works but I want to make sure that I compeletly understand the behavior.Does the file become immediately available in sharepoint folder once I start the upload or does it wait for the upload to complete before becoming available to be read ?I want to make sure that other users do not start reading my file while it’s still loading or while it’s still incomplete.endpoint used for file upload:POST https://{site_url}/_api/web/GetFolderByServerRelativeUrl(‘Folder Name’)/Files/add(url=’a.txt’,overwrite=true) Thanks in advance. Read More
Blog about Manage projects with Planner in Office 365 for begginers
If you have projects/plans and would like to manage them specially if you are using agile/scrum methodologies then you can use Office 365 Planner
Read steps here as guidance :
https://dellenny.com/manage-projects-with-planner-in-office-365/
https://dellenny.com/manage-planner-tasks-assigned-to-you-within-microsoft-to-do/
If you have projects/plans and would like to manage them specially if you are using agile/scrum methodologies then you can use Office 365 Planner
Read steps here as guidance :
https://dellenny.com/manage-projects-with-planner-in-office-365/
https://dellenny.com/manage-planner-tasks-assigned-to-you-within-microsoft-to-do/
Read More
Blocking Personal Outlook and Gmail Accounts on Corporate Device
Hello Community,
In my organization, we use the Microsoft 365 environment. We have a hybrid infrastructure, but we aim to deploy as many policies as possible through Microsoft 365 (Intune, Purview, Defender, etc.). One of our goals is to limit the use of corporate devices for personal purposes.
We use Outlook as our corporate email service, and we would like to block employees from signing into their personal email accounts (either via web or desktop application).
Additionally, we would like to block access to other email services, such as Gmail, both via web and desktop apps.
Could you provide guidance on how to achieve this?
I would greatly appreciate any help or suggestions.
Thank you very much!
Juan Rojas
Hello Community, In my organization, we use the Microsoft 365 environment. We have a hybrid infrastructure, but we aim to deploy as many policies as possible through Microsoft 365 (Intune, Purview, Defender, etc.). One of our goals is to limit the use of corporate devices for personal purposes. We use Outlook as our corporate email service, and we would like to block employees from signing into their personal email accounts (either via web or desktop application). Additionally, we would like to block access to other email services, such as Gmail, both via web and desktop apps. Could you provide guidance on how to achieve this? I would greatly appreciate any help or suggestions. Thank you very much! Juan Rojas Read More
Copilot agents in Microsoft 365 Copilot – now available to accelerate app building
Copilot agents in Microsoft 365 Copilot are now available with a variety of new features that can accelerate your app building!
Copilot agents are designed to automate and execute business processes, working alongside users to enhance productivity. These agents can perform a range of tasks, from retrieving information and summarizing data to taking actions and operating autonomously. Copilot agents are versatile and can be published to various channels, including Microsoft Teams, websites, and mobile apps.
New capabilities:
Copilot agents built in Copilot Studio can now be published directly into Microsoft 365 Copilot, integrating seamlessly into the user’s workflow.
A new Copilot Studio experience empowers users of any skill level to create Copilot agents from within SharePoint and Microsoft 365 Copilot Business Chat (BizChat). These features will be available to all Microsoft 365 Copilot customers in the coming weeks.
Copilot agents enhance Copilot’s capabilities by connecting to an organization’s knowledge and data sources, such as SharePoint, Microsoft Dynamics 365, and other line-of-business systems. Additionally, agents can be equipped with new skills, such as sending emails, updating records, and creating support tickets, further expanding their functionality.
Learn more: “Unveiling Copilot agents built with Microsoft Copilot Studio to supercharge your business“
_______________________________________________________________________________________________
Are you planning to use Copilot agents in your marketplace app development? Comment below to let us know what additional training and resources would be helpful for you!
Copilot agents in Microsoft 365 Copilot are now available with a variety of new features that can accelerate your app building!
Copilot agents are designed to automate and execute business processes, working alongside users to enhance productivity. These agents can perform a range of tasks, from retrieving information and summarizing data to taking actions and operating autonomously. Copilot agents are versatile and can be published to various channels, including Microsoft Teams, websites, and mobile apps.
New capabilities:
Copilot agents built in Copilot Studio can now be published directly into Microsoft 365 Copilot, integrating seamlessly into the user’s workflow.
A new Copilot Studio experience empowers users of any skill level to create Copilot agents from within SharePoint and Microsoft 365 Copilot Business Chat (BizChat). These features will be available to all Microsoft 365 Copilot customers in the coming weeks.
Copilot agents enhance Copilot’s capabilities by connecting to an organization’s knowledge and data sources, such as SharePoint, Microsoft Dynamics 365, and other line-of-business systems. Additionally, agents can be equipped with new skills, such as sending emails, updating records, and creating support tickets, further expanding their functionality.
Learn more: “Unveiling Copilot agents built with Microsoft Copilot Studio to supercharge your business”
_______________________________________________________________________________________________
Are you planning to use Copilot agents in your marketplace app development? Comment below to let us know what additional training and resources would be helpful for you!
Read More
Excel Sheet Won’t Open
I have sheets with data comming automatically from the web, such as Stocks and currencies. Today all these sheets won’t open. I already updated my system (MACOS Sonoma 14.5) and also reinstalled the office 365 and still doen’t work.
I have sheets with data comming automatically from the web, such as Stocks and currencies. Today all these sheets won’t open. I already updated my system (MACOS Sonoma 14.5) and also reinstalled the office 365 and still doen’t work. Read More