Tag Archives: microsoft
SQL Server Migration Assistant: How to customize SQL for an object in MSSQL after 1st conversion
So in the picture below, I’ve run “Convert Schema” for the first time. For the tEntity_d object, it gave an appropriate conversion error (“object not found”)
After that, in the bottom right MSSQL destination window (ambigously titled “SQL”) I fixed the bad code (see the comment “This incompatible statement has been deleted by me”). But there’s no option to save the fixed code in the to the MSSQL destination:
If I right click on tEntity_d in the bottom left “SQL Server Metadata Explorer” window, I see a “Synchronize with Database” option. Which database? The destination? When I try and run “Synchronize with Database” it asks if I want to save changes to “MsSQL SQL Editor” (the bottom right “SQL” window?). I answered “yes”.
Then I get a “Database” (destination?) “Not Found” error. What does this mean?
Thanks in advance
Ben
So in the picture below, I’ve run “Convert Schema” for the first time. For the tEntity_d object, it gave an appropriate conversion error (“object not found”) After that, in the bottom right MSSQL destination window (ambigously titled “SQL”) I fixed the bad code (see the comment “This incompatible statement has been deleted by me”). But there’s no option to save the fixed code in the to the MSSQL destination: If I right click on tEntity_d in the bottom left “SQL Server Metadata Explorer” window, I see a “Synchronize with Database” option. Which database? The destination? When I try and run “Synchronize with Database” it asks if I want to save changes to “MsSQL SQL Editor” (the bottom right “SQL” window?). I answered “yes”. Then I get a “Database” (destination?) “Not Found” error. What does this mean? Thanks in advanceBen Read More
2019 Server Cannot Connect to Network Due to Share IP address changed.
One of my 2019 servers which has not been used for some time no longer connects to the local network as the Share IP address has become different than the Server Ethernet address for the local network. As a result the server is no longer reachable. While he network is a local 192.168.. the Server Share IP address has become 169,254.. My other working servers have the Share IP address the same as the local network 192.168.. and worked fine. I did try running updates but that did not resolve the issue.
One of my 2019 servers which has not been used for some time no longer connects to the local network as the Share IP address has become different than the Server Ethernet address for the local network. As a result the server is no longer reachable. While he network is a local 192.168.. the Server Share IP address has become 169,254.. My other working servers have the Share IP address the same as the local network 192.168.. and worked fine. I did try running updates but that did not resolve the issue. Read More
Outlook access issue
Hi all,
I have a Micorosft 365 account with “onmicrosoft.com” domain. I am able to access the microsoft 365 account but not able to access the outlook emails for this account. I am getting the below error:
anyone experienced the same issue before?
Thanks
Hi all, I have a Micorosft 365 account with “onmicrosoft.com” domain. I am able to access the microsoft 365 account but not able to access the outlook emails for this account. I am getting the below error:anyone experienced the same issue before?Thanks Read More
Working with date columns using Excel Copilot
Greetings, This is the third in a series of posts that provides examples of what is possible with Copilot in Excel. Today I will continue with the list of employees that now contains a column for the hire date.
I would like to add columns for which quarter and year the employees were hired to this table. To accomplish this, I’ll start by clicking on the copilot button on the right side of the Home tab, showing the copilot pane and type the prompt:
add columns for the quarter and year of the hire date
Excel Copilot looks at the content in the table and then suggests inserting 2 calculated columns, one for the hire quarter and one for the hire year.
Hovering the mouse cursor over the “Insert columns” button in the copilot pane shows a preview of what inserting the new column formulas will look like. From the preview, it looks like it is doing what I wanted.
Clicking on the Insert Columns button will accept the proposed change, inserting 2 new calculated column formulas that use the hire date column to determine the quarter and year of each hire. This is exactly the result I was looking for!
Over the coming weeks I will be sharing more examples of what you can do with Copilot in Excel.
Thanks for reading,
Microsoft Excel Team
*Disclaimer: If you try these types of prompts and they do not work as expected, it is most likely due to our gradual feature rollout process. Please try again in a few weeks.
Greetings, This is the third in a series of posts that provides examples of what is possible with Copilot in Excel. Today I will continue with the list of employees that now contains a column for the hire date.
Table with these columns: Name Address City State. First two rows of data are: Claude Paulet 123 Main Avenue Bellevue Washington 8/24/2022 Jatindra Sanyal 1122 First Place Ln N Corona California 8/14/2023
I would like to add columns for which quarter and year the employees were hired to this table. To accomplish this, I’ll start by clicking on the copilot button on the right side of the Home tab, showing the copilot pane and type the prompt:
add columns for the quarter and year of the hire date
Excel Copilot looks at the content in the table and then suggests inserting 2 calculated columns, one for the hire quarter and one for the hire year.
Looking at A1:E17, here are 2 formula columns to review and insert in Columns F and G: 1. Hire Quarter Determines the quarter in which each employee was hired by converting the hire date into a corresponding quarter (Q1, Q2, Q3, or Q4) based on the month of the year. =CHOOSE(CEILING(MONTH([@[Hire Date]])/3,1),”Q1″,”Q2″,”Q3″,”Q4″) Show explanation 2. Hire Year Extracts the year from each hire date, providing a quick way to see when each person was hired. =YEAR([@[Hire Date]])
Hovering the mouse cursor over the “Insert columns” button in the copilot pane shows a preview of what inserting the new column formulas will look like. From the preview, it looks like it is doing what I wanted.
Picture of the list of employees with a preview of the new hire quarter and hire year columns that would be added.
Clicking on the Insert Columns button will accept the proposed change, inserting 2 new calculated column formulas that use the hire date column to determine the quarter and year of each hire. This is exactly the result I was looking for!
Picture showing the Excel workbook with copilot pane open. Includes the employee table with hire quarter and hire year added.
Over the coming weeks I will be sharing more examples of what you can do with Copilot in Excel.
Thanks for reading,
Microsoft Excel Team
*Disclaimer: If you try these types of prompts and they do not work as expected, it is most likely due to our gradual feature rollout process. Please try again in a few weeks.
Read More
Prevent first column from sticking
With the new (horrible) SharePoint List, how do you prevent the first column from sticking? This default setting (in addition to the List itself) is disruptive to our workflow.
If anyone knows how to revert to the earlier SharePoint List that’s actually usable and productive, PLEASE LET ME KNOW.
With the new (horrible) SharePoint List, how do you prevent the first column from sticking? This default setting (in addition to the List itself) is disruptive to our workflow. If anyone knows how to revert to the earlier SharePoint List that’s actually usable and productive, PLEASE LET ME KNOW. Read More
Power Automate create tasks in Planner Premium plans
Hello,
I noticed that Planner Premium plans still have a projectId rather than a groupId. Using the planner connector in PowerAutomate I am able to find all tasks (tasks of premium plans and non premium plans), however, when I want to create a new task I can only find the non premium plans and it seems to be not possible to create a task in a premium plan using the planner connector in PowerAutomate.
Is there a reliable workaround I can use (e.g. using the graphAPI)?
Best regards
Fabian
Hello,I noticed that Planner Premium plans still have a projectId rather than a groupId. Using the planner connector in PowerAutomate I am able to find all tasks (tasks of premium plans and non premium plans), however, when I want to create a new task I can only find the non premium plans and it seems to be not possible to create a task in a premium plan using the planner connector in PowerAutomate. Is there a reliable workaround I can use (e.g. using the graphAPI)? Best regardsFabian Read More
Outlook calendar availability not reflected in Bookings
When staff enter an appointment in manually to the outlook calendar associated with Bookings, the option to book that time still shows as available for folks booking online through Bookings, resulting in double bookings. This issue was not happening before, and the toggle to enable this connection is on, so I am not sure what the issue is?
When staff enter an appointment in manually to the outlook calendar associated with Bookings, the option to book that time still shows as available for folks booking online through Bookings, resulting in double bookings. This issue was not happening before, and the toggle to enable this connection is on, so I am not sure what the issue is? Read More
MS Forms Field that is Read Only or Has Default Text
Anyone have suggestions on how to have a read only field within an MS Form or have Default text in a text field? I am prompting for input however in many cases, it is going to be the same response so was hoping to either make it defaulted to specific text or just make it read only but displayed on the form.
Anyone have suggestions on how to have a read only field within an MS Form or have Default text in a text field? I am prompting for input however in many cases, it is going to be the same response so was hoping to either make it defaulted to specific text or just make it read only but displayed on the form. Read More
How to get excel to sort 2-number dates correctly
I’m working with a spreadsheet with over 28,000 rows of video/audio tape IDs that typically take this format: ID tag / Date (2 numbers) / Number. So, the 3rd Corporate tape from 1998 would be CORP98-0003. I want to sort this spreadsheet by ID tag first then numerically by date. The problem is that Excel automatically sorts the year 2000 (00) before the year 1999 (99) instead of doing it by date. This makes it take SOOO long to manually sort individual groups of NEW tapes into the 28,000-row spreadsheet. It would so much easier and faster if I could get Excel to automatically sort tapes my way. Just to be clear, I would like it to sort tapes this way:
CORP99-0099
CORP99-0100
CORP99-0101
CORP00-0001
CORP00-0002
CORP00-0003
etc.
How can I do that? I’m still fairly new to Excel. Thanks!
I’m working with a spreadsheet with over 28,000 rows of video/audio tape IDs that typically take this format: ID tag / Date (2 numbers) / Number. So, the 3rd Corporate tape from 1998 would be CORP98-0003. I want to sort this spreadsheet by ID tag first then numerically by date. The problem is that Excel automatically sorts the year 2000 (00) before the year 1999 (99) instead of doing it by date. This makes it take SOOO long to manually sort individual groups of NEW tapes into the 28,000-row spreadsheet. It would so much easier and faster if I could get Excel to automatically sort tapes my way. Just to be clear, I would like it to sort tapes this way:CORP99-0099CORP99-0100CORP99-0101CORP00-0001CORP00-0002CORP00-0003etc. How can I do that? I’m still fairly new to Excel. Thanks! Read More
Learn about Derek Coleman & Associates’ transactable partner solution in Azure Marketplace
Microsoft partners like Derek Coleman & Associates deliver transact-capable offers, which allow you to purchase directly from Azure Marketplace. Learn about this offer below:
Azure VMs on Windows Server Datacenter: Whether you’re a small business or an enterprise, Azure Virtual Machines on Windows Server Datacenter ensure scalability, security, and performance for your workloads. Consult with Derek Colemand & Associates for tailored, reliable, and robust solutions.
Microsoft Tech Community – Latest Blogs –Read More
Delete a Task then Error: “Only members of the Microsoft 365 group are allowed to delete tasks.”
Hello, I want to delete a task and get the following error message:
Only members of the Microsoft 365 group are allowed to delete tasks.Technical details Correlation
ID: c4794c1f-eade-4dc0-bd40-b8e37b93d1cf
Timestamp: 2024-08-14T11:29:39.521Z
We don’t have a Microsoft 365 group Does anyone have an idea?
Greetings from Germany
Hello, I want to delete a task and get the following error message:Only members of the Microsoft 365 group are allowed to delete tasks.Technical details CorrelationID: c4794c1f-eade-4dc0-bd40-b8e37b93d1cfTimestamp: 2024-08-14T11:29:39.521ZWe don’t have a Microsoft 365 group Does anyone have an idea?Greetings from Germany Read More
The Expression is not valid, if the uri contain single quote inside the Uri field
I have a “Send an http request to SharePoint”, where i am passing a file name, as follow:-
now incase the file name contain a single quote such as :-
d’Emploi-Organization Grant.docx
i will get this error:-
{
“status”: 400,
“message”: “{“odata.error”:{“code”:”-1, Microsoft.SharePoint.Client.InvalidClientQueryException”,”message”:{“lang”:”en-US”,”value”:”The expression \”LeafName eq ‘d’Emploi-Organization Grant.docx’\” is not valid.”}}}rnclientRequestId: 55063edc-b342-4deb-98fe-88daf96c5dd3rnserviceRequestId: b9cc45a1-d019-6000-4a0f-328de72410d4″,
“source”: “*****/_api/web/RecycleBin?$filter=LeafName%20eq%20’d’Emploi%20-Organization%20Grant.docx’&$select=Id”,
“errors”: []
}
now i try to surround the file name with `encodeUriComponent` but did not fix the issue..
any advice?
Thanks
I have a “Send an http request to SharePoint”, where i am passing a file name, as follow:- now incase the file name contain a single quote such as :- d’Emploi-Organization Grant.docx i will get this error:- {
“status”: 400,
“message”: “{“odata.error”:{“code”:”-1, Microsoft.SharePoint.Client.InvalidClientQueryException”,”message”:{“lang”:”en-US”,”value”:”The expression \”LeafName eq ‘d’Emploi-Organization Grant.docx’\” is not valid.”}}}rnclientRequestId: 55063edc-b342-4deb-98fe-88daf96c5dd3rnserviceRequestId: b9cc45a1-d019-6000-4a0f-328de72410d4″,
“source”: “*****/_api/web/RecycleBin?$filter=LeafName%20eq%20’d’Emploi%20-Organization%20Grant.docx’&$select=Id”,
“errors”: []
} now i try to surround the file name with `encodeUriComponent` but did not fix the issue..any advice?Thanks Read More
ADX Web UI updates – July 2023
Welcome to the July 2024 update. We are excited to announce new features and improvements in ADX web UI.
Continue reading to learn more about:
Ad-hoc visual data exploration
Dashboards real time refresh rate
Enhanced data interaction for dashboard tiles
Resize and move dashboard tiles using keyboard only
Introducing ad-hoc visual Data Exploration feature
Our new “Data Exploration” feature allows you to dive deeper into the data on any dashboard, extending your exploration beyond the displayed tiles to uncover new insights. This user-friendly, form-like interface lets you add filters, create aggregations, and switch visualization types without writing queries. Now, you can explore data ad-hoc, leveraging existing tiles to start your journey and expand your data view.
Read more:
Announcement: Ad-Hoc Visual Data Exploration Feature – Microsoft Community Hub
Documentation: Explore data in dashboard tiles (preview) – Azure Data Explorer | Microsoft Learn
Dashboards real time refresh rate
We are excited to announce an enhancement to our dashboard auto refresh feature, now supporting continuous and 10 seconds refresh rates, in addition to the existing options.
This upgrade, addressing a popular customer request, allows both editors and viewers to set near real-time and real-time data updates, ensuring your dashboards display the most current information with minimal delay. Experience faster data refresh and make more timely decisions with our improved dashboard capabilities.
As the dashboard author you can enable the Auto refresh setting and set a minimum time interval, to prevent users from setting an auto refresh interval smaller than the provided value.
Note that the Continuous option should be used with caution. The data is refreshed every second or after the previous refresh completes if it takes more than 1 second.
Enhanced Data Interaction for Dashboard Tiles
We are excited to announce new capabilities that enhance your interaction with data presented visually in dashboard tiles, particularly when multiple data series are involved.
You can interact with the data by selecting specific items from the legend using the mouse, using Ctrl to add or remove selections, or holding Shift to select a range.
The Search button helps you quickly filter items, while the Invert button allows you to reverse your selections.
Navigate through your selections with ease using the Up and Down arrows to refine your data view.
Note that users with edit rights on a dashboard, can customize the legend location in their tiles, improving readability and data interpretation.
Resize dashboard tiles using keyboard only
We are excited to introduce a new accessibility feature that allows users to resize dashboard tiles using only the keyboard.
By pressing the Tab key, you can focus on a tile, and then use the arrow keys to move it.
To resize, hold the Shift key and use the arrow keys: right to increase width, left to decrease width, down to increase height, and up to decrease height.
This functionality mirrors the ease of moving and resizing with a mouse, enhancing the accessibility and usability of ADX web UI.
Azure Data Explorer Web UI team is looking forward for your feedback in KustoWebExpFeedback@service.microsoft.com
You’re also welcome to add more ideas and vote for them here – https://aka.ms/adx.ideas
Read more:
ADX Web May updates – ADX Web updates – May 2024 – Microsoft Community Hub
Microsoft Tech Community – Latest Blogs –Read More
How to set up rooms and staff for booking page
I’m trying to create a page for booking. Where clients can book the appointment by themselves. I have to conditions, availability of room and availability of Advisor. if both are available then they can book the appointments how can I do this?
I’m trying to create a page for booking. Where clients can book the appointment by themselves. I have to conditions, availability of room and availability of Advisor. if both are available then they can book the appointments how can I do this? Read More
Outlook blocks copying meetings – end user perspective
Good morning,
I’m an end user facing the issue “Copying meetings is not supported”.
As I have no administrator rights on my laptop, I can’t apply the solutions documented in these posts.
https://techcommunity.microsoft.com/t5/outlook/enable-meeting-copy/m-p/3981146
https://techcommunity.microsoft.com/t5/outlook/outlook-blocks-copying-meetings/m-p/4054497
My work around is thus a manual copy: create a new meeting, copy subject, copy content, copy attendees, but …
My question was : how do I copy the Teams ID link? When copying a meeting, Outlook also copied the Teams ID link. The copied meeting referred to the same meeting chat, which is very useful when continuing a recurring meeting or in case of a follow-up meeting. We preserve the history.
When creating a new meeting, Outlook automatically assigns a new Teams ID, which results in a new chat, and loss of history. Up till now, I didn’t find the way to set up the new meeting with the old Teams ID.
How to create a new meeting with an existing Teams ID?
I just found the answer myself, but I want to share it.
Create the new meeting. Flag it as “Don’t host online”, so Outlook doesn’t create a Teams ID.
Then copy two things from the original meeting
– The hyperlink that refers to Teams ID in the “location” field
– The text message in the body that has all the Teams details
I tested it, and I join a Teams meeting that is linked to the chat of the original meeting. Both when clicking the link in the meeting request body, or when joining online from the Reminders pop-up.
Kind regards,
Lieven
Good morning, I’m an end user facing the issue “Copying meetings is not supported”. As I have no administrator rights on my laptop, I can’t apply the solutions documented in these posts.https://techcommunity.microsoft.com/t5/outlook/enable-meeting-copy/m-p/3981146https://techcommunity.microsoft.com/t5/outlook/outlook-blocks-copying-meetings/m-p/4054497 My work around is thus a manual copy: create a new meeting, copy subject, copy content, copy attendees, but … My question was : how do I copy the Teams ID link? When copying a meeting, Outlook also copied the Teams ID link. The copied meeting referred to the same meeting chat, which is very useful when continuing a recurring meeting or in case of a follow-up meeting. We preserve the history.When creating a new meeting, Outlook automatically assigns a new Teams ID, which results in a new chat, and loss of history. Up till now, I didn’t find the way to set up the new meeting with the old Teams ID. How to create a new meeting with an existing Teams ID? I just found the answer myself, but I want to share it.Create the new meeting. Flag it as “Don’t host online”, so Outlook doesn’t create a Teams ID.Then copy two things from the original meeting- The hyperlink that refers to Teams ID in the “location” field- The text message in the body that has all the Teams detailsI tested it, and I join a Teams meeting that is linked to the chat of the original meeting. Both when clicking the link in the meeting request body, or when joining online from the Reminders pop-up. Kind regards, Lieven Read More
Cloud Discovery – Insights to CDNs
Taking a look at our Cloud Discovery data we see lots of traffic with CDNs as Akamai.
Is it possible to get more insights about what content has been delivered on a user or ip basis?
Taking a look at our Cloud Discovery data we see lots of traffic with CDNs as Akamai. Is it possible to get more insights about what content has been delivered on a user or ip basis? Read More
Simple Linear Regression with Phi3-vision and State Graphs
Hi, I’m Jambo a Microsoft Student Ambassador for the Department of Applied Mathematics. First and foremost, this article is not a tutorial on regression analysis. Instead, it aims to share my thoughts on applying Phi3-vision through regression analysis. While some regression theory will be touched upon, the focus is not on the theory itself. The main goal here is to share how to use Phi3-vision, so even if you don’t fully grasp the theory behind regression analysis, you’ll still find this article accessible.
What is Linear Regression
Linear regression is a method used to analyze and predict data. Simply put, it tries to describe the relationship between X and Y using a straight line.
In regression theory, we can find the best-fitting line when the data meets the following conditions:
– The residuals (the distance between Y and the line) should follow a normal distribution, meaning the Y points should be evenly distributed on both sides of the line, not too far from it, and not clustered on one side.
– The variance of the residuals should be constant, indicating that the spread of the data points is consistent.
These conditions are ideal and hard to fully meet in reality. Thus, regression analysis often involves transforming the data to make it as close to these conditions as possible and finding potential variables.
Example
Here’s a simple example to show the data distribution:
From the graph, we can easily draw two conclusions:
1. As X increases, Y tends to increase as well.
2. The points on the left are more concentrated than those on the right, meaning that as X increases, the range of Y also increases.
This graph does not meet the abovementioned conditions, so directly fitting a regression line to this data might not yield ideal results.
The following image shows the result of calculating the regression line without adjustments. Pay attention to the R-squared value; the closer it is to 1, the better the model.
Through some transformation methods, we can obtain a better model. There are many theories and tests in regression analysis that determine which transformation methods to use, but real-world applications still require subjective judgment and experience.
Why I Think Phi3-vision is Suitable for Regression Analysis
Although the theory behind regression analysis is very rigorous, real-world applications often require subjective judgment. Real-world data is not as perfect as the theory suggests and is full of unpredictable variables. Therefore, regression analysis is not about finding causal relationships between data but providing a reliable way to “guess” the data.
As the saying goes, “All models are wrong.” We’re merely looking for a model that fits our data, which requires a lot of subjective judgment and industry experience. Phi3-vision can quickly give us some “subjective” judgments based on charts, which is very helpful in practical applications. Once we have a “subjective” judgment, we can use some tests from regression theory to verify whether this judgment is reasonable.
The Process of Regression Analysis
This is a simplified flowchart. Although it still looks complex, you don’t need to fully understand it. Just know that it indicates we can break down the process, decompose a complex problem into multiple simple sub-problems, and then follow the flowchart step by step.
Implementing State Diagram-Based Regression Process with LangGraph + Phi3-vision
We can easily implement regression analysis according to the above diagram using LangGraph. Here is a state diagram automatically generated by LangGraph based on the added nodes.
If you don’t have a local environment for running Phi3-vision, we can also conveniently use LangChain’s Nvidia NIM integration to call the model. This way, we can quickly test whether a specific model is suitable for the application. You can find detailed information about Phi3-vision on Nvidia NIM, and after logging in, you can find your API key in the following location.
from langchain_nvidia_ai_endpoints import ChatNVIDIA
os.environ[“NVIDIA_API_KEY”] = “”
llm = ChatNVIDIA(model=”microsoft/phi-3-vision-128k-instruct”)
For branching routes in the nodes, we only need to ask Phi3-vision a straightforward question, like in the Constant variance node, we would ask: “You are a data analysis expert. Does this set of data have constant variance? You only need to answer True or False.”
In NIM’s online test, we can see that Phi3-vision’s answer to the above example is False. We just need to decide the next step based on the True or False answer.
When checking whether the data meets the normal distribution criterion, we will write a program to automatically generate a Q-Q plot (a type of chart used to determine if the data follows a normal distribution) from the data, and then ask Phi3-vision: “You are a data analysis expert. The attached figure is the Q-Q plot of this set of data. Does this set of data conform to the normal hypothesis? You only need to answer True or False.”
We received a True answer. According to the flow, we know that the next step is to perform a weighted regression algorithm. However, from the graph, we can see that there are multiple weighting methods. We can list these methods and automatically generate the required charts with a program, then let Phi3-vision give us the most likely option.
In this example, Phi3-vision considers the first weighting algorithm to be the most suitable. Next, we just need to automatically jump to the corresponding algorithm function, and the remaining work is to let the program automatically calculate the result.
The specific code implementation can be found here. The following image shows the result of using LangGraph to perform regression analysis on the initial example. You can see that the R-squared value increased from 0.408 to 0.521, and the entire process took less than 5 seconds. If the model is inferred on a locally deployed environment, the time might be even shorter.
Key Points in the Example
Decomposing Problems
For complex projects like regression analysis, no single large model can provide a complete answer in one go. Training a large model that can complete a project in a few steps (cot) is also very challenging, as it requires collecting a vast amount of complete analysis process data and possibly describing why one method is chosen over others.
Our ability to quickly and automatically solve such problems is largely because we have decomposed the problem into sufficiently detailed steps. Each node is a very simple question, and Phi3-vision only needs to answer True or False. This allows us to conveniently verify whether Phi3-vision’s answers are reasonable.
Since we have decomposed the problem into sufficiently detailed steps, we can write targeted prompt texts or functions for each question, which better guides Phi3-vision’s answers.
Advantages of Phi3-vision
Because the problems are decomposed into very simple steps, small models with fast responses are more practical than large models that excel at answering complex questions. Additionally, Phi3-vision has a 128k context capacity, allowing it to provide numerous reference examples when handling simple questions. Since the questions are known, we can hard-code examples, eliminating the need to wait for embedding models and vector databases to match suitable examples.
Advantages of State Graph
Regression analysis is complex not just because we need to find correlations between different factors but also because we need to continually optimize the model, transform the data, and further optimize based on the modified results. Many simple scenarios also rely heavily on loops, such as continually checking if enough information has been obtained to proceed or continually adjusting the model’s parameters. Looping capability is a shortcoming of pipeline tools, but status graphs can handle this well.
Most mainstream LLM-based visualization tools are pipeline-based, such as prompt flow and langflow. When looping is required, they rely on agents or code implementation. This somewhat limits our operations and can even complicate some problems. Status graphs and pipelines are not mutually exclusive; status graphs can serve as a higher-level abstraction of pipelines, connecting pipelines that handle different tasks. And status graphs without loops can degrade into pipelines, making them a more general tool.
While loops in status graphs can cause some issues, even agents can encounter infinite loop problems. Status graphs, compared to agents, can more intuitively show the entire process, making it easier to debug and validate.
Differences from Agents
Agents allow models to autonomously decide the next step by summarizing the current information, giving the model the ability to make decisions and actively gather information. Moreover, multi-agent methods can solve complex problems, but these methods are more suited for exploring solutions when no clear solution exists. In fields with established methodologies, using Agents may seem redundant and add system complexity.
Since each step is autonomously led by the model, it needs to generate a lot of textual thought processes to make the right decision, leading to longer system runtimes, significant token consumption, and the risk of going off track. Although prompt adjustments can influence the model’s decisions, debugging prompts is more of a black box compared to training models – it’s hard to know which part of the model is affected by the prompts.
In the method discussed in this article, engineers pre-design the framework process, and the model only plays a role in branch selection. Automated verification ensures the model’s choices are correct. The entire system is based on a state diagram, allowing us to structurally record the entire process, not just the textual output of the LLM, facilitating subsequent debugging and validation. Since the problems the model encounters are controllable and the output is merely Boolean values or branch choices, we can use examples to adjust the model’s choices. Even if the model gives an incorrect result, the process remains within a predictable range, making it easy to identify issues.
Conclusion
By using Phi3-vision and LangGraph, we can break down the complex process of regression analysis into multiple smaller problems and solve them step by step. Phi3-vision provides “subjective” judgments at certain nodes, and we verify these with programs implementing the theories. Regression analysis is an iterative process, and solving small problems gradually can lead to a complete answer.
This approach not only allows us to stop at any time to review the data and intervene manually but also offers high scalability. Since Phi3-vision handles simple problems, we can easily collect enough data for fine-tuning or RAG, leveraging its advantages in multi-step analysis. Overall, Phi3-vision’s rapid response and high context capacity make it well-suited for fields that are complex but have established methodologies.
Of course, this approach is not suitable for exploring solutions in uncharted territory, as we need to design the entire process upfront. However, in fields where the problems have known solutions, using an Agent might be redundant, while using Phi3-vision and state graphs is more efficient. These two approaches are not mutually exclusive; we can choose the appropriate method based on the specific situation.
This is just one of my ideas, and I hope it can inspire you. The absence of graph-based visualization tools today might be due to some considerations I haven’t thought of, or perhaps I don’t know enough about existing tools. If you have other ideas or suggestions, feel free to leave a comment.
Microsoft Tech Community – Latest Blogs –Read More
Create and Deploy Linux WebJobs on Azure App Service
Introduction
WebJobs are a feature of Azure App Service that allows you to run background tasks or scripts in your App Service. They are particularly useful for executing jobs such as scheduled tasks, data processing, or background maintenance tasks. WebJobs can run continuously, on-demand, or on a scheduled basis, and they can be written in various programming languages.
The goal of this blog post is to guide you through the process of setting up and deploying a WebJob on an Azure App Service running Linux. We will walk you through the necessary steps to create and deploy a WebJob, configure its settings, and manage it effectively. By the end of this blog, you will have a working WebJob integrated into your Azure App Service, capable of performing background tasks or processing jobs as needed.
Prerequisites
Azure Subscription: An active Azure subscription is required to create and manage Azure resources.
Linux App Service: An App Service is necessary for deploying your WebJob. For your WebJob to run, the App Service stack must match the WebJob. For example, a Python-based WebJob requires a Python App Service stack.
Integrated Development Environment (IDE): An IDE or text editor of your choice for developing your WebJob.
File Compression Tool: For packaging WebJob files into a ZIP archive needed for deployment.
Types of WebJobs
When selecting the type of WebJob to use in Azure App Service, it is important to consider the nature of the task you need to perform. Continuous WebJobs are designed to run continuously in the background, making them suitable for tasks that need to be perpetually active. These WebJobs are ideal for ongoing operations such as background processing, monitoring, or maintaining a steady stream of work. They stay active as long as the App Service is operational and will automatically restart if they encounter issues or stop unexpectedly.
In contrast, Triggered WebJobs are executed based on specific triggers or schedules, which makes them well-suited for tasks that need to run at predefined times or in response to events. For example, you might use a Triggered WebJob for scheduled data updates, batch processing, or responding to specific actions like the arrival of new data. The choice between a Continuous or Triggered WebJob will depend on whether your task requires constant operation or is more event-driven, allowing you to tailor the WebJob type to your specific needs.
Creating a WebJob
In this section, we will create a Python WebJob that reads data from a CSV file and update. This example will help you understand the basic structure of a WebJob. Below is redacted version of my webjob.py
import pandas as pd
import os, datetime, logging
# Configure logging
logging.basicConfig(
filename=’/home/LogFiles/webjob.log’,
level=logging.INFO,
format=’%(asctime)s – %(levelname)s – %(message)s’
)
def insert_record(file_path):
print(‘— Inserting Record —‘)
try:
# Determine the next value
value = get_next_value(file_path)
# Create a new DataFrame with the new record
new_record = pd.DataFrame({‘Timestamp’: [datetime.now()], ‘Value’: [value]})
if os.path.exists(file_path):
# Load the existing CSV file
df = pd.read_csv(file_path)
logging.info(‘Loaded existing CSV file successfully.’)
# Append the new record
df = pd.concat([df, new_record], ignore_index=True)
else:
# If the file does not exist, create a new DataFrame
df = new_record
logging.info(‘CSV file not found. Created new file with columns: Timestamp, Value.’)
# Save the updated DataFrame back to Excel
df.to_csv(file_path, index=False)
logging.info(‘Saved updated CSV file successfully with value: %d’, value)
except Exception as e:
logging.error(‘Error processing record: %s’, e)
if __name__ == “__main__”:
print(‘— WebJob Execution Started —‘)
file_path = ‘/home/site/wwwroot/data.csv’
insert_record(file_path)
print(‘— WebJob Execution Ended —‘)
Deploying a WebJob
Deploying a WebJob on App Service Linux involves creating a shell script, packaging it, and then deploying it via the Azure Portal.
Create a shell script (script.sh) with the command to start the WebJob script. For Python WebJob, I used below script to install dependencies and execute the script:
#!/bin/bash
/opt/python/3.10.14/bin/pip3 install pandas
/opt/python/3.10.14/bin/python3.10 webjob.py
Zip the webjob.py and script.sh file together. Ensure that the files are present at the root of the zipped archive.
Webjob Deployment requires Basic Authentication. Enable SCM Basic Auth Publishing Credentials from the Configuration Blade of the App Service.
Now Navigate to the WebJob Balde of the App Service to Add and Configure the WebJob. Click the “Add” button to create a new WebJob. In the configuration panel:
Upload the WebJob File: Choose the webjob.zip file you prepared.
Set WebJob Type: Select the WebJob type—either “Continuous” for a constantly running job or “Triggered” for a job that runs on-demand or on a schedule.
Configure Schedule (if using a Triggered WebJob): Specify the cron expression for scheduling the job. For example, use 0 */5 * * * to run every 5 minutes.
Click “OK” or “Save” to upload the WebJob and apply the configuration.
Testing & Logging
For a Triggered WebJob, you can manually run it by selecting the WebJob and clicking “Run.”
On App Service Linux, WebJobs are deployed under /tmp/jobs/. To check the logs, you can either view it by clicking the Logs button. You can navigate to /home/data/jobs/triggered/<webjob_name>. Here you will find a directory corresponding to each execution of the WebJob. Within each directory, you will find the ‘status’ and ‘output_log.txt. files.
The status file indicates the schedule set for the WebJob along with the result of the WebJob execution. You can also find the start and end time of the execution.
The output_log.txt file contains general information and status updates during execution. It will also contain execution logs.
By reviewing these logs, you can confirm the WebJob’s operational status, diagnose issues, and understand its execution behaviour.
Conclusion
WebJobs on Azure App Service Linux offers a powerful way to run background tasks and automate processes within your applications. By following the outlined steps you can seamlessly integrate WebJobs into your Linux-based App Service. With a robust understanding of WebJobs, you can leverage this feature to enhance your application’s functionality and maintain high performance across your services.
Additional Links
Run background tasks with WebJobs – Azure App Service | Microsoft Learn
Github Repository: App Service Linux WebJob (github.com)
Microsoft Tech Community – Latest Blogs –Read More
Upgrading License
We are using F3 licenses for our users which gives them 2 GB storage.
Many times, they want more storage and we upgrade their license to Plan 1 which gives 50 Gb storage.
Now that they have Plan 1 assigned, shall we remove the F3 license safely from their account or will there be any problems.
We are using F3 licenses for our users which gives them 2 GB storage.Many times, they want more storage and we upgrade their license to Plan 1 which gives 50 Gb storage. Now that they have Plan 1 assigned, shall we remove the F3 license safely from their account or will there be any problems. Read More
Handling the Too Many Retries Error and Dealing with Odd Numbers of Audit Events
The AuditLog Query Graph API remains in beta status but cmdlets are now available in the Microsoft Graph PowerShell SDK. This led to some oddities in results when the number of audit events found by a search didn’t match those reported by the Purview compliance portal. It all worked out in the end. In other news, the Set-MgRequestContext helped sort out some retry problems.
https://office365itpros.com/2024/08/14/auditlog-query-oddities/
The AuditLog Query Graph API remains in beta status but cmdlets are now available in the Microsoft Graph PowerShell SDK. This led to some oddities in results when the number of audit events found by a search didn’t match those reported by the Purview compliance portal. It all worked out in the end. In other news, the Set-MgRequestContext helped sort out some retry problems.
https://office365itpros.com/2024/08/14/auditlog-query-oddities/ Read More