IP Library › Granted Patent US 12,536,387
Granted Patent B2
US 12,536,387 · App. 18/309,108 · Granted Jan 27, 2026

Task decomposition for LLM integrations with spreadsheet environments

Inventor: Ehab Sobhy Deraz (Bellevue, WA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F40/40G06F40/18G06T11/206
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,536,387
App. No.
18/309,108
Filed
Apr 28, 2023
Granted
Jan 27, 2026
Kind
B2
Art Unit
2658
USPC
704/9
Abstract

Technology is disclosed herein for the integration of spreadsheet environments with LLM services. In an implementation, an application service receives a natural language input from a user associated with a spreadsheet hosted by a spreadsheet application. The application service generates a prompt based on the natural language input which includes asking a large language model (LLM) service to classify a statement in the input as referring to one of multiple capabilities of the spreadsheet application. The application service inputs the prompt to the LLM service and receives an output from the LLM service which identifies a determined one of the multiple capabilities. The application service generates a revised prompt based on the input and the determined one of the multiple capabilities and inputs the revised prompt to the LLM service.

Claims (51)

1 . A method comprising, by a task decomposition tree of a spreadsheet application:

receiving a natural language input from a user associated with a spreadsheet hosted by the spreadsheet application;

in an upper-level node of the task decomposition tree, generating a prompt based on the natural language input and submitting the prompt to a large language model (LLM) service, wherein the prompt directs the LLM service to classify a statement in the natural language input as referring to one of multiple capabilities of the spreadsheet application;

inputting the prompt to the LLM service;

receiving output from the LLM service wherein the output either identifies a determined one of the multiple capabilities or asks a clarifying question;

performing an action based on the output of the LLM service, wherein if the output identifies a determined one of the multiple capabilities, then the action comprises transmitting the natural language input to a lower-level node of the task decomposition tree associated with the determined one of the multiple capabilities and wherein if the output asks a clarifying question, then the action comprises sending the question to a user interface of the spreadsheet application; and

storing conversations associated with the spreadsheet, wherein each conversation of the conversations is stored in association with a node of the task decomposition tree and wherein each conversation of the conversations includes natural language inputs from the user and outputs from the LLM service associated with the respective node.

2 . The method of claim 1 , wherein the prompt includes contextual information, wherein the contextual information includes a portion of spreadsheet data from the spreadsheet.

3 . The method of claim 2 , wherein the multiple capabilities include a data analytics engine, and wherein the prompt further directs the LLM service to generate a query for input to the data analytics engine based on the natural language input.

4 . The method of claim 2 , wherein the multiple capabilities include creating a data table based on the spreadsheet data, and wherein the prompt further directs the LLM service to identify table columns.

5 . The method of claim 2 , wherein the multiple capabilities include creating a chart based on the spreadsheet data, and wherein the prompt further directs the LLM service to identify a type of the chart and columns in the spreadsheet to be visualized by the chart.

6 . The method of claim 1 , wherein conversations associated with the spreadsheet are stored by a chat routing node of the task decomposition tree.

7 . The method of claim 2 , further comprising, by the chat routing node:

creating a new conversation associated with the lower-level node;

storing, in association with the new conversation, a conversation associated with the upper-level node; and

storing the natural language input in association with the new conversation.

8 . The method of claim 3 , further comprising, by the chat routing node:

receiving a second natural language input from the user associated with the spreadsheet;

generating, by a second prompt based on the second natural language input, wherein the second prompt directs the LLM service to identify a conversation associated with the second natural language input;

submitting the second prompt to the LLM service, wherein the second prompt includes the conversations associated with the spreadsheet;

receiving a second output from the LLM service including an identified conversation, wherein the identified conversation comprises a conversation of the conversations associated with the second natural language input; and

storing the second natural language input in association with the identified conversation.

9 . A computing apparatus comprising:

one or more computer-readable storage media;

one or more processors operatively coupled with the one or more computer-readable storage media; and

program instructions stored on the one or more computer-readable storage media that, when executed by the one or more processors, direct the computing apparatus to at least:

receive natural language input from a user associated with a spreadsheet hosted by a spreadsheet application;

in an upper-level node of a task decomposition tree, generate a prompt based on the natural language input, wherein the prompt asks a large language model (LLM) service to classify a statement in the natural language input as referring to one of multiple capabilities of the spreadsheet application;

input the prompt to the LLM service;

receive output from the LLM service, wherein the output identifies a determined one of the multiple capabilities;

in a lower-level node of the task decomposition tree, generate a revised prompt based on the natural language input and the determined one of the multiple capabilities;

input the revised prompt to the LLM service; and

store conversations associated with the spreadsheet, wherein each conversation of the conversations is stored in association with a node of the task decomposition tree and wherein each conversation of the conversations includes natural language inputs from the user and outputs from the LLM service associated with the respective node.

10 . The computing apparatus of claim 9 , wherein the prompt comprises contextual information, wherein the contextual information includes a portion of spreadsheet data from the spreadsheet.

11 . The computing apparatus of claim 10 , wherein the multiple capabilities include a data analytics engine, and wherein the prompt further directs the LLM service to generate a query for input to the data analytics engine based on the natural language input.

12 . The computing apparatus of claim 10 , wherein the multiple capabilities include creating a data table based on the spreadsheet data, and wherein the prompt further directs the LLM service to identify table columns.

13 . The computing apparatus of claim 10 , wherein the multiple capabilities include creating a chart based on the spreadsheet data, and wherein the prompt further directs the LLM service to identify a type of the chart and columns in the spreadsheet to be visualized by the chart.

14 . The computing apparatus of claim 9 , wherein the program instructions further direct the computing apparatus to receive, in response to the revised prompt, a second output from the LLM service, wherein the second output identifies an action associated with the determined one of the multiple capabilities.

15 . The computing apparatus of claim 9 , wherein the program instructions further direct the computing apparatus to store the natural language input and the output from the LLM service in a chat datastore.

16 . A method comprising:

receiving natural language input from a user associated with a spreadsheet hosted by a spreadsheet application;

in an upper-level node of a task decomposition tree, generating a prompt based on the natural language input, wherein the prompt asks a large language model (LLM) service to classify a statement in the natural language input as referring to one of multiple capabilities of the spreadsheet application;

inputting the prompt to the LLM service;

receiving output from the LLM service, wherein the output identifies a determined one of the multiple capabilities;

in a lower-level node of the task decomposition tree, generating a revised prompt based on the natural language input and the determined one of the multiple capabilities;

inputting the revised prompt to the LLM service; and

storing conversations associated with the spreadsheet, wherein each conversation of the conversations is stored in association with a node of the task decomposition tree and wherein each conversation of the conversations includes natural language inputs from the user and outputs from the LLM service associated with the respective node.

17 . The method of claim 16 , wherein the prompt includes contextual information, wherein the contextual information includes a portion of spreadsheet data from the spreadsheet.

18 . The method of claim 17 , wherein the multiple capabilities include a data analytics engine, and wherein the prompt further directs the LLM service to generate a query for input to the data analytics engine based on the natural language input.

19 . The method of claim 17 , wherein the multiple capabilities include creating a data table based on the spreadsheet data, and wherein the prompt further directs the LLM service to identify table columns.

20 . The method of claim 17 , wherein the multiple capabilities include creating a chart based on the spreadsheet data, and wherein the prompt further directs the LLM service to identify a type of the chart and columns in the spreadsheet to be visualized by the chart.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 28, 2023
From: SOBHY DERAZ, EHAB
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 063479/0560 →
Continuity (2)
Provisional Application 63489721 · Mar 10, 2023
Related Publication 20240303441A1 · Sep 12, 2024
References Cited (24)
US 11861263B1 · Hunt · 2024 [cited by examiner]
US 20090089653A1 · Campbell · 2009 [cited by examiner]
US 20150019216A1 · Singh · 2015 [cited by examiner]
US 20160196820A1 · Williams · 2016 [cited by examiner]
US 20180239748A1 · Zhang · 2018 [cited by examiner]
US 20190318010A1 · Tamir · 2019 [cited by examiner]
US 20190339769A1 · Cox · 2019 [cited by examiner]
US 20190341031A1 · Cox · 2019 [cited by examiner]
US 20200349178A1 · Raju · 2020 [cited by examiner]
US 20210109769A1 · Yang · 2021 [cited by examiner]
US 20240303441A1 · Sobhy Deraz · 2024 [cited by examiner]
Anonymous, “Holy Google Sheets! You Can Now Integrate the ChatGPT API”, Retrieved from the URL: https://ai.plainenglish.io/holy-google-sheets-you-can-now-integrate-the-chatgptapi-b401ac065844, Mar. 8, 2023, 7 Pages. [cited by applicant]
Gislason, Hjalmar, “Generative AI and spreadsheets”, Retrieved from the URL: https://medium.grid.is/gpt-3-and-spreadsheets-4808acfda30d, Feb. 8, 2023, 7 Pages. [cited by applicant]
Gislason, Hjalmar, “Launching GRID 2.0: the magical surface for numbers”, Retrieved from the URL: https://grid.is/blog/launching-grid-2-0-the-magical-surface-for-numbers, Feb. 14, 2023, 3 Pages. [cited by applicant]
International Search Report and Written Opinion received for PCT Application No. PCT/US2024/018447, May 16, 2024, 17 pages. [cited by applicant]
Kogan Daniel, “ChatGPT and Excel: Excelhero”, Retrieved from the URL: https://web.archive.org/web/20230306105400/https://excelhero.de/ki/chatgpt-und-excel/, Mar. 6, 2023, 15 Pages. [cited by applicant]
Maddigan, et al., “Chat2VIS: Generating Data Visualisations via Natural Language using ChatGPT, Codex and GPT-3 Large Language Models”, In Repository of arXiv:2302.02094v1, Feb. 4, 2023, 14 Pages. [cited by applicant]
McNutt, et al., “On the Design of AI-powered Code Assistants for Notebooks”, In Repository of arXiv:2301.11178, Jan. 26, 2023, 18 Pages. [cited by applicant]
Ragavan, et al., “GridBook: Natural Language Formulas for the Spreadsheet Grid”, In Proceedings of the 27th ACM symposium on virtual reality software and technology, Mar. 22, 2022, pp. 345-368. [cited by applicant]
Ross, et al., “The Programmer's Assistant: Conversational Interaction with a Large Language Model for Software Development”, In repository of arXiv2302.07080v1, Feb. 14, 2023, 43 Pages. [cited by applicant]
Sarkar, et al., “What is it like to program with artificial intelligence?”, In Repository of arXiv:2208.06213v1, Aug. 12, 2022, 26 Pages. [cited by applicant]
Wu, et al., “AI Chains: Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts”, In Repository of arXiv:2110.01691, Oct. 4, 2021, 21 Pages. [cited by applicant]
Wu, et al., “PromptChainer: Chaining Large Language Model Prompts through Visual Programming”, CHI Conference on human factors in computing systems extended abstracts, Apr. 27, 2022, pp. 1-10. [cited by applicant]
International Preliminary Report on Patentability received for PCT Application No. PCT/US2024/018447, mailed on Sep. 18, 2025, 10 pages. [cited by applicant]
Cited By (2)
US 12,705,238 US 12,717,811