SYSTEMS AND METHODS FOR USING LARGE LANGUAGE MODEL(S) TO WRITE, EDIT, AND REWRITE COHERENT CONTENT ITEMS
20250363295 ยท 2025-11-27
Inventors
Cpc classification
International classification
Abstract
Systems and methods for using large language models (LLM) to generate and edit content items are described. The methods generate a template of a content item based on user input and populate the template based on data obtained from querying an LLM generated semantic graph that includes data sources to which a user is authorized access. Once generated, on or more sources provided are used for editing the identified text of the generated content item. If multiple sources are provided, they are weighted based on factors and their priority is determined. Raw data from the provided source(s) is indexed. An LLM using the identified text as an input, queries the index to identify data relevant for editing the identified text. The relevant data is then used to edit, rewrite and/or regenerate the identified text and make the other unedited text in the content item coherent with the edited text.
Claims
1. A method comprising: generating a textual content item using a first language model based on a user request, wherein the generated textual content item includes a plurality of sections; receiving a request to edit a particular section or a portion of the particular section, from the plurality of sections, wherein the request includes a link to one or more sources that are to be used for editing the particular section or portion of the particular section; identifying the particular section or portion of the particular section to be edited based on the received request; identifying, using a second language model, a subset of relevant data from the received one or more sources, wherein the second language model uses data from the particular section or portion of the particular section to identify the subset of relevant data from the received one or more sources; and editing the particular section or portion of the particular section using the identified subset of relevant data.
2. The method of claim 1, further comprising: receiving a second request to edit a second section or portion of the second section of the generated content item to make it coherent with the edited particular section or portion of the particular section; inputting data from the second section or portion of the second section into the second language model; and editing the second section to make it coherent with the edited particular section.
3. The method of claim 1, further comprising: automatically determining that a second section in the content item has become incoherent due to editing of the particular section or portion of the particular section; and in response to determining that the second section in the content item has become incoherent due to editing of the particular section or portion of the particular section, editing the second section to make it coherent with the edited particular section or portion of the particular section.
4. The method of claim 1, wherein the request to edit the particular section or the portion of the particular section is received when the particular section or the portion of the particular section is selected on a user interface, hovered upon by a cursor or a mouse, or touched on a touch screen user interface.
5. The method of claim 1, wherein identifying the particular section or portion of the particular section to be edited based on the received request comprises visually distinguishing the particular section or portion of the particular section to be edited from other sections in the content item.
6. The method of claim 5, wherein visually distinguishing includes highlighting the particular section or portion of the particular section to be edited.
7. The method of claim 1, wherein identifying, using the second language model, the subset of relevant data from the received one or more sources comprises: indexing raw data from the one or more sources and storing it in an index; generating a plurality of queries to the index, wherein the queries are generated based on using text from the particular section or portion of the particular section as input into the second language model; and identifying a narrow set of data, from the raw data from the one or more sources, as data relevant for editing the particular section or portion of the particular section, wherein the narrowed set of data is identified based on results of the querying.
8. The method of claim 1, further comprising: determining a weight of each of the one or more sources that are to be used for editing the particular section or portion of the particular section; and prioritizing the highest weighted source, from the one or more sources, in editing the particular section or portion of the particular section, wherein the weight is determined based on a plurality of weighting factors.
9. The method of claim 1, further comprising: determining, using deep learning technique, a context of the edited particular section or portion of the particular section; and determining based on the determined context whether another section or portion of the another section in the content item contextually conflicts with the edited particular section or portion of the particular section.
10. The method of claim 9, further comprising, executing conflict resolution measures if a determination is made that the another section in the content item contextually conflicts with the edited particular section or portion of the particular section.
11. The method of claim 1, wherein the first and the second language models are a same language model.
12. The method of claim 1, further comprising: determining a context of the particular section or the portion of the particular section to be edited; suggesting, based on the determined context, a source authored by an employee of a same enterprise as a user requesting the editing of the particular section or the portion of the particular section; and using the source authored by the employee of the same enterprise as the user for editing the particular section or the portion of the particular section.
13. A system comprising: communication circuitry configured to access a user device; and control circuitry configured to: generate a textual content item using a first language model based on a user request received from the user device, wherein the generated textual content item includes a plurality of sections; receive a request to edit a particular section or a portion of the particular section, from the plurality of sections, wherein the request includes a link to one or more sources that are to be used for editing the particular section or portion of the particular section; identify the particular section or portion of the particular section to be edited based on the received request; identify, using a second language model, a subset of relevant data from the received one or more sources, wherein the second language model uses data from the particular section or portion of the particular section to identify the subset of relevant data from the received one or more sources; and edit the particular section or portion of the particular section using the identified subset of relevant data.
14. The system of claim 13, further comprising, the control circuitry configured to: receive a second request to edit a second section or portion of the second section of the generated content item to make it coherent with the edited particular section or portion of the particular section; input data from the second section or portion of the second section into the second language model; and edit the second section to make it coherent with the edited particular section.
15. The system of claim 13, further comprising, the control circuitry configured to: automatically determine that a second section in the content item has become incoherent due to editing of the particular section or portion of the particular section; and in response to determining that the second section in the content item has become incoherent due to editing of the particular section or portion of the particular section, edit the second section to make it coherent with the edited particular section or portion of the particular section.
16. The system of claim 13, wherein identifying the particular section or portion of the particular section to be edited based on the received request comprises the control circuitry configured to visually distinguish the particular section or portion of the particular section to be edited from other sections in the content item.
17. The system of claim 13, wherein identifying, using the second language model, the subset of relevant data from the received one or more sources comprises, the control circuitry configured to: index raw data from the one or more sources and storing it in an index; generate a plurality of queries to the index, wherein the queries are generated based on using text from the particular section or portion of the particular section as input into the second language model; and identify a narrow set of data, from the raw data from the one or more sources, as data relevant for editing the particular section or portion of the particular section, wherein the narrowed set of data is identified based on results of the querying.
18. The system of claim 13, further comprising, the control circuitry configured to: determine a weight of each of the one or more sources that are to be used for editing the particular section or portion of the particular section; and prioritize the highest weighted source, from the one or more sources, in editing the particular section or portion of the particular section, wherein the weight is determined based on a plurality of weighting factors.
19. The system of claim 13, further comprising, the control circuitry configured to: determine, using a using deep technique, a context of the edited particular section or portion of the particular section; and determine based on the determined context whether another section or portion of the another section in the content item contextually conflicts with the edited particular section or portion of the particular section.
20. The system of claim 19, further comprising, the control circuitry configured to execute conflict resolution measures if a determination is made that the another section in the content item contextually conflicts with the edited particular section or portion of the particular section.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] In order to describe the manner in which the above-recited and other advantages and features of the disclosure can be obtained, a more particular description of the principles briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, the principles herein are described and explained with additional specificity and detail through the use of the accompanying drawings and disclosure. The various objects and advantages of the disclosure will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
[0008]
[0009]
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
DETAILED DESCRIPTION
[0033] In accordance with some embodiments disclosed herein, some of the above-mentioned limitations are overcome by leveraging a large language model (LLM) to generate a long form content item and providing editing functionally that allows editing using a section-by-section or layer-by-layer approach using provided sources while ensuring coherency through the content item when any one its sections are edited.
[0034] With respect to leveraging an LLM to generate a long form content item, in accordance with some embodiments disclosed herein, some of the above-mentioned limitations are overcome by using an LLM to automatically generate a semantic graph that includes data indexed to a plurality of private enterprise data sources to which the user is authorized access. The LLM also generates a template having a plurality of sections that are to be populated with relevant private enterprise data indexed in the semantic graph. The LLM queries the semantic graph for each section in the generated templated, the querying order being based on section hierarchy with the finest grained or bottom most subsection being queried first, to access and/or obtain relevant indexed data from the data sources and use it to populate/write the sections of the generated template and generate the content item, e.g., the long form business content item.
[0035] With respect to editing one or more sections of the generated content item based on one or more sources provided, in accordance with some embodiments disclosed herein, some of the above-mentioned limitations are overcome by receiving a request to edit or regenerate a particular section, from the plurality of sections, of the content item generated. The editing request, in some embodiments, may be received when a user hovers over a section of the content item or selects the content item, such as with a cursor or with a hand/pen if using a touchscreen device. The particular section for which the edit is requested may be highlighted, bolded, italicized or visually distinguished in some other manner from other sections that are not subject of the edit request. The received request includes a link to the one or more sources that are to be used for editing and regenerating the particular section. When more than one source is provided, the sources are weighted based on a plurality of weighting factors and used in accordance with their weighted score/percentage. For example, data from a higher weighted source may take priority over data from a lower weighted source if there is a difference of opinion or one conflicts with the other. The raw data from the sources provided may be indexed and a language model, such as a small language mode (LM) or large language model, may be used to narrow from the larger set of raw data from the sources to a narrow set of data that is relevant to the identified text or section that is to be edited. The LLM, using the identified text/section as input may query the index to obtain data relevant to the identified text/section that is to be edited. The data obtained from the query, which is a refined and narrow set of data from the source(s) provided, is then used to edit, rewrite and/or regenerate the identified text/section. The LLM may also check for coherency overall across the content item to determine whether the text that has been identified for editing, also referred to herein as identified text, which includes any text of the content item such as a section, subsection, sentence, group of sentences, page, a plurality of pages, a topic, makes other text, portions of text, sections, paragraphs, pages incoherent. In some embodiments, the LLM may determine a coherency value of all sections in the template prior to the editing of any section and then compare the coherency value prior to editing with coherency value of all the sections after the editing of a particular section to determine if coherency of any section has changed. For example, post editing of a particular section, the particular section edited may be taken as a primary section or a gold standard to then evaluate coherency values of all the unedited sections based on the gold standard. Since coherency of one section is not evaluated in silo and is evaluated with respect to its neighboring sections, and sometimes the entire content item, coherency of the unedited sections is evaluated with respect to coherency of the edited section. If the coherency value indicates a change of the unedited section (i.e. to its coherency) more than a threshold level or threshold percentage of coherency change after the editing of the particular section, then a determination may be made that the unedited sections have become incoherent due to editing of the particular section and as such need to be edited to make them coherent. The LLM may also check sections of the content item to ensure that proper logical and stylistic flow from one section to another is maintained, i.e., after the edits are performed on any one section of the content item. The LLM may then be used to edit the entire content item, page on which the identified text is edited, or certain paragraphs to make them coherent with the edited section. The LLM may also identify any inconsistencies or conflicts caused to other text, portions of text, sections, paragraphs, pages due to the editing of the identified text or section. If inconsistencies or conflicts are detected, rules of conflict resolution may be used by the LLM to cure the inconsistencies or conflicts.
[0036] Turning now to figures,
[0037] In some embodiments, block 105 relates to generating of a template having a plurality of sections and subsections, also referred to as nodes, using a bottom-up approach to populate those sections with content, querying a semantic graph, that may be generated by an LLM, to access content for each section to be populated, and populating all the sections in the template to generate a long form content item. More broadly, block 105 refers to generating a template, leveraging a semantic graph, and populating the template to generate the content item.
[0038] In some embodiments, block 150 relates to editing, rewriting, and/or regenerating of one or more sections of the content item generated at block 105. Such editing, rewriting, and/or regenerating is performed by using one or more identified content sources. The content sources may be identified via a link by a user device or by the system. Raw data from the identified content sources is narrowed to data that is relevant to the one or more sections of the content item that are to be edited. Rewriting or regenerating a section, sub-section, or any or all portions of a content item requires complex analyses, operations, and transformation of data from the data source provided, e.g., it may require understanding the text or other form of data in the source provided, a determination of what portion of the text or other form of data to use, and how to use such text or other form of data to blend into the current a section, sub-section, or any or all portions of a content item, determining whether such use of the transformed text or other form of data from the provided source correlates and conforms with other portions of the section, sub-section, or any or all portions of a content item (e.g., does it correlate logically, stylistically, coherently, linguistically, grammatically etc.). In other words, its is not the case of simply copying the data from another source into a section of the content item, since that would also violate copyright laws. Instead, the control circuitry of the system, such as the system in
[0039] The process 100, in some embodiments, includes receiving a user or system request for generating a content item, at block 110.
[0040] At block 120, a template is generated based on the received request. The template may be a table of contents or some other hierarchy that includes a plurality of sections or nodes, where some or all of the sections or nodes in the plurality of sections or nodes may have one or more layers of nested subsections or sub-nodes. The type, nature, format, and extent of the template may depend on the type of request made. For example, a request to generate an employee handbook may have numerous sections of the template being generated for a large international organization while a request to write a children's book may have fewer sections and subsections.
[0041] At block 130, the sections and subsections of the generated template may be populated. The order of populating the sections and subsections may use a bottoms-up or a most fine-grained subsection to the least fine-grained subsection approach. The population of each section may include querying a semantic graph to obtain the data relevant to the section or subsection to be populated. The semantic graph, which is generated by an LLM, may index data stored in one or more applications, databases, libraries, or some other repository and provide or point to the data based on the queries received.
[0042] At block 140, once the data to be populated is identified, it may be analyzed, processed, and transformed as needed to then be populated into the section or subsection for which it was queried. The data analysis, processing, and transformation may allow an LLM to use deep learning to classify the data and use it in a manner best suited to populate the section or sub-section. In other words, it may not be a simple copying of the data, but instead an original write using the data accessed. In some embodiments, however, as needed and if copyright laws are observed, some data may be copied or referred to with proper citations and then inputted into the section or subsection as determined by the LLM. Further details of the process of steps 110-140 are described in
[0043] At block 150, once the write operation is completed at block 140, the control circuitry, such control circuitry 220 and/or 228 of
[0044] The process of editing, re-writing, and regenerating, as further described in
[0045]
[0046]
[0047] In some embodiments, one or more parts of, or the entirety of system 200, may be configured as a system implementing various features, processes, functionalities and components of
[0048] System 200 is shown to include a computing device 218, a server 202 and a communication network 214. The system may be a generative artificial intelligence system that uses AI bots and agents and that leverages one or more large language models (LLMs), neural networks, and other similar AI type systems. It is understood that a single instance of a component may be shown and described relative to
[0049] Communication network 214 may comprise one or more network systems, such as, without limitation, an internet, LAN, WIFI or other network systems suitable for audio processing applications. In some embodiments, system 200 excludes server 202, and functionality that would otherwise be implemented by server 202 is instead implemented by other components of system 200, such as one or more components of communication network 214. In still other embodiments, server 202 works in conjunction with one or more components of communication network 214 to implement certain functionality described herein in a distributed or cooperative manner. Similarly, in some embodiments, system 200 excludes computing device 218, and functionality that would otherwise be implemented by computing device 218 is instead implemented by other components of system 200, such as one or more components of communication network 214 or server 202 or a combination. In still other embodiments, computing device 218 works in conjunction with one or more components of communication network 214 or server 202 to implement certain functionality described herein in a distributed or cooperative manner.
[0050] Computing device 218 includes control circuitry 228, display 234 and input circuitry 216. Control circuitry 228 in turn includes transceiver circuitry 262, storage 238 and processing circuitry 240. In some embodiments, computing device 218 or control circuitry 228 may be configured as user device 300 of
[0051] Server 202 includes control circuitry 220 and storage 224. Each of storages 224 and 238 may be an electronic storage device. As referred to herein, the phrase electronic storage device or storage device should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, optical drives, digital video disc (DVD) recorders, compact disc (CD) recorders, BLU-RAY disc (BD) recorders, BLU-RAY 4D disc recorders, solid state devices, quantum storage devices, or any other suitable fixed or removable storage devices, and/or any combination of the same. Each storage 224, 238 may be used to store various types of data (e.g., user login and connections with various data sources, templates, including all sections in the templates, hierarchy or sections and nodes in the template, semantic graphs and updates to semantic graphs, data sources organization structure, such as by genre, data indexed in semantic graphs, association between data items listed in the semantic graphs, data written into a section, feedback received, identity of person and their access authorizations and permissions, person's tasks and agenda, input from user or system as to type of content item to create, data related to employee job titles and designations, sources identified for use in editing identified text, weighting scores associated with the sources, identification of which sections became incoherent due to editing of one of the sections of the content item using the identified source, selection of editing options, indexing of raw data associated with the identified source, search queries to the index containing raw data, narrowed set of data relevant to the identified text that is obtained based on the queries to the indexed data and NLP, ML, and AI algorithms). Non-volatile memory may also be used (e.g., to launch a boot-up routine and other instructions). Cloud-based storage may be used to supplement storages 224, 238 or instead of storages 224, 238. In some embodiments, data relating to user login and connections with various data sources, templates, including all sections in the templates, hierarchy or sections and nodes in the template, semantic graphs and updates to semantic graphs, data sources organization structure, such as by genre, data indexed in semantic graphs, association between data items listed in the semantic graphs, data written into a section, feedback received, identity of person and their access authorizations and permissions, person's tasks and agenda, input from user or system as to type of content item to create and NLP, ML, and AI algorithms, and data relating to all other processes and features described herein, may be recorded and stored in one or more of storages 212, 238.
[0052] In some embodiments, control circuitry 220 and/or 228 executes instructions for an application stored in memory (e.g., storage 224 and/or storage 238). Specifically, control circuitry 220 and/or 228 may be instructed by the application to perform the functions discussed herein. In some implementations, any action performed by control circuitry 220 and/or 228 may be based on instructions received from the application. For example, the application may be implemented as software or a set of executable instructions that may be stored in storage 224 and/or 238 and executed by control circuitry 220 and/or 228. In some embodiments, the application may be a client/server application where only a client application resides on computing device 218, and a server application resides on server 202.
[0053] The application may be implemented using any suitable architecture. For example, it may be a stand-alone application wholly implemented on computing device 218. In such an approach, instructions for the application are stored locally (e.g., in storage 238), and data for use by the application is downloaded on a periodic basis (e.g., from an out-of-band feed, from an internet resource, or using another suitable approach). Control circuitry 228 may retrieve instructions for the application from storage 238 and process the instructions to perform the functionality described herein. Based on the processed instructions, control circuitry 228 may determine a type of action to perform in response to input received from input circuitry 216 or from communication network 214. For example, in response determining that a user device has connected to a data source, or a plurality of data sources, such as by logging in, or that a user device is provided authorized access to a plurality of data sources, regardless of whether the user device has logged in to them, the system may automatically generate semantic graph(s) for all data/data items that are stored in the data sources to which the user device has connected or is authorized to connect. To accomplish this, in one embodiment, the control circuitry 228 may perform the steps of process described at least in any one or more of
[0054] In client/server-based embodiments, control circuitry 228 may include communication circuitry suitable for communicating with an application server (e.g., server 202) or other networks or servers. The instructions for carrying out the functionality described herein may be stored on the application server. Communication circuitry may include a cable modem, an Ethernet card, or a wireless modem for communication with other equipment, or any other suitable communication circuitry. Such communication may involve the internet or any other suitable communication networks or paths (e.g., communication network 214). In another example of a client/server-based application, control circuitry 228 runs a web browser that interprets web pages provided by a remote server (e.g., server 202). For example, the remote server may store the instructions for the application in a storage device. The remote server may process the stored instructions using circuitry (e.g., control circuitry 228) and/or generate displays. Computing device 218 may receive the displays generated by the remote server and may display the content of the displays locally via display 234. This way, the processing of the instructions is performed remotely (e.g., by server 202) while the resulting displays, such as the display windows described elsewhere herein, are provided locally on computing device 218. Computing device 218 may receive inputs from the user via input circuitry 216 and transmit those inputs to the remote server for processing and generating the corresponding displays. Alternatively, computing device 218 may receive inputs from the user via input circuitry 216 and process and display the received inputs locally, by control circuitry 228 and display 234, respectively.
[0055] Server 202 and computing device 218 may transmit and receive data such as data relating to user login and connections with various data sources, templates, including all sections in the templates, hierarchy or sections and nodes in the template, semantic graphs and updates to semantic graphs, data sources organization structure, such as by genre, data indexed in semantic graphs, association between data items listed in the semantic graphs, data written into a section, feedback received, identity of person and their access authorizations and permissions, person's tasks and agenda, input from user or system as to type of content item to create, data related to employee job titles and designations, sources identified for use in editing identified text, weighting scores associated with the sources, identification of which sections became incoherent due to editing of one of the sections of the content item using the identified source, selection of editing options, indexing of raw data associated with the identified source, search queries to the index containing raw data, narrowed set of data relevant to the identified text that is obtained based on the queries to the indexed data and NLP, ML, and AI algorithms.
[0056] Control circuitry 220, 228 may send and receive commands, requests, and other suitable data through communication network 214 using transceiver circuitry 260, 262, respectively. Control circuitry 220, 228 may communicate directly with each other using transceiver circuits 260, 262, respectively, avoiding communication network 214.
[0057] It is understood that computing device 218 is not limited to the embodiments and methods shown and described herein. In non limiting examples, computing device 218 may be a personal computer (PC), a laptop computer, a tablet computer, a personal computer, a generative AI server, a handheld computer, a mobile telephone, a smartphone, or any other device, computing equipment, or wireless device, and/or combination thereof that can receive user device inputs related to generating long form content items, generating semantic graphs by using LLMs, generating templates, and writing into templates by data obtained through querying semantic graphs as discussed herein.
[0058] Control circuitry 220 and/or 218 may be based on any suitable processing circuitry such as processing circuitry 226 and/or 240, respectively. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors, for example, multiple of the same type of processors (e.g., two Intel Core i9 processors or Nvidia processors) or multiple different processors (e.g., an Intel Core i7 and i9 processors or Nvidia GH 100, 200).
[0059] In some embodiments, control circuitry 220 and/or control circuitry 218 are configured to generate semantic graph(s), generate a long form business content item using private enterprise data, detect user connections with data sources, such as private enterprise data sources connected via login, access data sources connected by the user devices, organize data sources on a user interface, such as by topic, genre, category of enterprise function (e.g., sales, accounting, HR, ticketing, etc.), generate a sematic graph for the data/data items accessed from the data sources, performing initial and subsequent synchronization of data between semantic graph, data pipelines, and data sources to ensure any changes in data are updated, generate associations between data items accessed from the data sources in the semantic graph, indexing data items in the semantic graphs where the indexes point to the data source at which each data item is stored, receive user input on the type of content item, such as a long form business content item to be generated, which includes but is not limited to documents, excel or other related computational files, presentations, slides, guides, etc., receive user input from the system, such as based on AI or ML recommendations, on the type of content item, such as a long form business content item to be generated, generating a template based on the user or system input received, the template being a table of contents in some embodiments, performing a search query for each of the nodes, sections, sub-sections, leaves of the template, determining the most fine-grained node, section, sub-section, leaf of the template, determining the most fine-grained node, section, sub-section, leaf of a particular section in the template, starting the search query with the determined most fine-grained node, section, sub-section, leaf of the template or a section within the template, searching the semantic graph for data items that are relevant to the search query, e.g., to the most fine-grained node, section, sub-section, leaf of the template, obtaining relevant data items based on the search query, such from the data sourced indexed in the semantic graph, performing a write operation in the template in the most fine-grained node, section, sub-section, leaf of the template, for which the search query was conducted, repeating the search queries for all sections, sub-sections, modes, leaves in the template until all sections and subsections are completed, parallel processing and simultaneously searching and writing to sections and subsections that are on a same layer/level, determining identity of the user, including determining user job titles and designations, user access to data sources, including which data sources are authorized to be accessed by the user, determining enterprise identify, customizing the templates and semantic graphs based on user identity, enterprise identity, or both, publishing the final content or section by section as it is written to a user interface of a user device, providing feedback and editing capabilities, the provided editing and feedback capabilities including allowing feedback using a per layer, section-by-section, or layer-by-layer approach, highlighting sections for feedback, dynamically updating the section and any other related sections based on the feedback, updating semantic graphs based on the feedback, receiving one or more sources that are to be used in editing an identified section of the content item, receiving one or more different sources that are to be used in editing multiple sections of the content item, accessing and indexing the raw data from the identified one or more sources, indexing using various techniques including using an LLM, identifying relevant data from the indexed raw data, using an LLM to generate queries to the indexed raw data for identifying data that is relevant to the identified text, the queries being formulated by the LLM based on the identified text, using the narrow set of relevant data that results after the querying to rewrite and/or regenerate the identified section, where the rewrite and regenerate is performed using relevant data from the identified one or more sources, determining coherency of other sections, subsections, pages of the content item with the rewritten and regenerated identified text, when incoherency with the rewritten and regenerated identified text is determined, rewriting and regenerating the sections, subsections, pages of the content item such that they are coherent with the rewritten and regenerated identified text, determining which source to use or how to prioritize or weight the source when more than one source is provided for editing the identified text, using a plurality of factors to weight the source when more than one source is provided, displaying editing options, receiving a selection of editing options which include a selection of a portion, section, sub-section of the content item, to be edited, rewritten, and regenerated to be coherent with the edited text, determining conflicts caused in other sections of the content item when one section of the content item is edited using a provided source, providing various conflict resolution options for selection, resolving the conflict based on the conflict resolution selection options, displaying a user interface that includes sections of the content item, sources used for editing, editing options, other sections affected in the content item when one section is edited, and conflict identification and resolution options, and performing all the functions, steps, features, discussed herein. Control circuitry 220 and/or control circuitry 218 are also configured to perform all processes described and shown in connection with
[0060] Computing device 218 receives a user input 204 at input circuitry 216. For example, computing device 218 may receive a user input like 710, 730, and/or 740 in
[0061] Transmission of user input 204 to computing device 218 may be accomplished using a wired connection, such as an audio cable, USB cable, ethernet cable or the like attached to a corresponding input port at a local device, or may be accomplished using a wireless connection, such as Bluetooth, WIFI, WiMAX, GSM, UTMS, CDMA, TDMA, 3G, 4G, 4G LTE, 5G (or 6G which is in development) or any other suitable wireless transmission protocol. Input circuitry 216 may comprise a physical input port such as a 3.5 mm audio jack, RCA audio jack, USB port, ethernet port, or any other suitable connection for receiving audio over a wired connection or may comprise a wireless receiver configured to receive data via Bluetooth, WIFI, WiMAX, GSM, UTMS, CDMA, TDMA, 3G, 4G, 4G LTE, 5G (or 6G which is in development), or other wireless transmission protocols.
[0062] Processing circuitry 240 may receive input 204 from input circuit 216. Processing circuitry 240 may convert or translate the received user input 204 that may be in the form of voice input into a microphone. In some embodiments, input circuit 216 performs the translation to digital signals. In some embodiments, processing circuitry 240 (or processing circuitry 226, as the case may be) carries out disclosed processes and methods. For example, processing circuitry 240 or processing circuitry 226 may perform processes as described in
[0063]
[0064] In an embodiment, the equipment device 300, is the same equipment device 202 of
[0065] The control circuitry 304 may be based on any suitable processing circuitry such as the processing circuitry 306. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores) or supercomputer. In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 or Nvidia processors) or multiple different processors (e.g., an Intel Core i5, i7, 19 processor, Nvidia GH 100, 200).
[0066] The processes as described herein may be implemented in or supported by any suitable software, hardware, or combination thereof. They may also be implemented on user equipment, on remote servers, or across both.
[0067] In client-server-based embodiments, the control circuitry 304 may include communications circuitry suitable to generate semantic graph(s), generate a long form business content item using private enterprise data, detect user connections with data sources, such as private enterprise data sources connected via login, access data sources connected by the user devices, organize data sources on a user interface, such as by topic, genre, category of enterprise function (e.g., sales, accounting, HR, ticketing, etc.), generate a sematic graph for the data/data items accessed from the data sources, performing initial and subsequent synchronization of data between semantic graph, data pipelines, and data sources to ensure any changes in data are updated, generate associations between data items accessed from the data sources in the semantic graph, indexing data items in the semantic graphs where the indexes point to the data source at which each data item is stored, receive user input on the type of content item, such as a long form business content item to be generated, which includes but is not limited to documents, excel or other related computational files, presentations, slides, guides, etc., receive user input from the system, such as based on AI or ML recommendations, on the type of content item, such as a long form business content item to be generated, generating a template based on the user or system input received, the template being a table of contents in some embodiments, performing a search query for each of the nodes, sections, sub-sections, leaves of the template, determining the most fine-grained node, section, sub-section, leaf of the template, determining the most fine-grained node, section, sub-section, leaf of a particular section in the template, starting the search query with the determined most fine-grained node, section, sub-section, leaf of the template or a section within the template, searching the semantic graph for data items that are relevant to the search query, e.g., to the most fine-grained node, section, sub-section, leaf of the template, obtaining relevant data items based on the search query, such from the data sourced indexed in the semantic graph, performing a write operation in the template in the most fine-grained node, section, sub-section, leaf of the template, for which the search query was conducted, repeating the search queries for all sections, sub-sections, modes, leaves in the template until all sections and subsections are completed, parallel processing and simultaneously searching and writing to sections and subsections that are on a same layer/level, determining identity of the user, including determining user job titles and designations, user access to data sources, including which data sources are authorized to be accessed by the user, determining enterprise identify, customizing the templates and semantic graphs based on user identity, enterprise identity, or both, publishing the final content or section by section as it is written to a user interface of a user device, providing feedback and editing capabilities, the provided editing and feedback capabilities including allowing feedback using a per layer, section-by-section, or layer-by-layer approach, highlighting sections for feedback, dynamically updating the section and any other related sections based on the feedback, updating semantic graphs based on the feedback, receiving one or more sources that are to be used in editing an identified section of the content item, receiving one or more different sources that are to be used in editing multiple sections of the content item, accessing and indexing the raw data from the identified one or more sources, indexing using various techniques including using an LLM, identifying relevant data from the indexed raw data, using an LLM to generate queries to the indexed raw data for identifying data that is relevant to the identified text, the queries being formulated by the LLM based on the identified text, using the narrow set of relevant data that results after the querying to rewrite and/or regenerate the identified section, where the rewrite and regenerate is performed using relevant data from the identified one or more sources, determining coherency of other sections, subsections, pages of the content item with the rewritten and regenerated identified text, when incoherency with the rewritten and regenerated identified text is determined, rewriting and regenerating the sections, subsections, pages of the content item such that they are coherent with the rewritten and regenerated identified text, determining which source to use or how to prioritize or weight the source when more than one source is provided for editing the identified text, using a plurality of factors to weight the source when more than one source is provided, displaying editing options, receiving a selection of editing options which include a selection of a portion, section, sub-section of the content item, to be edited, rewritten, and regenerated to be coherent with the edited text, determining conflicts caused in other sections of the content item when one section of the content item is edited using a provided source, providing various conflict resolution options for selection, resolving the conflict based on the conflict resolution selection options, displaying a user interface that includes sections of the content item, sources used for editing, editing options, other sections affected in the content item when one section is edited, and conflict identification and resolution options, and performing all the functions, steps, features, discussed herein. The instructions for carrying out the above-mentioned functionality may be stored on one or more servers. Communications circuitry may include a cable modem, an integrated service digital network (ISDN) modem, a digital subscriber line (DSL) modem, a telephone modem, ethernet card, or a wireless modem for communications with other equipment, or any other suitable communications circuitry. Such communications may involve the internet or any other suitable communications networks or paths. In addition, communications circuitry may include circuitry that enables peer-to-peer communication of electronic equipment devices, or communication of electronic equipment devices in locations remote from each other (described in more detail below).
[0068] Memory may be an electronic storage device provided as the storage 308 that is part of the control circuitry 304. As referred to herein, the phrase electronic storage device or storage device should be understood to mean any device for storing electronic data, computer software, or firmware, such as random-access memory, read-only memory, hard drives, optical drives, digital video disc (DVD) recorders, compact disc (CD) recorders, BLU-RAY disc (BD) recorders, BLU-RAY 3D disc recorders, digital video recorders (DVR, sometimes called a personal video recorder, or PVR), solid-state devices, quantum-storage devices, or any other suitable fixed or removable storage devices, and/or any combination of the same. The storage 308 may be used to store user login and connections with various data sources, templates, including all sections in the templates, hierarchy or sections and nodes in the template, semantic graphs and updates to semantic graphs, data sources organization structure, such as by genre, data indexed in semantic graphs, association between data items listed in the semantic graphs, data written into a section, feedback received, identity of person and their access authorizations and permissions, person's tasks and agenda, input from user or system as to type of content item to create, data related to employee job titles and designations, sources identified for use in editing identified text, weighting scores associated with the sources, identification of which sections became incoherent due to editing of one of the sections of the content item using the identified source, selection of editing options, indexing of raw data associated with the identified source, search queries to the index containing raw data, narrowed set of data relevant to the identified text that is obtained based on the queries to the indexed data and NLP, ML, and AI algorithms. Cloud-based storage, described in relation to
[0069] The control circuitry 304 may include audio generating circuitry and tuning circuitry, such as one or more analog tuners, audio generation circuitry, filters or any other suitable tuning or audio circuits or combinations of such circuits. The control circuitry 304 may also include scaler circuitry for upconverting and down converting content into the preferred output format of the electronic device 300. The control circuitry 304 may also include digital-to-analog converter circuitry and analog-to-digital converter circuitry for converting between digital and analog signals. The tuning and encoding circuitry may be used by the electronic device 300 to receive and to display, to play, or to record content. The circuitry described herein, including, for example, the tuning, audio generating, encoding, decoding, encrypting, decrypting, scaler, and analog/digital circuitry, may be implemented using software running on one or more general purpose or specialized processors. If the storage 308 is provided as a separate device from the electronic device 300, the tuning and encoding circuitry (including multiple tuners) may be associated with the storage 308.
[0070] The user may utter instructions to the control circuitry 304, which are received by the microphone 316. The microphone 316 may be any microphone (or microphones) capable of detecting human speech. The microphone 316 is connected to the processing circuitry 306 to transmit detected voice commands and other speech thereto for processing. In some embodiments, voice assistants (e.g., Siri, Alexa, Google Home and similar such voice assistants) receive and process the voice commands and other speech.
[0071] The electronic device 300 may include an interface 310. The interface 310 may be any suitable user interface, such as a remote control, mouse, trackball, keypad, keyboard, touch screen, touchpad, stylus input, joystick, or other user input interfaces. A display 312 may be provided as a stand-alone device or integrated with other elements of the electronic device 300. For example, the display 312 may be a touchscreen or touch-sensitive display. In such circumstances, the interface 310 may be integrated with or combined with the microphone 316. When the interface 310 is configured with a screen, such a screen may be one or more monitors, a television, a liquid crystal display (LCD) for a mobile device, active-matrix display, cathode-ray tube display, light-emitting diode display, organic light-emitting diode display, quantum-dot display, or any other suitable equipment for displaying visual images. In some embodiments, the display 312 may be a 3D display. The speaker (or speakers) 314 may be provided as integrated with other elements of electronic device 300 or may be a stand-alone unit. In some embodiments, the display 312 may be outputted through speaker 314.
[0072] The equipment device 300 of
[0073] The electronic device 300 of any other type of suitable user equipment may also be used to implement ML and AI algorithms, and related functions and processes as described herein. Various network configurations of devices may be implemented and are discussed in more detail below.
[0074] Turning now to figures,
[0075] In some embodiments, block 318 relates to a semantic graph and block 340 relates to a long form business content item generated by using the LLM leveraged semantic graph 318. The semantic graph 318, in some embodiments, represents data (also referred to herein as data items) from a plurality of data sources that are private to an enterprise. The semantic graph 318 may index the data from the data sources and when queried, the responsive data that is indexed in the semantic graph may be made available if the user is authorized to access such data. In some embodiments, the semantic graph 318 may be generated prior to receiving or processing a request from a user interface to generate a long form business content item. In other embodiments, the semantic graph 318 and content item 340 may also be generated during or after receiving or processing a request from a user interface to generate a long form business content item. Additional details relating to the semantic graph 318, including its creation use are described further below.
[0076] At block 319, the control circuitry, such as the control circuitry 220 and/or 228 of
[0077] At block 320, in one embodiment, the control circuitry 220 and/or 228 may access all the data sources to which the user has logged in and organize them, such as based on their genre, topic, or some other desired category. One example of such an organization is depicted in
[0078] At block 330, the control circuitry 220 and/or 228 may generate a semantic graph. The semantic graph may be organized, such as by topic, genre, file association, department association, etc., for all data/data items accessed by the control circuitry from different data sources to which the user device is authorized access. The organization, which may be topical, may include organizing data relevant to a topic from different data sources together. For example, data relevant to an employee handbook, a request for proposal (RFP), company's financial data, company's products may be grouped together. The semantic graph may semantically associate all topics, words, phrases, and content that are related to each other. The semantic graph, in some embodiments, may be organized and generated by an LLM. The LLM may establish the semantic relationships between data items from different data sources.
[0079] The generated semantic graph may only include data that is authorized to be accessed by a user for whom it is generated to be used. If a user is able to log in to a database, application, or another document repository, the user likely has access to data that is stored in the accessed database, application, or document repository. If the user was not authorized to access such data, the user likely would not be provided login credentials to be able to log in to such databases, applications, or document repositories that stores such data. As such, only data from those databases, applications, or document repositories to which the user can log in, or is authorized to log in, may be used by the control circuitry 220 and/or 228 to generate the semantic graph. Since the control circuitry 220 and/or 228 may monitor user login and also user login history, such as from using machine learning techniques, the control circuitry 220 and/or 228 may, without any user intervention, use data from such databases, applications, or document repositories to generate the semantic graph. Additional details relating to generating a semantic graph are described below in the description related to
[0080] Block 340 refers to a content item that may be generated using blocks 345-370 and leveraging the semantic graph. At block 345, the control circuitry 220 and/or 228 receives a user request for generating a content item. This may be a large/long form business content item such as a document or presentation using private enterprise data/data items. The request may also be for generating any type of content item, such as a Word, Excel, PowerPoint, Google Docs, Scrivener, Pages, PDFs, Evernote, QuickBooks or any other type of document, file, personal or business document or presentation.
[0081] In one embodiment, the request to generate a content item, such as a large business document or presentation using private enterprise data, as depicted in
[0082] At block 350, once the request to generate a content item is received, whether by the user or suggested to the user for selection and then received, the control circuitry 220 and/or 228 may generate a template based on the received request. The template may include a hierarchy of sections or nodes in a document or a presentation. Some of the sections in the template may have multiple subsections and others may not. Which sections to create and how many layers of subsections to create for each topic in the template may be based on the type of document to be generated and user or system input. It may also be directed by an LLM suggestion provided. In some embodiments, the template may be received from a user interface of an electronic device associated with a user. In other embodiments, the template may be generated by the control circuitry 220 and/or 228 by querying the user interface associated with the user. The query may ask for certain information that may allow the control circuitry 220 and/or 228 to determine which type of template is to be generated. The control circuitry 220 and/or 228 may also display on the user interface of a user device associated with the user, various sections that can be used to upload documents that may assist the control circuitry 220 and/or 228 in determining which type of template to generate. In some embodiments, the process to generate a template is described further in
[0083] The generated template, as described earlier, may include sections and layers of subsections for each section. Some sections may have one layer (subsection), some may have several layers of nested subsections while others may not have any subsections at all. It may depend on the nature, type, context of the content item to be generated. It may also depend on the recommendation obtained from an LLM. Some examples of the nested forest and trees of sections and layers of subsections are depicted in
[0084] At block 355, a search query may be performed by the control circuitry 220 and/or 228 to the semantic graph to identify, access, and obtain content that can be populated in the generated template. In some embodiments, the search query may be performed for each section in the template. The querying process may start with the deepest nested leaf, which may also be referred to as the bottom most nested layer in all the sections (or a particular section), or the most fine-grained subsection. For example, if a document has two sections, Section 1 and Section 2, and Section 2 has the following nested subsections, 2.1, 2.2, and 2.1.1, then section 2.1.1 may be the deepest nested leaf/bottom most nested layer/most fine-grained subsection. As such, the first query may be for such a deepest nested leaf/bottom most nested layer/most fine-grained subsection. The query may be to the generated semantic graph for identifying and determining content relevant to the deepest subsection. In some embodiments, an LLM may match the query to indexed data items in the semantic graph and suggest which indexed data is to be obtained and populated in the section for which the query was conducted.
[0085] At block 360, data in response to the query made may be obtained by the control circuitry 220 and/or 228. In some embodiments, the query to the semantic graph may result in the pointing to the data indexed at the data source where it is stored. If the user device querying such data has the allotted permissions and authorizations to obtain such data, then such data may be obtained at block 360 and be made available to a generation model (e.g., an LLM model) to perform a write operation at block 365.
[0086] At block 365, a write operation may be performed to write the obtained data into the deepest or most fine-grained subsection. How to use the obtained data and write a logical and coherent section may be based on recommendations from an LLM model. The order of writing into the template may be based on the hierarchy of the sections, as described above with respect to the query. Some examples of the order of write operation, which mirrors the order of query, is depicted in
[0087] Once a write operation is performed, the user may provide any feedback at block 370. In some embodiments, a per-layer feedback may be provided by the user. Each per-layer feedback may result in regeneration of the subsection (or section) for which the feedback was provided as well as any other section or subsections in the template that refer to the regenerated section or depend on the regenerated section in any form. As such, all other sections may maintain data consistency for any change performed to the section for which feedback was provided.
[0088] The process of providing feedback may include highlighting the section or subsection for which feedback is to be provided. The highlighting may be automatic if the user's mouse, trackpad, finger, touchscreen cursor, or another type of cursor hovers over the section or subsection. The highlighting for editing and providing feedback may visually distinguish the section or subsection from other sections and subsections for which feedback is not being currently provided. If a section or subsection is hovered upon, selected, or highlighted, then the control circuitry 220 and/or 228, in some embodiments, may automatically provide editing suggestions. In some embodiments, the automatically provided editing suggestions may be based on determining user's preferences, prior edits, and patterns using machine learning techniques. In other embodiments, the automatically provided editing suggestions may also be based on preferences of other colleagues or the enterprise accepted policies. Some examples of such editing suggestions are provided in
[0089] The process from blocks 355 to 370 may be repeated for all sections and subsections in the template until all sections and subsections in the template are written. When multiple sections are in the same layer, parallel processing may be performed in real time (barring any network latency) to simultaneously write multiple sections on the same layer at the same time.
[0090] In some embodiments, a source may be identified at block 375 that is to be used for editing any one or more of the written section or subsections. Block 375 may be implemented instead of, or in addition to, block 370. Additional details of the editing process that includes using an identified source is described below in relation to
[0091]
[0092] In one embodiment, when the user connects to any such databases and applications, the control circuitry 220 and/or 228 may automatically access all such applications. The control circuitry 220 and/or 228 may then obtain data from the accessed databases and applications and generate a semantic graph that provides associations and relationships between all the data obtained. In some embodiments, the process of obtaining data may also involve obtaining file file-names, metadata, timestamps. It may also involve getting file names from previous conversations, such as conversation mentioned in emails or text from the user device, since the system is provided access to all communications, or in some embodiments only enterprise related communications like company email, from where such files names and associated data sources may be identified. In some embodiments, the control circuitry 220 and/or 228, instead of obtaining the data, may analyze the data to generate the semantic graph and index the semantic graph such that the indexed data can be obtained as needed, such as when queried.
[0093] In another embodiment, the control circuitry 220 and/or 228 may determine which data sources are authorized/permitted for the user device to connect to, such as via logging in. Even if the user has not actually logged into such data sources, as long as the user device is authorized and permitted to access data from them, such data sources may also be used by the control circuitry 220 and/or 228 to aces or obtain data from the accessed databases and applications and generate a semantic graph that provides associations and relationships between all the data accesses and/or obtained.
[0094] In other embodiments, the control circuitry 220 and/or 228 may suggest to the user to connect to a certain account or application based on the type of content item that is to be created. For example, control circuitry 220 and/or 228 may determine that a request for proposal (RFP) is to be created by the user. The control circuitry 220 and/or 228 may make such a determination based on emails received by the user from a colleague or their boss. The control circuitry 220 and/or 228 may also crawl a plurality of enterprise and private communication tools and databases and analyze user communications and tasks (e.g., emails, text, Slack messages, meeting minutes, etc.) to determine what task is to be performed by the user device. The control circuitry 220 and/or 228 may also determine that data that may be relevant to the task is stored in a particular database or application that the user is authorized to access. Accordingly, the control circuitry 220 and/or 228 may suggest the user to connect (e.g., log in) to the particular database or application that stores the data that may be relevant to the task. In another embodiment, if the control circuitry 220 and/or 228 determines that the user device is authorized to access the particular database or application that stored the data that may be relevant to the task, then the control circuitry 220 and/or 228 may automatically access and/or obtain the data from the particular database or application regardless of whether the user connects to it.
[0095] In some embodiments, the control circuitry 220 and/or 228 may display all the accounts or databases to which the user has authorized access on a user interface of an electronic device used by the user as depicted in
[0096] In addition to the databases, files, libraries, and applications, such as accounting applications, HR applications, ticketing applications, E-mail, sales applications, automatically used by the system based on the user connecting to them via login or having authorized access to them, the user may also identify additional data sources, such as data sources 410-480, which have not been used in generating the semantic graph. The user may identify these sources 410-480 to be used in generating the content item or may place them in the library for them to be used in the editing phase, e.g., as described in block 150 of
[0097]
[0098] In some embodiments, the components of the process may include a file storage 510, user connections 520, permissions 530, data pipelines 535, semantic graph 540, and updating or adding to the semantic graph 545.
[0099] In some embodiments, the process 500 may be initiated when a user 520 connects to a file storage 510. In other words, the process may be initiated when a user logs in to any of the databases or applications to which they have authorized access. In some embodiments, the control circuitry 220 and/or 228 may check for permissions and authorizations to ensure that the user can access all the data in the file storage. For example, there may be instances where the user is authorized to access a portion of the database and not all of the files in the database. This may be because certain private data in the database may either require another password or higher level of access to which the user is not authorized. As such, the control circuitry 220 and/or 228 may determine permissions 530 for each application and database to which the user connects to ensure that only data that is authorized to be accessible by the user can be used in generating the semantic graph.
[0100] Once the user connection and permissions have been evaluated, a plurality of data pipelines 535 are triggered. These data pipelines 535 are triggered for each connection/login. For example, if a user logs into the sales application, the associated data pipeline may be triggered. Likewise, if the user logs into a ticketing application, another associated data pipeline may be triggered. Accordingly, for each application connected, a separate data pipeline may be triggered. In some embodiments, all the separate data pipelines may be collectively aggregated into a larger data pipeline. In an alternative embodiment, a single data pipeline, instead of separate data pipelines, may be used to manage the flow of data and updates. In another embodiment, once it is determined that the user has authorized access to the data items from the plurality of data sources, regardless of whether the user connects to them, as long as the user is permitted and authorized access, the plurality of data pipelines 535 may be triggered.
[0101] The data pipelines 535 may be used to perform an initial sync of data with the associated file storage. In this initial sync, the data pipelines may query the file storage to provide all the file data. Subsequently after the initial sync, if any of the applications has an update, or any of the data items from any of the data sources are updated, deleted, or added, then such asynchronous updates, deletion, and additions may be provided to the data pipelines in real time, subject to any network latency. The update may be, for example, a portion of an application, a portion of data, a table, a comment, etc. It may be a small update or large update where a lot of data is changed. When the update is to a portion of the data in an application, then only the portion that has changed in the application may be changed in the semantic graph. Such updates by portions, segments, or even to even small pieces of data, such as a table, being made only to the relevant portion in the semantic graph may save computing resources that would otherwise be required to regenerate the entire data. In some embodiments, when a data item in any of the applications or database in the file storage 510 goes through a change, the change is transmitted at 580 to the data pipelines, such as the data pipeline associated with the application which underwent the data change. The data is then resynchronized and any related update is made to the semantic graph. In some embodiments, if multiple queries are done for the same sub-section, the system may add cache for search results for the same query and perform filtering such that they can be used in a subsequent query.
[0102] In one example, after the initial synchronization of data via steps 550 and 560, a semantic graph may be created. If any data is changed, such as in the ticketing application (or any other application to which the user has connected), or new data is added (e.g., a new document in HR policy), such asynchronous update in the data may be transmitted to the data pipelines at step 580. The data pipeline may then process and transmit the change to update the semantic graph at 590. As described earlier, only data that is changed in the application will be updated on the semantic graph. If that data is used in multiple places in the semantic graph, or if other data depends on the changed data, then all data that relies on the data that is changed may also be changed for consistency. The control circuitry 220 and/or 228 may understand exactly where the change in data affects the semantic graph and accordingly make the updates to the semantic graph with the newly updated data.
[0103] In some embodiments, the process of
[0104] When documents are uploaded by a user in connection with requesting a long form content item, such as an RFP or another type of document that the user would like the system to use as input in generating a template, then, in some embodiments, the system may use hardcoded URLs of documents to get RFP overview and structured requirement documents. It may then use prompts to create templates hardcoded for the RFP to be created, e.g. Company XYZ RFP. The system may then generate a template and query the semantic graph sequentially based on sections of template, such as by using the bottoms up approach described herein. The system may create search queries based on RFP and structured requirement documents. It may use the search queries in the pinecone databases in-memory index. It may get the search response and use LLM to format the response and then concatenate the responses generated.
[0105]
[0106] In some embodiments, the user's request may specify which documents to use for certain sections of the content item. For example, as depicted at 750, the user may provide website link 1 to be used in generating a section on trends and document ABC from database X in generating the section on projections. As such, guidance may be provided for the entire content item or for specific sections of the content item by the user via the user interface of their user device.
[0107] In another embodiment, the request to generate a content item, such as a large business document or presentation using private enterprise data, may be originated by the system, as depicted at 620. In this embodiment, the control circuitry 220 and/or 228 may monitor the user's communications, user's tasks, action items from meeting minutes, or a voice message received by the user from in their voicemail. Since the control circuitry 220 and/or 228 may have access, or be provided access, to all such data communications and sources, it may use an LLM to input the data received and determine what documents, presentations, and content items are to be generated by the user. The control circuitry 220 and/or 228 may also leverage machine learning data 630 to determine user patterns and what documents need to be generated, e.g. the control circuitry may determine that its currently the month of December and based on user pattern, the user usually generates an annual report at this time. The control circuitry 220 and/or 228 may also determine what documents are to be generated based on the user's job function 640 or assigned tasks 650. The control circuitry 220 and/or 228 may also determine from the LLM, what information is needed to generate such a document. Based on such information, the control circuitry 220 and/or 228 may provide the recommendation for the user's selection on what documents are to be generated. If the user approves the selection, then the processes of
[0108] In yet other embodiments, the system may automatically suggest sources to be used in generating the content item based on sources previously accessed or browsed by the user. For example, if the user was browsing an article on the website, which may be related to the content item being generated, such article may be suggested for use in generating the content item. The system may seek user approval prior to using such a previously accessed or browsed. Likewise, emails, text messages, etc. may also be used for generating some portions of the content item.
[0109]
[0110] In some embodiments, a user interface 820, associated with the user making a request to generate a content item, may provide the template to the template generator 830. In other embodiments, the template may be automatically machine generated 820 based on description received from the user interface 810, an LLM recommendation, or other sources.
[0111] If the user provided template is determined to be complete, then the process may move to block 860 where the final template may be generated. However, if a determination is made that the user provided template is either incomplete or can be further enhanced, then the template generator 830 may analyze the user provided template and edit or update the template as needed. A determination of whether the template is incomplete or can be further enhanced may be based on results from an LLM when the template is used as an input to obtain an answer. At 840, once the template is generated by the template generator 830, it may be verified using verification module 850.
[0112] In the embodiments where the template is automatically machine generated 820, it may be generated based on description received from the user or other sources. For example, a query may be made to the user requesting information that can be used in automatically generating the template. An example of such a query, which may ask the user to upload a document, is provided in
[0113] The template generator 830 may generate the template, which includes a table of contents with a plurality of headings and subheadings for each section and subsection in the table of contents. One example of a template that includes nested layers of sections and subsections is depicted in
[0114] Once the template is generated it may be transmitted, as depicted as 840, to a verification module at 850. The verification module 850 may communicate with the user interface (or a user device associated with the user) to determine whether the generated template requires any changes. The user, via the user interface 810, may provide their changes on a layer by layer or a section by section or subsection by subsection basis. Once the verification is completed, a final template may be generated at 860.
[0115]
[0116] In some embodiments, the system may also ask a specific question to the user in the query. The answer to the specific question may then be factored in when generating the template. Although a few examples of different sections are shown in this query, the embodiments are not so limited and other types of queries may also be made using the query form. For example, in some embodiments, the system may query the user and provide suggested answers for the user's selection. The user selection of the suggested answers may be factored in when generating the template.
[0117]
[0118] In some embodiments, as depicted in
[0119]
[0120] In some embodiments, the control circuitry 220 and/or 228 may use an LLM to determine which sections to create and how many layers of nested subsections to create for generating a content item. The LLM may base its determination on several factors, including the type and amount of data available and authorized for user access.
[0121] In some embodiments, the template and the data populated in the template may be dependent on which user requests the generation of the content item. In this embodiment, different tiers of access levels may be associated with different tiers of employees based on their job titles, such as a manager having authorized access to a higher level of private data/data items than an associate or a contractor. Private data associated with the highest level of access to confidential and proprietary enterprise data and may be reserved for employees with highest level of clearance to access such authorized data, such as the CEO or C-suite employees, and may not be made available to employees with lower tier of access. Further proprietary enterprise data relevant to one department may not be authorized to be accessible by another employee whose job function does not relate to such a department. As such, in some embodiments, both identity of the user and the enterprise may be used in determining which data items from the data sources to use for generating the semantic graph. Accordingly, the semantic graph may be different for each user, employees, etc.
[0122] Since data only from only those data sources for which the user is authorized access may be used in generating the semantic graph, all the pieces, such as the semantic graph, the template, and the content item generated may be customized to each user based on their authorized level of access to data.
[0123] Furthermore, the semantic graph, the template, and the content item generated may also be customized to the enterprise. Since each enterprise has different types of data, different locations of data storage, and different strategy of data completion and storage, including different approaches to writing styles, writing strategy, additional sections to include in a document, etc., the semantic graph, the template, and the content item generated may be specific to the enterprise based on all their restrictions and preferences.
[0124]
[0125] In some embodiments, once a template is finalized, a search query may be made at block 1210 for each section in the template to the semantic graph 1220. The order of the search query may be based on the hierarchical order of the sections and subsections in the generated template. In one embodiment, as described earlier, the search query may start from the deepest and most nested layer or subsection in the generated template. For example, as depicted in
[0126] The search query for the selected section or sections may be sent to the semantic graph 1220. The semantic graph information and the search query information may both be fed into a generation model 1230. The generation model, guided by the search query, may leverage the semantic graph (which may also be generated based on leveraging an LLM) to determine which data to obtain for the section that is to be written. Since the semantic graph may index the data to the data sources where such data is stored, the generation model may leverage the semantic graph and obtain the indexed data that is relevant to the current section that is to be written from the data source. Once the data is obtained, the generation model may perform a section write up at 1240. The order of writing to the section may mirror the order of the search query. Using the earlier example where a search query was made for both sections in layer 4 (section 1.1.1.1 and 1.1.1.2) to the semantic graph, at block 1240 the generation model may write in parallel and simultaneously to both sections 1.1.1.1 and 1.1.1.2. In other words, the system may Parallelize the data calls made to the semantic graph for independent sections in the template when they are on a same layer.
[0127] At block 1250, the generation model may write to the content item, such as a document, presentation, slide, excel, or another type of content item. The written section may then be displayed on a display of a user interface 1260 to the user. The user may then provide feedback for the written section using the user interface. Some examples of providing feedback are depicted in
[0128] Referring to block 1270, once feedback to the section is provided, the feedback may be used by the search query to once again search the semantic graph based on the received feedback. In doing so, the system may perform status management 1280 to maintain the previous status. In other words, the status of what has already been built and written may be maintained and only the change that is needed based on the feedback may be made. By maintaining status, the system may save computing resources and time that would otherwise be used to regenerate the entire section or the entire content item.
[0129] The dynamic and real-time technique of providing per layer feedback and regenerating the section, and any other data or sections that rely on the feedback, may be used to provide feedback on multiple sections at a time. Unlike chatbots that can only take on feedback at a time, the embodiments may allow multiple feedbacks for a same section or for several sections at a time, or within a short duration. For example, a user may provide feedback for 5, 10, 60, or any number of sections within seconds and receive an updated output that incorporates the feedback.
[0130] The process of performing the search query on a layer-by-layer basis may be repeated until all the sections in the content item are written. As such, a coherent content item, which may be several pages, such as 5, 10, 1000, or more pages, that is logically presented and correlated (and cross-referenced as needed) section by section may be generated.
[0131] In some embodiments, the bottoms up approach used may allow the system to write a broader and more explanatory section that precedes the written section. For example, if the deepest nested leaf/bottom most nested layer/most fine-grained subsection written is section A.1 then the section above, which may be Section A, may be abstracted on a higher level than section A.1. In other words, Section A may be a higher-level summary of which further details may be provided in subsection A.1. For example, if subsection A.1 describes the maximum number of days an employee can take leave, the section above, which is Section A may lay the groundwork for section A.1 and as such describe the leave policy.
[0132]
[0133]
[0134] In one embodiment, feedback to rewrite may be a section or a subsection of the generated content item may be either a) selection of editing suggestions, b) inputting of feedback text, or c) selecting one or more of the rewriting options presented to the user for approval.
[0135]
[0136] If a section or subsection is hovered upon, selected, or highlighted, then the control circuitry 220 and/or 228, in some embodiments, may automatically provide editing suggestions 1520. In some embodiments, the automatically provided editing suggestions may be based on determining user's preferences, prior edits, and patterns using machine learning techniques. In other embodiments, the automatically provided editing suggestions may also be based on preferences of other colleagues or the enterprise accepted policies. For example, other documents from colleagues or documents used in the enterprise may be fed into an LLM to determine colleagues and enterprise preferences, and recommendations may be made from the LLM on how the current content item is to be edited based on the inputted documents from colleagues and enterprise.
[0137] In one example, as depicted at 1520, the system provides the following editing and feedback options: Make it formal, improve text, make it longer, make it shorter, and custom. These are just some examples and any other form of suggestion may also be displayed on the user interface of the user in real time when the user's mouse, trackpad, finger, or cursor hovers over the section or subsection The user may also be able to select the custom icon and enter any feedback as desired. The system may leverage LLM models to revise the sections for which feedback is provided. The system may do so by performing status management of the previous status, using the feedback to perform a search query to the semantic graph, and use the search query and the semantic graph as input into a generation model for updating the section based on the feedback provided.
[0138] Although highlighting is used in the above embodiment to identify the section for editing, provide suggestions, and regenerate the section, other methods such as bolding the text, coloring the text, italicizing the text, or using some other form to visually distinguish the text for feedback may also be used.
[0139]
[0140]
[0141] Process 1700, as depicted in
[0142] In some embodiments, the user device 1705, at step 1, transmits a request to edit a section or a subsection of the generated content item. Although reference to a section is mentioned, the embodiments are not so limited and identified text may be a paragraph, a page, a sentence, a group of sentences, or text relating to a particular genre, such as sales data, introductory paragraph, etc.
[0143] The user device 1705, by transmitting the request, may provide feedback on how to edit the particular section or a subsection of the generated content item. The server, such as the server identified in
[0144] The request to edit from the user device 1705 may also include one or more links 1710 to one or more sources that are to be used in editing the identified text 1712. The request, in some embodiments, may include instructions to only use the source provided for editing, rewriting, and regenerating the identified text 1712. In other embodiments, request may include instructions to use the source identified as the primary source of editing the identified text 1712, however, other data, such as data leveraged by an LLM, in conjunction with the source identified may also be used for editing, rewriting, and regenerating the identified text 1712.
[0145] The source provided, via the link 1710, may be a website, a particular page on the website, an application, such as a HR or sales application (e.g., Salesforce), a database, a book, a video, a seminar or a webinar, an educational course, an excel file, any of the Microsoft office documents, a voice note, such as a voice message, an audio file, one or more text messages or a full chat conversation between two individuals, slack messages, or any other data for which a link can be provided.
[0146] Once link(s) to the data source(s) are identified, at step 2, raw data 1715 from the data source is obtained. Raw data may be all the data that the source contains. For example, if the link is to a website and the website includes several pages of data, then raw data would be the entire several pages of data from the website. To conserve storage space, such a large set of data, some portions of which may be irrelevant to the identified text, may be accessed and not actually downloaded.
[0147] Once the raw data is accessed, at step 3, it may be indexed and stored in index 1720. In some embodiments, some level of analysis may be performed prior to indexing the data. Continuing with the website of example above, the index may point to specific locations within the web page where the data is located. The index may categorize the data from the several pages of the website, such as by genre, topic, or some other category. It may also generate a semantic graph that indexes the raw data. In other examples, when the link is to an application, such as Salesforce that stores enterprise data related to sales, then all the data in the Salesforce application to which the user is allowed access may be accessed and indexed. Since some portion, or even a large portion, of the data from the Salesforce application may not be relevant to the identified text 1712 (i.e. the section which is to be edited based on the user request), only data that is relevant to the identified text 1712 may be used.
[0148] Data from the identified text, at step 4, may also be analyzed and placed into index 1720.
[0149] From the large corpus of data that is indexed 1720, i.e. data from the source for which the link 1710 was provided, in some embodiments, at step 5, data from the source that is relevant to the identified text 1712 may be used as input into LLM 1730. The process to identify relevant data from the source for the identified section 1725, at step 5, from the index may include indexing both the raw data from the source and the data from the identified text. In some embodiments, both the raw data from the source and the data from the identified text may be categorized, such as by topic, genre, or some other manner. A determination may be made if indexed data associated with the raw data from the source and indexed data from the identified text match in some manner, such as a match of a common category, topic, genre, etc. For example, one of the data items from the indexed data associated with the raw data from the source and one of the indexed data from the identified text match may both relate to weather in Silicon Valley. As such, the indexed data associated with the raw data from the source that relates to weather in the Silicon Valley may be determined to be relevant to the identified text.
[0150] In some embodiments, data from the raw data associated with the source that has been determined to be relevant to the identified text may be inputted into the LLM 1730. The process of indexing both the raw data from the source and the data from the identified text and determining data from the source relevant to indexed data may be a first pass at narrowing the data set from the large corpus of data from the source to a narrower more relevant set. In other words, it may be a high level or first pass attempt to narrow raw source data into relevant categories. Although determining relevant data for identified text 1725 by matching index categories has been described above for step 5, the embodiments are not so limited. Other techniques to obtain or identify relevant data from the index that can be used as input into the LLM 1730 may also be used. For example, once raw data is indexed, a model may be used to eliminate data that does not relate to any topics of the identified text. For example, the identified text 1712 that is to be edited may relate to a topic of top universities, as depicted at 1950 in
[0151] At step 7, the text identified 1712 to be edited may also be inputted into the LLM 1730. The LLM may use the inputted identified text 1712 to generate specific and targeted queries to the index. For example, the LLM may generate a query for each topic or concept described in the identified text and query the index 1720 to identify a refined narrow subset of data that is relevant to the topics and concepts used in the query.
[0152] The LLM 1730, using the relevant data 1725 obtained from the index and the identified text 1712 may generate K number of search queries to the index. The search queries may be based on the identified text, e.g., each segment, portion, sentence, keyword, or phrase of the identified text. In some embodiments, each query, from the K number of search queries, may be designed by the LLM to semantically determine which data from the index is relevant to a portion of the identified text 1712. For example, if the identified text 1712 contains marketing data, then the search query may be automatically designed by the system to determine a semantic match between the marketing data in the identified text and marketing data indexed in the index 1720. In another example, if a keyword in the identified text 1712 contains Stanford (as in related to Stanford University), then the search query may automatically be designed by the system to determine a semantic match between the keyword Stanford and relevant indexed data obtained from the identified source. The process may use an LLM to ensure that a semantic match with a higher level of accuracy can be made. To do so, the LLM may analyze the identified text 1712 and generate a prompt/query to search the index for data that is relevant. In the example above, since sales data generally may be too broad, the LLM may analyze the identified text 1712 for its content and context and generate a plurality of narrow and granular/fine grained search queries that are aimed at eliciting the most relevant sales related data from the index.
[0153] The process of generating search queries to the index may result in obtaining or accessing data from the identified source (e.g., via the index) that is of higher relevance to the identified text to be edited as opposed to the raw data 1715 obtained in step 2. In other words, the process of narrowing from the large corpus of data to a narrow subset of data may result in data from the identified source that is relevant for editing the identified text.
[0154] Once the narrow set of relevant data has been identified or accessed via the index, at step 9, the narrow set of data from the source that is relevant to the identified text 1712 may be used as input into LLM 1740. In some embodiments, LLM 1740 may be the same LLM as LLM 1730. In other embodiments, LLM 1730 and 1740 may be two different LLM. The LLM 1740 (and 1730) may be a large language model or a smaller language model.
[0155] In some embodiments, LLM 1740, using the narrow set of relevant data from the identified source, may apply a deep learning technique and/or other related techniques to rewrite and/or regenerate at 1750, the identified text based on the narrow set of relevant data from the identified source. In this manner, the edit to the section or subsection requested, i.e., the identified text, may be edited and rewritten and regenerated using the source provided. Accordingly, the logic, style, coherency, linguistics, and grammar, among other elements of writing, from the source may also be adopted when rewriting or regenerating the identified text.
[0156] As used in
[0157] Also as used in
[0158] In some embodiments, links 1710 and identified text may be directly inputted into the LLM 1730 instead of performing steps 2-6 (e.g. blocks 1715, 1720, and 1725). In such an embodiment, the LLM may use the identified text to perform semantic matching with the links provided and identify data from the links (e.g., the source associated with the link) that is relevant to the identified text. The relevant data identified may then be used at step 9 by LLM 1740 (or LLM 1730) to rewrite or regenerate the identified text.
[0159] In yet another embodiment, steps 5 and 6, which include identifying relevant data from the index to be inputted into the LLM may be bypassed. Instead, the index 1720 and the identified text 1712 may be directly inputted into the LLM 1730. In such an embodiment, the LLM may use the index 1720 and the identified text 1712 to perform semantic matching. The semantic matching may then result in identifying data from the index that is relevant to the identified text. The relevant data identified may then be used at step 9 by LLM 1740 (or LLM 1730) to rewrite or regenerate the identified text.
[0160]
[0161] In some embodiments, once the data is rewritten or regenerated at 1750, which is also depicted in
[0162] In some embodiments, LLM 1810 may use the rewritten or regenerated identified text 1712, e.g., the section or sub-section of the content item that was edited based on the source provided, and the entire content item as input to determine coherency. In other words, a determination may be made using the LLM 1810 whether other sections in the content item that were not edited, because of the edit, rewriting, and regeneration of one of the sections, i.e. the identified text 1712 using the source, are coherent? In addition to coherency, determinations relating to logic, style, linguistics, and grammar, among other elements of the writing may also be made. In some embodiments, coherency may include all the writing elements (e.g., logic, language, style, linguistics, grammar, etc.). The determinations made would identify whether changing one section in the content item (i.e. the section or identified text that was rewritten and regenerated) affects other sections in the content item in their coherency, logic, style, linguistics, grammar, etc.
[0163] In some embodiments, one of the goals may be to have the entire content item, the entire page on which the identified text was rewritten/regenerated, or a few sections before and after the identified text was rewritten/regenerated, flow with the identified text that was rewritten/regenerated such that the text flows and provides the feel of one coherent document, and not a plurality of disjointed sections that are written in different style, language, grammar, logic, coherency etc. As such, the LLM may evaluate for coherency, and any other writing component through process 1800, and rewrite/regenerate other sections of the content item to adjust if any such writing element discrepancies are detected.
[0164] In some embodiments, the LLM 1810 may identify which sections in the content item are not coherent with the rewritten/regenerated section. The results showing which sections are not coherent may be displayed on a user interface and an option may be provided to the user to approve modifying such sections to make them coherent. As such, using the UI, the user may approve modifying all sections in the content item to make them coherent to the rewritten/regenerated section or pick and select which sections, subsections, pages, etc., to modify to make them coherent. If multiple sections or pages are selected by the user for modification, they may be modified simultaneously and in parallel by using the LLM.
[0165] As depicted, the LLM 1810 may perform a coherency operation 1820 in which all, some, or selected sections and subsections of the content item may be edited, rewritten and regenerated to make them coherent to rewritten/regenerated sections. In some embodiments, the coherency operation may be performed on a section-by-section, node-by-node, layer-by-layer until all the sections in the content item, or all the sections approved for modifying to make them coherent, are rewritten/regenerated. In other embodiments, the coherency operation may use a bottoms-up or most fine-grained approach as described above to make all the sections in the content item, or all the sections approved for modifying, to make them coherent with the rewritten/regenerated section.
[0166] In some embodiments, the user may identify what writing component needs to be synchronized due to the rewriting/regeneration of the identified text. In other words, the user may select any one or more of style, grammar, language, or any other writing components to modify. The user may also identify a particular section for making it coherent with the edited section. The user may also identify which sections, pages, chapters of the content item to modify. In some embodiments, formulas, such as make X number of sections before and after, or Y number of pages before and after the section rewritten/regenerated coherent with the edited section may also be generated and used.
[0167] At 1830, the data made coherent (or modified for any other combination of writing components) by the LLM 1810 may be used to perform a final rewrite of the entire content item, or all the sections approved for modifying to make them coherent.
[0168] In some embodiments, the user may identify a first source for editing and a second source for its writing style. In such an embodiment, the LLM may follow the editing process as described above in obtaining content from the first source that is relevant to the section to be edited and then edit, rewrite, and/or regenerate the section using the relevant content. The LLM would then use deep learning to determine the writing style of the second content item. The LLM may then use the determined writing style of the second content item to edit, rewrite, and/or regenerate the section in the same writing style as that of the second source. The process may also be performed in parallel instead of sequentially.
[0169]
[0170] In one embodiment, text associated with each section may be displayed on the user interface 1900. The text may be expanded or minimized based on user selection. For example, the user may choose to just see the titles of each section or select the title and expand it to see the text within each section. In some embodiments, the text for each section may be shown by default and if the user desires, then the user may be able to select an option to show less.
[0171] In some embodiments, the user may select which displayed sections are to be edited. The user may select the section to be edited using their cursor, mouse, finger in a touch screen environment, or gesture to indicate which section is to be edited in accordance with a source provided. In other embodiments, the system may suggest sections to be edited and highlight, bold, italicize, or visually distinguish the section for user approval to initiate the editing process.
[0172] In some embodiments, the user may identify a source that is to be used for editing the identified text selected. The user may identify a different source for each identified text (such as each different section) displayed. For example, for Section 1 the user may identify source 1920. Source 1920 may be a link provided by the user using their user interface. The source may be to a website such as weather.com which may include data relating to weather. The source may contain weather related data not just for Silicon Valley but likely the entire United States. It may also include weather data for several countries in the world. The website may also contain breaking news relating to weather related to weather related emergencies such as hurricanes, tornadoes, floods in various parts of the world. Since the content item may relates to Silicon Valley (as referred to in the title 1900), and the section to be edited, i.e., section 1910, relates to weather and outdoor activities in Silicon Valley, a large percentage of data in the source weather.com may be irrelevant to Section 1 since it relates to weather and related news outside the Silicon Valley. As such, once the source is identified, it may undergo the process depicted in
[0173] In some embodiments, section 1930 may relate to the topic of wealth of innovation in the Silicon Valley, which may include a discussion of top companies in Silicon Valley and the wealth of innovation over the years. The companies identified in this section 1930 may include companies such as Google, Meta and Adobe that are leading the forefront of innovation in Silicon Valley. If the user wants to edit this section, the user may add any source, such as by using their user interface, that is to be used in editing this section 1930. For example, the user may add an email 1940 that the user may have received from someone either internal or external to the company for which they work or for which the content item is being written. The e-mail, for example, may include other data that relates to innovation in the Silicon Valley and may even have names of other companies that might be relevant to section 1930. Once the email has been identified as a source to edit section 1930, the control circuitry may apply the process of
[0174] In some embodiments, Section 3 (1950) may relate to the top five ranked universities in Silicon Valley. The user may identify, as one of the sources, the website of Stanford University 1960 to be used in editing section 1950. In the event that the user has not identified Stanford University, and the text in section 1950 does not indicate Stanford University (which may be in the top 5 when the content item is being generated or edited), then control circuitry via use of the LLM may determine that Stanford University is missing from the text in section 1950 and present the option to include them in the section for user approval. As such, control circuitry using an LLM may also identify missing information that it deems relevant to the section being edited and identifies sources to be used that would allow inclusion of the missing information.
[0175] In another embodiment, Section 4 (1970) may relate to job opportunities. The user may identify a group chat, a text message, or a conversation 2980 between the user and a second user in which job opportunities in the Silicon Valley may have been indicated. The control circuitry may use the source provided (i.e., the email) and run it through the process of
[0176]
[0177] In the embodiment where more than one link, which points to more than one source, is provided, a weight or a priority may be assigned to each source. For example, as depicted in
[0178] The weight for the source provided, in one embodiment, may be provided by the user device that provides the links to the sources. The user device may indicate which document is to be prioritized based on the weights provided. In one embodiment, in the event there is a conflict of content to be used between the different links provided, the LLM may give a higher preference, in accordance with the weight provided, to the document with the higher weighted source in resolving the conflict. In another embodiment, the writing style of the highest weighted document may be used by default to edit the identified text 2015. In this embodiment, although the LLM may use content from all three identified documents proportional to the weight provided, the LLM may select the writing style of one of the sources, such as the source with the highest weight for editing.
[0179] The weight for the sources provided, in another embodiment, may be automatically generated. The links, or the data indexed based on the links as described in
[0180]
[0181] In some embodiments, one of the weighting factors for the source may be associated with the date 2120 of the source. For example, if the source is outdated, too old, irrelevant due to date, or for which a date cannot be authenticated, then such a source may be weighted with a lower score as opposed to a source that is current, in the same year or month as the content item being edited, or the date of which is authenticated.
[0182] In some embodiments, one of the weighting factors for the source may be associated with relevancy 2130 of the source. For example, the source provided by the user may no longer be relevant to the current state of technology. The relevancy may depend on when the source was originally written and if advances in time or technology make the original source irrelevant or no longer applicable to current state of technology or state of conditions. If the source relates to a topic of capturing great images using a camera, and references or text in the source relates to using film technology then the source may have become obsolete because the current technology, which uses digital cameras, may be more relevant to current times. Some of the relevancy of the source may be taken into account to determine the overall weighting score for the source provided.
[0183] In some embodiments, one of the weighting factors for the source may be associated with the style 2140 of the source. For example, if the style in which the source is written does not conform to current standards or is not suitable for the enterprise, then the source may be weighted accordingly for its style.
[0184] In some embodiments, one of the weighting factors for the source may be associated with the citation 2150 of the source. Control circuitry may evaluate the number of citations to the source provided. For example, if a source has been cited over a threshold number of times, is cited by well-known articles, companies, organizations (e.g., cited in the Merriam Webster dictionary, by I.E.E.E., the White House, in well-known educational books), or has a good citation reputation, then such a source may receive a higher weighted score.
[0185] In some embodiments, one of the weighting factors for the source may be associated with its prior use 2160 or use by another employee of the same company 2170 for which the content item is being prepared. In some embodiments, the control circuitry may leverage a machine learning or an artificial intelligence algorithm to determine whether the source has been previously used by the user him/herself or by other employees of the company. Since such data may be private, the control circuitry may only search those databases and repositories within the company, or those used by the user, for which it is granted access. Source has been previously used either by the user or one or more employees of the same company, then the source may be weighted more heavily since it may have already been authenticated and commonly accepted.
[0186] In addition to the above-mentioned weighting factors, other factors 2190, such as reputation of the source 2180, awards or other accolades associated with the source, or any other factor that the user or system adds to the weighting factors may be used to evaluate the source. In some embodiments, the control circuitry 220 and/or 228 may look to other weighting factors used by other employees in the same enterprise/corporation and adopt them in weighing the current source. In some embodiments, the weighting factors used by other employees in the same enterprise/corporation may be automatically adopted and in other embodiments they may be adopted after user approval.
[0187]
[0188] In another embodiment, if the control circuitry 220 and/or 228 determines that the data relates to sales data, as depicted at 2220, then the control circuitry 220 and/or 228 may identify the primary source to be Page X of website ABC and secondary source to be Page Y of website DEF to be used as a source for editing the sales data. In one embodiment, such sources may be outside the enterprise and in another embodiment such sources may be private sources within the enterprise that may need a password or other authorization for access. The control circuitry 220 and/or 228 may also automatically set priorities, weights, and how such data is to be used, e.g. if a conflict arises, to use website ABC as primary source to override the conflict. It may also place weights on which data from which source, primary or secondary is to be used for editing the identified section. The user may also identify the finance department LLM as a source for editing the section identified.
[0189] In another example, the section identified for editing may be any section such as an introductory paragraph 2230, a recommendations section 2240 in the content item, a policies section 2250, or a projections section 2260. The user or the system may identify a single source, a primary or secondary source, or any number of sources for editing each section. The sources identified may be any source as depicted in
[0190]
[0191] In some embodiments, the user may be provided an option to edit the entire page 2320 that is visible on the user interface or the entire page on which the edited section is located.
[0192] For example, a page of the content item displayed on a user interface may include 3 sections. If one section on that page is edited and the other two sections become incoherent due to the edits, the incoherency may be more visible for a user that glances at the entire page at the same time. As such, to cure such visible incoherency, the user may be provided an option to make them coherent. In other words, the option may be to make other sections on the same page, or visible on the same page in the user interface coherent with the edited section. Accordingly, when such a selection is made, the control circuitry 220 and/or 228 may determine which sections on the same page are not coherent and utilize the LLM, such as LLM 1730 or 1740 in
[0193] In some embodiments, the user may be provided an option to edit the entire section and its subsections 2030. For example, if the section edited is Section 2, which includes subsections 2.1 and 2.2, and section 2.2 includes further subsections 2.2.1 and 2.2.2, then selection of option 2320 may edit all the nested subsections for the edited section to make them coherent with the edited section. The user may also be provided an option to edit a certain number of nested layers and not all the nested layers. Accordingly, when a selection to make the entire section and its subsections 2030 coherent is selected, the control circuitry 220 and/or 228 may determine which sections, subsection, and layers of nested sections are not coherent and utilize the LLM, such as LLM 1730 or 1740 in
[0194] In some embodiments, the user may be provided an option to edit a portion of the section based on type of data 2340. For example, if the section edited contains sales data, then the option may allow editing of all sales data that exists throughout the entire content item, throughout the page, or throughout the sections and subsections. In other words, any sales data in the content item that is related to the edited section may also be edited to make it coherent with the edited section. Such editing may provide the entire content item to have a consistent coherent message when it comes to sales data such that data that is incoherent or conflicted is edited. Accordingly, when such a selection is made, the control circuitry 220 and/or 228 may determine which sections, subsection, and layers of nested sections and various portions of the content item includes relates sales data that is not coherent and utilize the LLM, such as LLM 1730 or 1740 in
[0195] In some embodiments, the user may be provided an option to edit for coherency 2350. In other embodiments, the user may be provided an option to edit for writing style 2360. In yet other embodiments, the editing option my allow editing with respect to grammar, language, location-specific language and words (e.g., garbage in American English may be referred to as rubbish in British English or drapes in American English may be referred to as curtains in other parts of the world), tone, formal/informal, casual/serious, organization of writing, targeted audience, capitalizations, sentence structure, introduction or conclusion for each section or paragraph, or any other writing component. In other words, the user may select any of the options 1210-1240 to make it coherent for all purposes, may select such options to make them coherent for selected components of writing, or may select one or more components of writing to synchronize with options selected in 1210-1240. For example, the user may select to only make the grammar or location-specific words be synchronized for the options selected in 1210-1240.
[0196]
[0197] In some embodiments, the user interface 2400 may include a content item section 2410. The content item action may display one or more pages, sections, subsections, or a plurality of layers of nested sub-sections, of the content item. The user may be able to identify text displayed in the content item section for editing, rewriting, and regeneration.
[0198] The user interface 2400 may also display the source identified by the user or the system in the source identified section 2420. This may be the source that is to be used by the LLM, such as via the process of
[0199] The user interface 2400 may also display editing options 2430. The editing options may allow the user to select+/sections, subsections, or pages that are to be edited. For example, the user may select+/two sections that are to be edited with respect to already edited Section 7 (2460) to make the other sections coherent with Section 7 (2460). Some examples of editing options are provided in
[0200] The user interface 2400 may also display suggestions 2435 of what sources are to be used to edit the identified section, such as Section 7. The suggestions 2435 may be based on results from deep learning techniques used to analyze the section, e.g., section 7 (2460), which includes analyzing its content and context, and determining whether other articles, papers, websites, documents prepared by other colleagues of the same enterprise, or any other sources may be relevant for editing the identified section. For doing so, the control circuitry 220 and/or 228 may input the section to be edited, e.g., section 7, into an LLM. The LLM may then be used for analyzing content and context of the identified section to identify other articles, papers, books, websites, or any other sources that are either used within the enterprise or external to the enterprise that may be relevant to the section and may be used as a source for editing this section. The control circuitry 220 and/or 228 may also display on the user interface 2400, weighted scores associated with each source suggested. Such weighted scores may be computed based on the weighting factors described in
[0201] In some embodiments, the control circuitry 220 and/or 228, using an LLM and leveraging deep learning, may analyze the content and context of the identified section, e.g., section 7. For example, since section 7 (2460) relates to determining signal noise ratio (SNR) using a technique known as an RMS technique, the control circuitry 220 and/or 228 based on results from the LLM may suggest other techniques, such as the experimental method to calculate the signal to noise ratio. Such a suggestion may require the control circuitry 220 and/or 228 to use an LLM, leverage deep learning through LLM, which emulates the function of comprehending and understanding the content and context of the identified section, and then providing the source suggestions.
[0202] The user interface 2400 may also display sections in the content item that may be affected based on editing the identified section. Such affected sections may be listed in the sections affected 2440 area of the user interface. For example, if Section 7 is edited based on the source identified, then other sections such as section 12.3.2, section 9.1, and section 12.2, which may also relate to signal to noise ratio, may be affected. As such, the control circuitry 220 and/or 228 may display all those sections affected on the user interface for the user to select one or all the affected sections for making them coherent to the section edited. E.g., section 7.
[0203] The user interface 2400 may also display conflicts 2450 within the content item that may be caused due to editing of the identified section, such as Section 7. For example, the source identified, which uses experimental methods to calculate signal to noise ratio, may be used to edit, rewrite, regenerate Section 7. Based on the editing performed on Section 7, another section, such as section 12.3.2, which also discusses the same topic, i.e., signal to noise ratio, may be affected. For example, since the earlier write operation may have had both sections 7 and section 12.3.2 use the same method to calculate signal to noise ratio, e.g., using the RMS method, editing section 7 using the provided source which uses a different calculating method may make section 12.3.2 which uses the RMS may yield different results and be in conflict with the edited section 7. As such that circuitry may identify the two different methods used within the same content item for calculating the signal to noise ratio and identify conflicts between the two sections. Since both experimental methods may result different results, the user may choose to make both sections (e.g., section 7 and 12.3.2) coherent by using either the old method, which is the RMS method, or using the new method from the source identified, which is the experimental method, for all the sections that are in conflict.
[0204] In some embodiments, when such a conflict arises, the control circuitry 220 and/or 228 may provide a plurality of options on the user interface for the user to resolve the conflict. For example, the conflict resolution options provided may be to override the conflict, do not make the change, use one method to calculate the signal to noise ratio over the other method, or display both methods and identify them as conflicted (such as indicate the other method used in the different section next to the section edited). In addition to the conflict resolution options displayed in
[0205] In some embodiments, when a user selects a section to be edited using a source, the control circuitry 220 and/or 228, using LLMs may identify different topics within the section and indicate multiple sources that may be relevant in editing the identified section. For example, as described above, the control circuitry 220 and/or 228 leveraging LLMs and deep learning may determine that the section to be edited includes data relating to sales as well as engineering. It may also determine a secondary, or a minor topic, mentioned within the section, and determine whether editing of the section, including editing major and minor topics included in the section, affects other unedited sections in the content item that also include the same major and minor topics. The control circuitry 220 and/or 228 may also indicate the level of incoherency between the section not edited and the section edited, e.g., it may rate the level of incoherency on a scale of minor, medium, of high, or on a scale of 1-10 thereby allowing the user to decide whether to make the unedited and incoherent section coherent. For example, a lower level of incoherency may relate to, for example, the words or spelling being incoherent. As such, the user may choose to not edit the unedited section for coherency if the level of incoherency is minor. What constitutes the range of lower to higher level of incoherency may be determined by the user or the system.
[0206] It will be apparent to those of ordinary skill in the art that methods involved in the above-mentioned embodiments may be embodied in a computer program product that includes a computer-usable and/or -readable medium. For example, such a computer-usable medium may consist of a read-only memory device, such as a CD-ROM disk or conventional ROM device, or a random-access memory, such as a hard drive device or a computer diskette, having a computer-readable program code stored thereon. It should also be understood that methods, techniques, and processes involved in the present disclosure may be executed using processing circuitry.
[0207] The processes discussed above are intended to be illustrative and not limiting. More generally, the above disclosure is meant to be exemplary and not limiting. Only the claims that follow are meant to set bounds as to what the present invention includes. The processes and features described herein may also include, in some embodiments, the user, via a user device, may issue a query to generate a proposal for the template the user or the system has provided and a document, such as a request-for-proposal document, the user has uploaded. The query may then enter an orchestrator system (also referred to as an agent router) and be redirected to the appropriate component to create a proposal, e.g., an agent. Based on the user query, the agent may determine whether it already has a template to generate the proposal. If it already has the template, then the agent may retrieve the existing template. However, if a determination is made by the agent that a template does not exist, then the agent may generate a new template based on instructions added by the user (as a document, conversation or fallback default templates) or system, or based on an LLM recommendation. Once the template is generated, based on the template's outline of sections of the long-form-content for a proposal, an execution plan on how to get information and fill in the different set of sections of the proposal may be determined. This includes determining which sections can be filled in parallel, which needs to be added in sequence on others for e.g. sections like introduction, conclusions etc. Such a determination may be guided by an LLM. Based on the execution plan, relevant data (from different data providers) may be retrieved. This process may be performed for all the sections and subsections in the template. Once all the sections are generated, the output may be formatted according to the user or system provided guidelines. The content in all sections may be modified to ensure coherency and any redundancy may be removed.
[0208] Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.