Category: Microsoft
Category Archives: Microsoft
Announcing enhanced multicloud integration enabled by Azure Arc
We are thrilled to announce a new set of capabilities for multicloud customers, making it easier than ever to manage cloud resources from a centralized platform. With the adaptive cloud approach enabled by Azure Arc, customers can quickly and easily access and manage their workloads across Azure and AWS through the multicloud connector, which is free to use!
Microsoft understands and supports customers who run workloads in multiple public clouds. Our goal is to make it easier for you to gain visibility and insights into all your workloads and to have a common set of management tools that you can leverage, saving you time and operational costs. Some customers are already taking advantage of Azure management services for multicloud resources via Azure Arc. With this new multicloud connector, we are making it easier to connect to other public clouds and support new multicloud capabilities in a lightweight manner.
What are the new multicloud capabilities?
With the multicloud connector, customers can benefit from the following features:
Inventory: Get an up-to-date, comprehensive view of your cloud assets across different cloud providers. Starting with a wide range of AWS services (EC2, S3, Lambda, and more), you can now gain insights into your Azure & AWS environments in a single pane of glass. The agentless inventory solution will periodically scan your AWS environment, project the discovered resources in AWS as Azure resources, including all of the AWS metadata like AWS tags. Now, you can easily view, query, and tag these resources from a centralized location.
Azure Arc onboarding: Automatically Arc-enable your existing and future EC2 instances so you can leverage Azure and Microsoft services, like Azure Monitor and Microsoft Defender. Through the multicloud connector, the Azure Arc agent will be automatically installed for machines that meet the pre-requisites.
How do I get started?
You can easily set up the multicloud connector by following our getting started guide which provides step by step instructions on creating the connector and setting up the permissions on the AWS console.
What can I do after my connector is set up?
With the inventory offering, you can see and query for all of you AWS and Azure resources via Azure Resource Graph. Check out some example queries here.
For Azure Arc onboarding, you can apply the Azure management services on your EC2 instances that are Arc-enabled. Learn more here.
We are very excited about the new capabilities. Set up your multicloud connector now for free! Please let us know if you have any questions by posting on the Azure Arc forum or via Microsoft support. Here is the mutlicloud capabilities technical documentation and check out this deep dive video for a demo:
Microsoft Tech Community – Latest Blogs –Read More
upgrade to windows 11 with my permission
I’m so f’in mad!!! I have a desktop that I use occasionally. Since the last time I used it several days ago an update occurred. When I opened it up this morning it was upgraded WITHOUT MY PERMISSION from Windows 10 to Windows 11. I did not see any upgrade notices when I used it last and did not (knowingly) grant permission for an upgrade to Windows 11 to occur!! How/Why did this happen??? A restore to 10 isn’t possible from the control panel (grayed out). I DID NOT WANT& DID NOT ASK FOR THIS UPGRADE OCCUR!!! I’d like to know why and how this happened. I have to go thru and refind/reinstall apps now that weren’t carried thru. WHY WHY WHY?????
(apologies for the rant)
I’m so f’in mad!!! I have a desktop that I use occasionally. Since the last time I used it several days ago an update occurred. When I opened it up this morning it was upgraded WITHOUT MY PERMISSION from Windows 10 to Windows 11. I did not see any upgrade notices when I used it last and did not (knowingly) grant permission for an upgrade to Windows 11 to occur!! How/Why did this happen??? A restore to 10 isn’t possible from the control panel (grayed out). I DID NOT WANT& DID NOT ASK FOR THIS UPGRADE OCCUR!!! I’d like to know why and how this happened. I have to go thru and refind/reinstall apps now that weren’t carried thru. WHY WHY WHY?????(apologies for the rant) Read More
Setting up new AVD pool with custom apps installed in Win11
Hi all, I currently have an AVD environment setup with Win10 machines and originally when I set it up, I had created a Win10 VM, installed all the apps on it and then took an image of it. So when I spin up new AVD’s, the users have all of their software needed. I am needing to setup new Win11 AVDs now and want to go about the image a little different. One problem with the Win10 AVDs is that the software doesn’t get updated automatically. I am unsure of an easy way to update them. So I guess I have 2 questions.
1. How can I easily update all the apps on all of my Win10 AVDs that are currently deployed?
2. I am deploying Win11 AVDs and want to make them easier to manage as far as 3rd party software installs/updates. What is the easiest way to do this? I will need VS Code, VS Community edition, Notepadd++, R and R Studio, and several other apps installed.
Right now, I have the Host Pool Type set to Personal on the Win10 environment. With the Win11 environment, I am planning on doing Pooled, so I can cut down the number/cost of the machines that we currently have. I’m roughly at 150 AVDs right now.
Any help would be greatly appreciated! Thanks!!
Hi all, I currently have an AVD environment setup with Win10 machines and originally when I set it up, I had created a Win10 VM, installed all the apps on it and then took an image of it. So when I spin up new AVD’s, the users have all of their software needed. I am needing to setup new Win11 AVDs now and want to go about the image a little different. One problem with the Win10 AVDs is that the software doesn’t get updated automatically. I am unsure of an easy way to update them. So I guess I have 2 questions. 1. How can I easily update all the apps on all of my Win10 AVDs that are currently deployed?2. I am deploying Win11 AVDs and want to make them easier to manage as far as 3rd party software installs/updates. What is the easiest way to do this? I will need VS Code, VS Community edition, Notepadd++, R and R Studio, and several other apps installed.Right now, I have the Host Pool Type set to Personal on the Win10 environment. With the Win11 environment, I am planning on doing Pooled, so I can cut down the number/cost of the machines that we currently have. I’m roughly at 150 AVDs right now. Any help would be greatly appreciated! Thanks!! Read More
Do we have APIs for SharePoint eSignature services?
Hi All,
I have gone through the below YouTube link and documentation. I want to integrate the e-Signature in my system through APIs and I’m not using the SharePoint user interface.
1. Can you confirm if there are any APIs currently available for use?
2. In the video link below, it is only possible to type the name for signature, are there provisions to sign by mouse scribbling?
Securely digitize document workflows with eSignature in Microsoft 365 | OD17 (youtube.com)
Set up SharePoint eSignature – Microsoft Syntex | Microsoft Learn
Regards,
Pandi.
Hi All,I have gone through the below YouTube link and documentation. I want to integrate the e-Signature in my system through APIs and I’m not using the SharePoint user interface. 1. Can you confirm if there are any APIs currently available for use?2. In the video link below, it is only possible to type the name for signature, are there provisions to sign by mouse scribbling? Securely digitize document workflows with eSignature in Microsoft 365 | OD17 (youtube.com)Set up SharePoint eSignature – Microsoft Syntex | Microsoft Learn Regards,Pandi. Read More
From pixels to presence: new features coming to Microsoft Mesh
In January, we announced the general availability of Mesh in Teams. We launched with the promise of unlocking deeper engagement for hybrid and remote teams across the world. Today, we’re thrilled to unveil our latest advancements designed to optimize the avatar creation process with the help of AI and enrich your virtual collaboration.
AI-Enabled Avatar Creation
Our journey of reimagining virtual interactions began with digital avatars. Since the private preview of avatars in October 2022, we’ve added more lifelike skin, increased options for facial and body customization, and expanded hair style and skin tone options. However, with hundreds of combinations available, some users have expressed feeling a little overwhelmed when creating their avatar. We’re excited to announce that we’ve devised an AI-powered solution that makes avatar creation more efficient and more accurate. AI algorithms will analyze the visual features in your submitted photo to predict the best possible matches for your face shape, hair, eyewear, and facial hair. These best matches are combined to create three avatar options for you to choose from.
In public preview this month, simply take or upload a photo of yourself and let our AI-enabled technology¹ craft an avatar that represents you. Find more information about creating your avatar with a photo here. To manage avatars in Microsoft Teams, learn more here.
Show up the way you want
Avatars ensure everyone has a presence in the meeting room, even those who might not feel comfortable on camera. To accomplish this, it is important for your avatar to look and interact like you would. Beginning May 17th, explore the new wardrobe options, more professional attire, and improved texture, fit, and color of the clothes available in the Avatar Builder.
In July, we will add emotes as another way to express yourself in the 3D immersive spaces built into every Teams meeting. While you’re in an immersive space, select the “reactions” button in the menu bar at the bottom center of the immersive space view. Find the new emotes below the original Teams reactions and begin expressing yourself during meetings.
Tailored to your needs
We launched Mesh in Teams with two ready-made 3D immersive spaces, Lakehouse and Oasis, built into your Microsoft Teams meeting². Each space was specifically built for different meeting scenarios. Lakehouse was created for social scenarios and is equipped with various interactive activities to encourage conversation and connection. Oasis offers different seating arrangements and room sizes to accommodate presentations and roundtable discussions. Beginning in June in public preview, we are releasing a new space tailored for workshops, brainstorming sessions, and employee orientations. Let these curated 3D spaces elevate whatever moment you’re planning— whether it’s a networking event in Lakehouse, presenting a PowerPoint in Oasis, or hosting a breakout discussion in our new space.
This is a conceptual visualization of the upcoming event editing feature.
Access these immersive spaces from the View menu³ in any Teams meeting via PC or Meta Quest VR Headset⁴ . . Mesh in Teams will continue to reach more users as Mac access begins rolling out to general availability later this month.
Watch this video to learn more about how to join immersive spaces in Teams.
Enhance collaboration and interaction
In August in public preview, we will release content sharing improvements, including enhanced readability, to ensure ease of comprehension and enable productive discussions. Content refers to anything you can screenshare, whether that’s a PowerPoint presentation, Loop component, or website. With regards to engaging with other teammates in an immersive space, we will also release several avatar interaction improvements. This month, we’ve added different camera perspectives to view your avatar from (i.e., first person, third person, third-person wide view) and, in July, we’ll include improvements to avatar personal boundaries.
This is a conceptual visualization of the improved customization experience.
Expanded connection with custom experiences
For those looking to deliver more customized or larger-scale events, we’re excited to announce several features coming to the Mesh app⁵ in early July.
First, we’ll release an improved customization experience with a more streamlined process for event setup, an easier way to place objects in the space, and turnkey event templates. We’ve also invested in new ways to enable presenters to connect more meaningfully with their audiences. Larger events require multiple rooms to accommodate more attendees. To support this experience, we will enable presenters to visualize reactions of every attendee across all rooms while they present to help capture important real-time audience feedback. If presenters prefer to make more intimate connections with smaller groups of participants, we are also releasing room hopping to allow presenters to move from room to room.
We’re excited that our new features improve one-time event experiences and are equally aware that one-time events are just one of the scenarios custom immersive experiences are built for. Imagine a learning-focused space with a multitude of organization specific resources or a collaboration-focused space crafted to imitate a control room with 3D models, product images, and screens of data. It may not be possible for an attendee to take in all of that useful information during one scheduled time block. In early July, attendees will be enabled to revisit event links whenever they want to revisit content and reconnect with their team.
These enhancements are just the beginning. We’re committed to continuously evolving Mesh to provide you with the best virtual collaboration tools.
Learn more about getting started with Mesh in Teams and creating custom immersive spaces in our Mesh app here.
¹ Your photo is not retained or used for any other purpose. The create avatars from photo feature doesn’t make any other predictions outside of your facial features. Learn more here.
² Find licensing information here.
³ Learn more about how to access Mesh in Teams from any Teams meeting here.
⁴ On the Meta Quest VR headset, Mesh in Teams is only accessible via the Mesh app. Learn more here.
⁵ Find licensing information here.
Microsoft Tech Community – Latest Blogs –Read More
How Copilot for Microsoft 365 Works
Knowing how technology works eases your mind, minimizes confusion, and deepens your understanding as you incorporate it into your daily work routine.
Copilot for Microsoft 365 leverages large language models (LLMs) that interact with your data using the Microsoft Graph and optionally the Internet to generate personalized experiences with related context as you work. Copilot for Microsoft 365 provides a powerful orchestration engine and combines the power of Large Language Models, your universe of data via Microsoft Graph, the Internet, and your Microsoft 365 apps. Importantly, Copilot for Microsoft 365 only uses information that you explicitly have access to. It only remembers your conversation while it’s in that conversation and we don’t use your information to train the Large Language model. The chat history is wiped clean with each new conversation.
OK, let’s go behind the scenes to further understand the architecture and dataflows behind Copilot for Microsoft 365, including retrieval augmented generation techniques, app commanding, and options to securely connect to external data. You’ll see the potential within chat and how it can save you time with examples of specific use cases.
Watch | “How Copilot for Microsoft 365 Works” presented by A.J. Brush and Mary David Pasch at the recent Microsoft 365 Community Conference #M365Con:
More on demand | Recent long-form Copilot and AI videos from Microsoft
“General Session: Reshaping productivity with Copilot for Microsoft 365” with Bobby Kishore and Dan Parish
“Delivering Business Value & User Satisfaction in the Era of AI” with Karuana Gatimu
“Harnessing Copilot and AI for Teams meeting effectiveness” with Shiraz Cupala
“Prepare your content for Microsoft Copilot with SharePoint content governance” with Dave Minasyan, Sanjoyan Mustafi, and Chris Bortlik
“Real World Lessons Managing Copilot for Microsoft 365” with Chris Bortlik and Manfred Koch
“Driving User Satisfaction w/ AI for Microsoft employees” with Claire Sisson
“Create an AI-Ready Organization – Technical & User Enablement Best Practices for Copilot for Microsoft 365” with Karuana Gatimu, Olga Gordon, and Cynthia Johnson
“Understanding Microsoft 365 Copilot Extensibility via Microsoft Graph connectors” with Gladys Alvarez Jimenez, and Brian T. Jackett
Review all Microsoft 365 Community Conference session videos (links to our main playlist of all]
Additional, important Copilot and AI resources from Microsoft
Copilot hub on adoption.microsroft.com
Insight into how Microsoft operates its AI services. #ResponsibleAI
Download the Copilot for Microsoft 365 Success Kit
Read “The Art and Science of Working with AI” (on Worklab)
Microsoft Copilot for Microsoft 365 overview article on Microsoft Learn
Learn more about expanding Copilot with Microsoft Graph connectors
Thanks for your time discovering more about Copilot for Microsoft 365, Karuana Gatimu and Mark Kashman
Microsoft Tech Community – Latest Blogs –Read More
Upcoming changes for creating and managing Teams Phone resource accounts
Microsoft Teams Phone is a cloud-based phone system that enables smart communication and effortless collaboration for Teams users. To enable Teams Phone features such as auto attendants and call queues, resource accounts are required. Resource Accounts These specific accounts are associated with these features and are not intended for actual users.
We are committed to providing secure and compliant services to our customers and users. As part of this commitment, we continuously identify areas of improvement for our security privileges for administrative roles in Microsoft 365.
Currently, Teams administrators can create and manage resource accounts without requiring any user management permissions in Microsoft 365. As part of our commitment to deliver secure solutions that meet the highest standards, we are implementing changes to the management of resource accounts. Going forward, Teams administrators will need to have user management permissions in Microsoft 365 to create and manage resource accounts. This change will take effect 3rd quarter of 2024.
This change will impact the Teams administrative experiences and workflows, as well as the Teams end-user features that depend on resource accounts. To prepare for this change, we have created the guidance below for Teams administrators:
Ensure you have the appropriate user management permissions in Microsoft 365 to create and manage resource accounts. These permissions include User Administrator, Global Administrator, or custom roles that include the User Management permission. To assign these permissions, use the Microsoft 365 admin center or the Azure Active Directory PowerShell for Graph.
Review the existing resource accounts in your tenant and make sure that they are configured correctly and assigned to the relevant Teams Phone features. Resource accounts can be viewed and managed in the Teams Admin Center or using PowerShell cmdlets.
Update your processes and documentation to reflect the new requirements and best practices for creating and managing resource accounts. Resource accounts should have a clear naming convention and description that indicate their purpose and association with the Teams Phone features. Resource accounts should also have a valid license assigned to them, such as Microsoft Teams Phone Resource Account
Communicate the change and its implications to the relevant stakeholders and end-users in your organization. End-users may experience service disruptions or feature unavailability if the resource accounts are not created or managed properly by the Teams Phone administrators. For example, if a resource account is deleted or disabled, the associated auto attendant or call queue will stop working. If a resource account is not licensed or assigned to a phone number, the associated voicemail or conference bridge will not function.
Possible paths forward
To streamline the creation and management of resource accounts, Teams Phone administrators can consider the following options:
Use split provisioning to divide the tasks of creating and configuring resource between user administrators and Teams administrators. Split provisioning is a process that allows user administrators to create resource accounts using the Microsoft 365 Admin Center or PowerShell, and then assign them to Teams administrators who can configure them using the Teams Admin Center or PowerShell.
Use staged resource accounts to pre-create a set of resource accounts in bulk and then assign them to the Teams Phone features as needed. Staged resource accounts are resource accounts that are assigned a license and a phone number
Use Privileged Access Management (PAM) to delegate the permissions and roles needed to create and manage resource accounts. PAM is a feature of Microsoft 365 that allows you to control who can perform certain administrative actions and when. With PAM, you can create policies that grant access to specific tasks or cmdlets for a limited time period and require approval from designated approvers. For example, you can create a policy that allows a Teams administrator to run the New-CsOnlineApplicationInstance cmdlet to create a resource account, but only after getting approval from a global administrator. To learn more about PAM and how to use it, see Privileged Access Management in Microsoft 365.
Use Power Platform to create a custom solution that automates the creation and management of resource accounts. Power Platform allows you to build low-code apps that connect to various data sources and services. With Power Apps or Microsoft Forms, you can create a user interface that collects the required information for creating a resource account, such as the name, description, phone number, and license. Then, you can use Power Automate to trigger a workflow that validates the input, creates the resource account using Entra ID Connectors or Graph API, and sends a notification to the Teams Phone administrator. The created resource account will appear in the Teams Admin Center and can be managed from there. To learn more about Power Apps and how to use it, see What is Power Apps? and Create an app from scratch.
Organizations may also decide to add Teams administrators to the User Administrator group.
We appreciate your understanding and cooperation as we work to enhance the security and compliance of Microsoft 365 services. For more information and guidance on this change, please refer to the Teams documentation.
Microsoft Tech Community – Latest Blogs –Read More
Generative AI, from your local machine to Azure with LangChain.js
The generative AI landscape moves at a fast pace, and it can be challenging to keep up with the latest developments, even for seasoned developers. There are in particular two questions that often come up when starting a new AI project:
How can I quickly validate an AI app idea, without investing too much time and resources?
If I have a working prototype, how fast can I scale it to production?
You don’t want to be outpaced by competitors or newer technologies, and you want to be able to quickly iterate on your ideas or pivot to new ones. This is where LangChain.js comes in. It’s a framework that allows you to build AI applications very little adherence to the underlying AI technologies and tools. It abstracts some of the complexity of AI development, allowing you to focus on the business logic of your application.
In this article, we’ll take you through the development journey, starting from an idea and progressing towards production. We’ll explore how LangChain framework together with Azure AI building blocks allows you to quickly build complex AI applications at the various stages of development.
Note: If you prefer to watch a video version of this article, you can find it on YouTube here.
TL;DR key takeaways
AI is not only reserved to Python developers: JavaScript developers also have everything they need to build AI applications.
LangChain.js provides useful abstraction over AI models and APIs, allowing you to switch between them easily. This is particularly useful when you’re experimenting with different models or when you want to scale your application, moving from a local SLM model to a cloud-based LLM.
Ollama is allow you to experiment with AI models and embeddings locally, at no cost (if you have a powerful enough machine).
Azure provides many AI building blocks and services that you can use to scale your application to production.
Here’s the source code on GitHub of the project we use as an example in this article.
If you like the project, don’t forget to give it a star :star:️!
Working locally with Ollama
Ollama is a command-line tool that allows you to run AI models locally on your machine, making it great for prototyping. Running 7B/8B models on your machine requires at least 8GB of RAM, but works best with 16GB or more. You can install Ollama on Windows, macOS, and Linux from the official website: https://ollama.com/download.
Once you have Ollama installed, let’s first download some models. You can find a list of available models on the Ollama website. For this example, we’ll use the Phi-3 Mini model. Open a terminal and run the following command:
ollama pull phi3
Note: This will download a few gigabytes of data, so make sure you have enough space on your machine and a good internet connection.
Once the model is downloaded, you can start interacting with the Ollama server. For example, you can use the ollama run command to generate text based on a prompt:
ollama run phi3 “What is artificial intelligence? Explain it to a 5 years old child.“
You can also have a minimal ChatGPT-like experience right from you terminal by just running:
ollama run phi3
You can then chat with the model interactively. Once you’re done, you can stop the server by pressing Ctrl+D. Ollama also provides a REST API that you can use to interact with the model. The API provides many options, like streaming, JSON mode, and more. Here’s an example of how you can use the API:
curl http://localhost:11434/api/generate -d ‘{
“model”: “phi3”,
“prompt”: “What is artificial intelligence? Explain it to a 5 years old child.”,
“stream”: false
}‘
After running this command you should see a JSON response from the model Ollama even provides an OpenAI compatible API, so you can use it as drop-in replacement for OpenAI models in your applications. And as Ollama runs entirely on your machine, it means you don’t even need a network connection to use it.
While Ollama is great for experimentation and prototyping, keep in mind that smaller models are not as powerful as the larger models available in the cloud. While it might be enough to validate your idea, you’ll probably want to switch to cloud-based models for production to get better results.
Prototyping with LangChain.js
Now that we know how to run AI models locally, let’s see how we can use LangChain.js to quickly prototype an AI application. LangChain.js is a JavaScript framework that provides a high-level API to interact with AI models and APIs with many built-in tools to make complex AI applications easier to build.
Let’s start with a simple example project from scratch. Open a terminal and run the following commands:
# Creates a new folder and initializes a new Node.js project
mkdir langchain-demo
cd langchain-demo
npm init es6 -y
npm i langchain @langchain/core @langchain/community pdf-parse faiss-node
touch index.js
Now open the index.js file in your favorite code editor and add the following code:
import { HumanMessage, SystemMessage } from “@langchain/core/messages”;
import { ChatOllama } from “@langchain/community/chat_models/ollama”;
const model = new ChatOllama({ model: “phi3” });
const response = await model.invoke([
new SystemMessage(“You’re a helpful assistant”),
new HumanMessage(“Say hello”),
]);
console.log(response.content);
Run the code with node index.js. You should see the response from the model in the console. Congrats, you’ve just built the hello world of AI chatbots!
A more complex example
What if I want to use RAG (Retrieval-Augmented Generation) to ground the answers using documents? Let’s update our index.js file with the following code:
import { RecursiveCharacterTextSplitter } from “langchain/text_splitter”;
import { createStuffDocumentsChain } from “langchain/chains/combine_documents”;
import { createRetrievalChain } from “langchain/chains/retrieval”;
import { ChatPromptTemplate } from “@langchain/core/prompts”;
import { ChatOllama } from “@langchain/community/chat_models/ollama”;
import { OllamaEmbeddings } from “@langchain/community/embeddings/ollama”;
import { FaissStore } from “@langchain/community/vectorstores/faiss”;
import { PDFLoader } from “@langchain/community/document_loaders/fs/pdf”;
// 1. Initialize the models
const model = new ChatOllama({ model: “phi3” });
const embeddings = new OllamaEmbeddings({ model: “all-minilm:l6-v2” });
// 2. Load PDF document and split it into smaller chunks
const loader = new PDFLoader(“terms-of-service.pdf”, { splitPages: false });
const pdfDocument = await loader.load();
const splitter = new RecursiveCharacterTextSplitter({ chunkSize: 1000, chunkOverlap: 100 });
const documents = await splitter.splitDocuments(pdfDocument);
// 3. Put the documents into a vector store and convert them to vectors
const store = await FaissStore.fromDocuments(documents, embeddings, {});
// 4. Create the RAG chain that retrieves and combines the prompt with the documents
const combineDocsChain = await createStuffDocumentsChain({
llm: model,
prompt: ChatPromptTemplate.fromMessages([
[“system”, “You’re a helpful assistant”],
[“human”, “Answer the question: {input}nusing the following documents:nn{context}”],
]),
});
const chain = await createRetrievalChain({
retriever: store.asRetriever(),
combineDocsChain,
});
// 5. Generate the result
const response = await chain.invoke({ input: “What’s our mission?” });
console.log(response);
This code will load a PDF document, split it into smaller chunks, convert them to vectors, and then use them in a multi-step workflow (chain) to perform a vector search and generate a response using the best results. Pheeew! This one is a more complex example, but it shows how LangChain.js can help you build more advanced AI scenarios in a few lines of code.
Before running this code, you first need to download this PDF document and put it in the langchain-demo folder.
We also need to download the embeddings model. You can do this by running the following command:
ollama pull all-minilm:l6-v2
This one is very small (~50MB), and helps converting text to vectors. Now you can run your code with:
node index.js
The resulting answer directly comes from the PDF document, you can open it and look at the original mission statement at the beginning of the document to see how the model used it in its response.
Using the same principles as this example, we’ve prototyped a chatbot for the Contoso Real Estate company: we’ve built an experience that allows customers to ask support questions about the usage of its products. You can find the full source code of the project on GitHub. The final results, with an added chat UI, look like this:
Now that we have a working prototype, let’s see how we can deploy it to production using Azure.
Migrating to Azure
Azure provides many AI services that you can use for your applications, in our case we’ll use Azure OpenAI for the models and Azure AI Search as our vector database. Thanks to LangChain.js abstraction, migrating your prototype to Azure for production is relatively straightforward, as you can swap the models and vector database without changing anything else in your code.
If you look at the chat API code, this is what we use to run the code locally with Ollama:
embeddings = new OllamaEmbeddings({ model: ollamaEmbeddingsModel });
model = new ChatOllama({
temperature: 0.7,
model: ollamaChatModel,
});
store = await FaissStore.load(faissStoreFolder, embeddings);
Switching to Azure OpenAI and Azure AI Search is as simple as changing the model and store initialization:
const credentials = getCredentials();
embeddings = new AzureOpenAIEmbeddings({ credentials });
model = new AzureChatOpenAI({
temperature: 0.7,
credentials,
});
store = new AzureAISearchVectorStore(embeddings, { credentials });
We use passworless authentication for increased security, so we don’t need to store any secrets in our code. The implementation of the getCredentials was omitted for simplicity, but you can find it here.
And that’s it for the migration, at least for the code part, as to make it work you still have to create the necessary resources in Azure. We’ll cover this in the next section.
Azure Developer CLI
As developers, we know infrastructure is no fun, but it’s a necessary part of deploying applications to the cloud. Azure provides a tool called Azure Developer CLI that makes it easier to create and manage resources in Azure. It allows you to use Infrastructure as Code to define your resources in a declarative way, and then deploy them with a single command.
We won’t cover in details how to build the infrastructure templates, if you’re curious though you can have a look at the infra folder and the azure.yaml file used to configure and deploy the resources.
The good news is that we have many samples that you can use as a starting point for your own project infrastructure. Once the configuration is done, you can create the resources and deploy the application with a few commands:
# Authenticate to Azure
azd auth login
# Provision and deploy the resources
azd up
You can try it with our Serverless AI Chat project we used as an example in this article.
Azure building blocks
We skipped a bit over the implementation details of our example project, but to build it quickly we used some of the already existing Azure AI building blocks. Here’s a list of some components we used, that you can reuse in your own projects:
OpenAI Node.js SDK: we announced at Build a new integration of Azure OpenAI with the official OpenAI Node.js SDK, meaning it’s now easier than ever to switch between OpenAI and Azure OpenAI models. The LangChain.js Azure OpenAI integration has also been updated to use this new SDK.
Azure integrations in LangChain.js: we’ve contributed support for many Azure services in LangChain.js, to make it easier to build your AI applications on top of Azure. This includes Azure OpenAI, Azure AI Search, Azure CosmosDB, and more. You can find more information in the LangChain.js documentation.
AI Chat protocol: we’ve defined an API schema for AI chat applications, to make the frontend and backend components communicate. This schema is implemented in many of our AI samples, making them interoperable and easy to extend. We also provide an NPM package that includes the TypeScript types for the data objects and a client library to interact with the API.
AI Chat UI components: if you want to focus on the backend part of your AI chat application, we provide a set of web components that implements the AI Chat protocol. You can use them to quickly build a chat UI for your application. And since most of our AI samples also implement the protocol, you can also reuse any of their frontend component if you prefer, like the one we used in our example project.
Conclusion
We’ve covered a lot of ground in this article, starting from running AI models locally with Ollama, to prototyping a chatbot with LangChain.js, and finally deploying it to production on Azure. In a fast-paced environment like AI development, using JavaScript with existing high-level frameworks like LangChain.js and building on top of off-the-shelf building blocks can help you iterate quickly on your ideas and eventually bring them to production. you can quickly iterate on your ideas and bring them to production with the right tools and services.
Reference links
Here are some useful links to get you started with the tools and services we’ve mentioned in this article:
LangChain.js
Ollama
Azure Developer CLI
Azure OpenAI Node.js SDK
AI Chat protocol
AI Chat UI components
Serverless AI Chat sample
Microsoft Tech Community – Latest Blogs –Read More
Announcing Zone Redundancy and Multi-Region Capabilities in Azure Landing Zones
Zone Redundancy: A New Layer of Resilience
Benefits of Zone Redundancy:
Enhanced High Availability: Applications can be deployed across different zones, safeguarding against single points of failure.
Improved Fault Tolerance: Independent power, cooling, and networking in each zone means that an incident in one zone won’t affect the others.
SLA Assurance: Azure provides robust service level agreements that support zone redundancy, reinforcing your uptime commitments.
Multi-Region Support: Global Expansion with Local Resilience
Advantages of Multi-Region Support:
Span locations: Serve your customers from multiple regions, optimizing for performance and user experience.
Disaster Recovery: In the event of a regional disruption, traffic can be redirected to alternate regions with minimal impact.
Operational Flexibility: Diversify your deployment across regions to meet regulatory compliance and data sovereignty requirements.
What are we announcing today? (Phase 1a)
What is an Azure landing zone?
Azure Virtual Network Manager in Azure landing zones
Define an Azure network topology
Define your tagging strategy
Resource naming and tagging decision guide
Traditional Azure networking topology
Landing zone regions
Hybrid identity with Active Directory and Microsoft Entra ID in Azure landing zones
Management groups
Subscription considerations and recommendations
Resource organization design area overview
Next steps and Important information for existing ALZ Bicep and Terraform customers
Phase 1b by September 2024 – Bicep and Terraform Accelerators to include multi-region support
Phase 2 by end of calendar year 2024 – ALZ Bicep and Terraform Modules will be zone redundant by default by default by end of calendar year 2024.
Conclusion
Microsoft Tech Community – Latest Blogs –Read More
Access problem
I am facing a problem with report access and I am faced with this error while trying to log in. Please see image- even as I refresh, it stays on the same page.
This is quite troubling as we are to do a client insights presentation this week but I am not able to log in with this error. I have reached out to the fast track MS team who were supposed to guide this client but they were not able to solve it. The client is also OOO the whole week and we are not able to get them to help raise a ticket on the MAC site.
Please advise if anything could be done on the back end? This problem has been here since last Thursday.
Hi @alanderfield I am facing a problem with report access and I am faced with this error while trying to log in. Please see image- even as I refresh, it stays on the same page. This is quite troubling as we are to do a client insights presentation this week but I am not able to log in with this error. I have reached out to the fast track MS team who were supposed to guide this client but they were not able to solve it. The client is also OOO the whole week and we are not able to get them to help raise a ticket on the MAC site. Please advise if anything could be done on the back end? This problem has been here since last Thursday. Read More
Update Word template programmatically
It is possible to manually apply a new Word template via the following steps:
Open the Word document you would like to apply the template to, then click File > Options to
open the Word Options dialog box.In the Word Options dialog box, click Add-ins in the left bar, select Templates from the
Manage drop down list, and click Go.A new dialog box should appear for Templates and Add-ins. Check the “Automatically update
document” styles option and click the Attach button.A new dialog box should appear for Attach Template. In this new box, open the folder
containing the new template to be applied, select the new template, and click the Open
button.Click the OK button when it returns to the Templates and Add-ins dialog box. The specified Word template should now be applied to the existing Word document.
Is it possible to perform the same updating of a Word template programmatically?
It is possible to manually apply a new Word template via the following steps: Open the Word document you would like to apply the template to, then click File > Options to open the Word Options dialog box.In the Word Options dialog box, click Add-ins in the left bar, select Templates from the Manage drop down list, and click Go.A new dialog box should appear for Templates and Add-ins. Check the “Automatically update document” styles option and click the Attach button.A new dialog box should appear for Attach Template. In this new box, open the folder containing the new template to be applied, select the new template, and click the Openbutton.Click the OK button when it returns to the Templates and Add-ins dialog box. The specified Word template should now be applied to the existing Word document.Is it possible to perform the same updating of a Word template programmatically? Read More
SQL Server Management Studio 2019 backup schedule rogue backup file
Hello,
I have a backup schedule which runs Mon-Fri at 21:00 performing a full backup of the selected database in the maintenance schedule.
The backup works fine and we can restore from this ok.
The problem is a rogue backup file is being created and then its appended to every time the schedule runs. The backup file created is named the same as an initial backup we took when we first installed the database so I am guessing there is reference to this in the database somewhere which then creates this file on schedules. Please can you advise how i could stop this happening?
Thanks
Gary
Hello, I have a backup schedule which runs Mon-Fri at 21:00 performing a full backup of the selected database in the maintenance schedule. The backup works fine and we can restore from this ok. The problem is a rogue backup file is being created and then its appended to every time the schedule runs. The backup file created is named the same as an initial backup we took when we first installed the database so I am guessing there is reference to this in the database somewhere which then creates this file on schedules. Please can you advise how i could stop this happening? Thanks Gary Read More
Stream (Classic) has been deprecated. Stream (on SharePoint) is your new home for videos
Many of our recording session links got broken and these are very very important recording .. Need your help in recovering those videos. As i am intenam employee of Microsoft please can you redirect me/
Many of our recording session links got broken and these are very very important recording .. Need your help in recovering those videos. As i am intenam employee of Microsoft please can you redirect me/ Read More
What is going on with LISTS?
All of the sudden, one of our SharePoint Lists has completely changed its appearance and function. It has more of the new list style now. We have to change this back to retain its functionality immediately.
I found this post about the change https://oneminuteofficemagic.com/2024/05/10/new-list-view-layout-in-sharepoint-online/comment-page-1
Desperate to get this back to normal.
All of the sudden, one of our SharePoint Lists has completely changed its appearance and function. It has more of the new list style now. We have to change this back to retain its functionality immediately. I found this post about the change https://oneminuteofficemagic.com/2024/05/10/new-list-view-layout-in-sharepoint-online/comment-page-1 Desperate to get this back to normal. Read More
WHERE DO COMPLETED TASKS GO
I have been using planner for a while but I think there is an update that is archiving the completed tasks or deleting them. How do I access the completed Tasks? Once I hit the completed button it goes away, even from the metrics. I would like to create reports on individuals as a manager, please help.
I have been using planner for a while but I think there is an update that is archiving the completed tasks or deleting them. How do I access the completed Tasks? Once I hit the completed button it goes away, even from the metrics. I would like to create reports on individuals as a manager, please help. Read More
Viva Engage live events
Hello,
I am trying to do a live event in Viva Engage and I followed the instructions and it doesn’t work. How could I get some help in understanding better the feature of live events. The main thing is: How can people join my live event – do I need to send a calendar invite the classical way or is there a wat the members of a viva engage community get pulled in.
Thank you
Hello, I am trying to do a live event in Viva Engage and I followed the instructions and it doesn’t work. How could I get some help in understanding better the feature of live events. The main thing is: How can people join my live event – do I need to send a calendar invite the classical way or is there a wat the members of a viva engage community get pulled in. Thank you Read More
Teams mobile app for Android loading just a few messages per conversation on work profile
Hello all, asking help on the following:
User at my company is having issues with Teams on work profile. All conversations are displayed, but only a few messages per conversation are loaded.
-Issue started about 2 weeks ago. 1 month ago it was working fine.
-Almost all conversations get ‘sliced’ daily, but not all of them. Some conversations have messages from a month ago. To further explain this.. if the user keeps chatting with X person, the older messages start to disappear, leaving only those from about 12Hs-24hs ago. If the user doesn’t chat that often, then messages are retained for longer. Some chats have messages from 1month ago but it seems that only because there are very few messages in said chat. However if user logs in Teams Desktop or Web, all messages for all conversations are loaded without issues.
-User already tried setting up his account in multiple phones (3, all Android) and the conversations show the same amount of messages.
Interesting to note is that when the account is setup, the conversations show a little bit more messages but after closing Teams app and reopening, it shows less messages and doesn’t load anymore.
-Issue seems to be with message loading rather than messages being deleted since both Desktop Teams and Web Teams load all messages properly. The issue is happening only in Teams mobile app.
-Outlook for Android is working properly with the same work account.
-Already tried all the basics (clear cache, reset DB, sign out, sign in, remove Company Portal and Teams and install all again, try in different phones, etc).
Thank you!
Hello all, asking help on the following: User at my company is having issues with Teams on work profile. All conversations are displayed, but only a few messages per conversation are loaded. -Issue started about 2 weeks ago. 1 month ago it was working fine.-Almost all conversations get ‘sliced’ daily, but not all of them. Some conversations have messages from a month ago. To further explain this.. if the user keeps chatting with X person, the older messages start to disappear, leaving only those from about 12Hs-24hs ago. If the user doesn’t chat that often, then messages are retained for longer. Some chats have messages from 1month ago but it seems that only because there are very few messages in said chat. However if user logs in Teams Desktop or Web, all messages for all conversations are loaded without issues. -User already tried setting up his account in multiple phones (3, all Android) and the conversations show the same amount of messages.Interesting to note is that when the account is setup, the conversations show a little bit more messages but after closing Teams app and reopening, it shows less messages and doesn’t load anymore.-Issue seems to be with message loading rather than messages being deleted since both Desktop Teams and Web Teams load all messages properly. The issue is happening only in Teams mobile app.-Outlook for Android is working properly with the same work account.-Already tried all the basics (clear cache, reset DB, sign out, sign in, remove Company Portal and Teams and install all again, try in different phones, etc). Thank you! Read More
ARIA labels query in Sharepoint sites
Hi,
I have a question about Aria labels in SharePoint sites. When I carry out accessibility checks on a site created by another party, I notice that the aria label and aria described by attributes are being used ‘incorrectly’. The description is being used in the label, and the label is being used in the description. Does anyone know how to edit aria labels etc in SharePoint? Is it possible as an editor, or are these handled by Microsoft?
Thanks so much for your help!
Hi,I have a question about Aria labels in SharePoint sites. When I carry out accessibility checks on a site created by another party, I notice that the aria label and aria described by attributes are being used ‘incorrectly’. The description is being used in the label, and the label is being used in the description. Does anyone know how to edit aria labels etc in SharePoint? Is it possible as an editor, or are these handled by Microsoft?Thanks so much for your help! Read More
Azure Devops
please is there anyone here who is familiar with the Auzre DevOps tool?
I need help with this technology. understand how it works. pipelines, workflows etc…
please is there anyone here who is familiar with the Auzre DevOps tool?I need help with this technology. understand how it works. pipelines, workflows etc… Read More
User getting error “This item might not exist or is no longer available” when the folder does exist
I’m trying to give a user access to a folder in sharepoint. When I send them the link using share, when they try to access they get the error “This item might not exist or is no longer available” when the folders do exist.
They are an employee that left for a period of time and have had their profile reactivated upon return.
I’ve had this issue in the past with other users so would appreciate any assistance in resolving?
I’m trying to give a user access to a folder in sharepoint. When I send them the link using share, when they try to access they get the error “This item might not exist or is no longer available” when the folders do exist. They are an employee that left for a period of time and have had their profile reactivated upon return. I’ve had this issue in the past with other users so would appreciate any assistance in resolving? Read More