Report generation method and system

By using DAG concurrent execution and a sequential storage area for chapter numbers, the problem of out-of-order output of report content was solved, enabling automated collection and intelligent analysis of customer information, and improving customer insight efficiency and information transmission efficiency.

CN122431736APending Publication Date: 2026-07-21ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
ANT BLOCKCHAIN TECHNOLOGY (SHANGHAI) CO LTD
Filing Date
2026-05-06
Publication Date
2026-07-21

AI Technical Summary

Technical Problem

In customer acquisition scenarios, users need to manually collect customer information, resulting in fragmented information acquisition channels, inconsistent data quality, low integration efficiency, and an inability to grasp customer situations in a timely and accurate manner, which affects the discovery of potential cooperation needs and the establishment of intentions.

Method used

The DAG concurrent execution mechanism is adopted, and the report generation task is executed in parallel through the producer-consumer pattern. By utilizing the sequential storage area of ​​chapter numbers and the sequential detection mechanism, the report content is output in real time in chapter order.

Benefits of technology

While maintaining high concurrent execution efficiency, the report content is output in real time in an orderly manner according to the chapter order, so that users can grasp the situation of the target object in a timely and accurate manner.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122431736A_ABST
    Figure CN122431736A_ABST
Patent Text Reader

Abstract

The report generation method and system provided in the specification, in response to the target object identification, obtains the corresponding report generation task; multiple sub-tasks in the report generation task are executed concurrently, and multiple concurrent execution results corresponding to the multiple sub-tasks are generated, the multiple concurrent execution results each correspond to a preset chapter number; the multiple concurrent execution results are respectively stored in the storage location corresponding to the chapter number in the sequential storage area; starting from the first chapter number of the sequential storage area, the detection is sequentially detected, whenever the continuously increasing sequence stored from the starting number is detected, the report content corresponding to the continuously increasing sequence is output, and the starting number is updated to the next chapter number of the continuously increasing sequence, until the report content corresponding to the last chapter number is output, the detection is stopped, and the target report is generated. While maintaining high concurrent execution efficiency, the report content is output to the user in real time and in order according to the chapter order, and the user can timely and accurately master the relevant situation.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This specification relates to the technical field of computer data, and in particular to a report generation method and system. Background Technology

[0002] In various customer acquisition scenarios, users (such as sales personnel) need to comprehensively understand relevant customer information, such as the industry, revenue, equity structure, and cooperation history of a particular enterprise customer. Currently, customer information is obtained manually, which requires a significant investment of manpower and time in data acquisition, sorting, and summarizing. This results in users being unable to grasp customer situations in a timely and accurate manner, affecting the discovery of potential cooperation needs and the establishment of mixed cooperation intentions.

[0003] The background information is merely information known only to the inventor and does not imply that such information had entered the public domain before the date of this application, nor does it imply that it could be considered prior art in this disclosure. Summary of the Invention

[0004] The report generation method and system provided in this manual can ensure that users can grasp the status of target object identification in a timely and accurate manner.

[0005] Firstly, this specification provides a report generation method, comprising: receiving a target object identifier input by a user, obtaining a report generation task for a target report corresponding to the target object identifier; concurrently executing multiple subtasks in the report generation task to generate multiple concurrent execution results, each of the multiple concurrent execution results corresponding to a preset chapter number; storing the multiple concurrent execution results respectively in a sequential storage area at the storage location corresponding to the chapter number; and performing sequential detection on the sequential storage area starting from the first chapter number, and whenever a continuously increasing sequence stored starting from the starting number is detected, outputting the report content corresponding to the continuously increasing sequence, and updating the starting number to the next chapter number of the continuously increasing sequence, until the report content corresponding to the last chapter number in the sequential storage area is output and the detection stops, thereby generating the target report.

[0006] In some embodiments, the report generation task is pre-constructed as a task execution graph, where task nodes in the task execution graph represent subtasks, and edges in the task execution graph represent dependencies between different subtasks.

[0007] In some embodiments, the concurrent execution of multiple subtasks in the report generation task to generate multiple concurrent execution results includes: adding currently executable task nodes in the task execution graph to a task queue via a producer thread; and concurrently retrieving the currently executable multiple task nodes from the task queue and executing the multiple subtasks corresponding to the multiple task nodes via multiple consumer threads to generate the multiple concurrent execution results.

[0008] In some embodiments, the sequential storage area includes multiple storage locations arranged in order of the chapter number, each storage location being configured to store the task execution result corresponding to the chapter number, the task execution result including the concurrent execution result.

[0009] In some embodiments, the sequential storage area is an array data structure that supports sparse storage, and the storage location that does not store the task execution result remains empty.

[0010] In some embodiments, the chapter number is determined by the following method: obtaining a pre-constructed tree structure, wherein different chapter nodes in the tree structure represent different chapters of the target report; and performing a preorder traversal of the tree structure to generate a chapter number for each chapter node, wherein the order of the preorder traversal is the ascending order of the chapter numbers.

[0011] In some embodiments, each chapter node in the tree structure corresponds to a subtask in the report generation task, and the chapter number of each chapter node is associated with the subtask corresponding to the chapter node.

[0012] In some embodiments, the thread used to store the concurrent execution results is a consumer thread, and the sequential detection of the sequential storage area includes: performing the sequential detection through an output monitoring thread, wherein the output monitoring thread runs in parallel with the consumer thread.

[0013] In some embodiments, outputting the report content corresponding to the continuously increasing sequence includes: concatenating the report content of each storage location in the continuously increasing sequence according to the order of the chapter number to obtain the concatenated report content; and outputting the concatenated report content.

[0014] In some embodiments, receiving the target object identifier input by the user includes: receiving the object identifier in natural language form input by the user through an artificial intelligence model; displaying a list of object identifiers corresponding to the object identifier; and determining the object identifier selected by the user from the list of object identifiers as the target object identifier.

[0015] In some embodiments, the target report includes an enterprise analysis report, and the report generation task includes at least one of the following types of sub-tasks: obtaining publicly available enterprise information from public search engines; obtaining enterprise business registration information from commercial enterprise databases; obtaining internal record information from internal systems; or summarizing based on the obtained data using an artificial intelligence model.

[0016] Secondly, this specification also provides a report generation system, comprising: at least one storage medium storing at least one instruction set for implementing report generation; and at least one processor communicatively connected to the at least one storage medium, wherein when the computing device is running, the at least one processor reads the at least one instruction set and implements the report generation method described in any of the first aspects.

[0017] Thirdly, this specification also provides a computer-readable non-transitory storage medium, wherein the computer-readable non-transitory storage medium stores at least one instruction set, which, when executed by at least one processor, implements the report generation method described in any of the first aspects.

[0018] As can be seen from the above technical solutions, the report generation method and system provided in this specification concurrently execute multiple subtasks for the report generation task corresponding to the target object identifier to ensure the high efficiency of task execution. The generated concurrent execution results are stored in the sequential storage area at storage locations corresponding to chapter numbers. Starting from the first chapter number in the sequential storage area, consecutively increasing sequences in the sequential storage area are detected sequentially. Whenever a consecutively increasing sequence stored starting from the starting number is detected, the report content corresponding to that consecutively increasing sequence is output, and the starting number is updated to the next chapter number of that consecutively increasing sequence to continue detecting the next consecutively increasing sequence until the report content corresponding to the last chapter number is output, thus generating the target report corresponding to the target object identifier. Since different consecutively increasing sequences are output sequentially according to the chapter number order, the orderliness of the output can be guaranteed. At the same time, outputting the report content whenever a consecutively increasing sequence is detected ensures that the user can see the report content in real time. Therefore, the method described in this manual can ensure that the report content is output to the user in real time and in an orderly manner according to the chapter order while maintaining high concurrent execution efficiency, thereby ensuring that the user can grasp the status of the target object identification in a timely and accurate manner.

[0019] Other functions of the report generation methods and systems provided in this specification will be partially listed in the following description. The figures and examples described below will be readily apparent to those skilled in the art. The inventive aspects of the report generation methods and systems provided in this specification can be fully understood through practice or use of the methods, apparatus, and combinations described in the detailed examples below. Attached Figure Description

[0020] To more clearly illustrate the technical solutions in the embodiments of this specification, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this specification. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0021] Figure 1 A schematic diagram of a report generation environment provided according to some embodiments of this specification is shown; Figure 2 A hardware structure diagram of a computing device provided according to some embodiments of this specification is shown; Figure 3 A flowchart of a report generation method provided according to some embodiments of this specification is shown; Figure 4 A schematic diagram of a DAG provided according to some embodiments of this specification is shown; Figure 5 A schematic diagram of a DAG provided according to some embodiments of this specification is shown; Figure 6 A schematic diagram of a tree structure provided according to some embodiments of this specification is shown; and Figure 7 A schematic block diagram of a report generation method provided according to some embodiments of this specification is shown. Detailed Implementation

[0022] The following description provides specific application scenarios and requirements for this specification, intended to enable those skilled in the art to make and use the contents of this specification. Various partial modifications to the disclosed embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments and applications without departing from the spirit and scope of this specification. Therefore, this specification is not limited to the embodiments shown, but rather to the widest scope consistent with the claims.

[0023] The terminology used herein is for the purpose of describing particular exemplary embodiments only and is not restrictive. For example, unless the context clearly indicates otherwise, the singular forms “a,” “an,” and “the” as used herein may also include the plural forms. When used in this specification, the terms “comprising,” “including,” and / or “containing” mean that the associated integers, steps, operations, elements, and / or components are present, but do not exclude the presence of one or more other features, integers, steps, operations, elements, components, and / or groups, or that other features, integers, steps, operations, elements, components, and / or groups may be added to the device / method.

[0024] Considering the following description, these and other features of this specification, as well as the operation and function of the related components of the structure, and the economy of assembly and manufacture of the parts, can be significantly improved. All of these form part of this specification with reference to the accompanying drawings. However, it should be clearly understood that the drawings are for illustrative and descriptive purposes only and are not intended to limit the scope of this specification. It should also be understood that the drawings are not drawn to scale.

[0025] The flowcharts used in this specification illustrate operations implemented by a device according to some embodiments of this specification. It should be clearly understood that the operations in the flowcharts may not be implemented in a sequential order. Instead, the operations may be implemented in reverse order or simultaneously. Furthermore, one or more additional operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.

[0026] In this specification, "X includes at least one of A, B, or C" means that X includes at least A, or X includes at least B, or X includes at least C. That is, X may include only one of A, B, and C, or any combination of A, B, and C, as well as other possible content / elements. The arbitrary combination of A, B, and C can be A, B, C, AB, AC, BC, or ABC.

[0027] In this specification, unless explicitly stated otherwise, the relationships between structures can be direct or indirect. For example, when describing "A is connected to B," unless it is explicitly stated that A and B are directly connected, it should be understood that A can be directly connected to B or indirectly connected to B. Similarly, when describing "A is on top of B," unless it is explicitly stated that A is directly above B (AB is adjacent and A is above B), it should be understood that A can be directly above B or indirectly above B (AB is separated by other elements, and A is above B). And so on.

[0028] For ease of description, this manual explains the terms that will appear in the following descriptions: DAG: Directed Acyclic Graph, is a graph structure consisting of nodes and directed edges, and there are no cycles (i.e., starting from a vertex, you can return to that vertex after traversing several edges). Producer-Consumer Pattern: A classic concurrent design pattern used to solve collaboration problems in multi-threaded environments. Producer threads are responsible for generating data or tasks, while consumer threads are responsible for processing data or tasks. A buffer acts as an intermediary to decouple producers and consumers. Tree structure: a non-linear hierarchical data structure.

[0029] Before describing the specific embodiments in this specification, the overall scheme of this specification will be given as follows: Currently, users such as Business Development (BD) personnel face several problems in manually collecting customer-related information. These include: fragmented information acquisition channels requiring manual collection from multiple heterogeneous data sources; inconsistent data quality, with collected data often being disorganized and fragmented, necessitating significant time for verification and filtering; and inefficient information integration, requiring BD personnel to manually sift through and summarize scattered information, making it difficult to quickly create a complete customer profile. These issues prevent BD personnel from grasping customer situations in a timely and accurate manner, impacting the identification of potential cooperation needs and the establishment of cooperation intentions.

[0030] This manual presents an intelligent report generation method that automates the collection and intelligent analysis of customer information, improving the customer insight efficiency of business development teams and accurately identifying cooperation opportunities. Furthermore, this manual can output standardized report formats, enhancing information delivery efficiency.

[0031] In some embodiments, this specification may employ a pipeline-based serial workflow, breaking down the report generation task into linear steps (e.g., enterprise identification → data acquisition → data cleaning → analysis → output), with each step executed strictly in sequence. However, the serial approach has a long execution time and low efficiency.

[0032] In some embodiments, this specification may employ a DAG topology concurrency approach, modeling the report generation task as a DAG and utilizing the concurrent execution mechanism of the DAG to improve execution efficiency. However, the concurrent execution order of a DAG is uncertain, meaning the time order in which concurrent tasks complete is uncontrollable. When outputting report content in the order of completion, it may result in out-of-order output of the report content; for example, the report content of the later chapter might be output before the report content of the previous chapter. This prevents users from seeing logically preceding chapters (such as the overview) first, and forces them to wait until all report content is output before they can begin reading, sacrificing the user experience.

[0033] The report generation method and system provided in this manual, while maintaining high concurrent execution efficiency, achieve "calculation and sequential output" through a sequential storage area with chapter numbers and a sequential detection mechanism. This ensures that the report content is output to the user in real time and in an orderly manner according to the chapter order, which can resolve the contradiction between real-time performance and orderliness in concurrent solutions.

[0034] The report generation method provided in this manual can be applied to any scenario requiring report generation, such as generating intelligent customer analysis reports (e.g., enterprise profiling in sales support), automatically writing financial research reports (e.g., listed company analysis, credit rating), interpreting intelligent health check reports (e.g., multi-department data integration and hierarchical output), generating contract review and due diligence reports (e.g., multi-dimensional compliance analysis), equipment fault diagnosis reports (e.g., concurrent processing and sequential output of multi-sensor data), and various comprehensive assessment reports for institutions and enterprises. It is particularly suitable for real-time interactive report generation scenarios where tasks have dependencies, users expect to see preceding sections first, and there are high requirements for response time. This manual will primarily use intelligent customer analysis reports as an example to describe the report generation method.

[0035] It should be noted that the above example scenarios are just a few of the many use cases provided in this specification. The report generation method provided in this specification can be applied not only to the above scenarios but also to other scenarios. Those skilled in the art should understand that the application of the report generation method described in this specification to other use cases is also within the scope of protection of this specification.

[0036] Figure 1 A schematic diagram of a report generation environment 001 provided according to some embodiments of this specification is shown. For example... Figure 1 As shown, scenario 001 may include user 100, client 200, server 300, and network 400.

[0037] User 100 can request client 200 to generate a target report. For example, user 100 can enter a target object identifier in client 200 to request the generation of a target report corresponding to the target object identifier.

[0038] In some embodiments, the client 200 can display various interfaces for the user 100 to view and trigger, thereby achieving human-computer interaction. The triggers can be click-based, voice-based, image-based, etc. It should be noted that the user data obtained in this specification has been authorized by the user and does not involve user privacy.

[0039] In some embodiments, the report generation method can be executed on client 200. In this case, client 200 may store data or instructions for executing the report generation method described herein, and may execute or be used to execute said data or instructions. In some embodiments, client 200 may include a hardware device with data processing capabilities and the necessary programs required to drive the hardware device. Figure 1As shown, client 200 can communicate with server 300. In some embodiments, server 300 can communicate with multiple clients 200. In some embodiments, client 200 can interact with server 300 via network 400 to receive or send messages, etc. In some embodiments, client 200 may include mobile devices, tablets, laptops, built-in devices in motor vehicles or similar content, vending machines, vending cabinets, or any combination thereof. In some embodiments, the mobile device may include smart home devices, smart mobile devices, virtual reality devices, augmented reality devices, or similar devices, or any combination thereof. In some embodiments, the smart home device may include smart TVs, desktop computers, etc., or any combination thereof. In some embodiments, the smart mobile device may include smartphones, personal digital assistants, gaming devices, navigation devices, etc., or any combination thereof. In some embodiments, the virtual reality device or augmented reality device may include virtual reality headsets, virtual reality glasses, virtual reality patches, augmented reality headsets, augmented reality glasses, augmented reality patches, or similar content, or any combination thereof. For example, the virtual reality device or the augmented reality device may include smart glasses, head-mounted displays, VR, etc. In some embodiments, the built-in device in the motor vehicle may include an in-vehicle computer, an in-vehicle TV, etc. In some embodiments, client 200 may include an image acquisition device for acquiring biological images, such as a facial image of user 100. In some embodiments, the image acquisition device may be a two-dimensional image acquisition device (e.g., an RGB camera), or a combination of a two-dimensional image acquisition device (e.g., an RGB camera) and a depth image acquisition device (e.g., a 3D structured light camera, a laser detector, etc.). In some embodiments, client 200 may be a device with positioning technology for locating the position of client 200. In some embodiments, client 200 may have one or more of the following functions: NFC (Near Field Communication), WIFI (Wireless Fidelity), 3G / 4G / 5G, POS (Point of Sale) card swiping function, QR code scanning function, barcode scanning function, Bluetooth, infrared, SMS (Short Message Service), and MMS (Multimedia Message Service).

[0040] In some embodiments, client 200 may have one or more applications (APPs) installed. The APPs provide user 100 with the ability and interface to interact with the outside world via network 400. The APPs include, but are not limited to: web browser APPs, search APPs, chat APPs, shopping APPs, video APPs, financial management APPs, instant messaging tools, email clients, social media platform software, etc. In some embodiments, client 200 may have a target APP installed. The target APP is capable of executing the report generation method. In some embodiments, the target APP may be a customer analytics report agent. User 100 can trigger a report generation request through the target APP. The target APP can respond to the report generation request and execute the report generation method.

[0041] Server 300 may be a server providing various services, such as a backend server supporting the pages displayed by the target APP on client 200. In some embodiments, the report generation method may be executed on server 300. In this case, server 300 may store data or instructions for executing the report generation method described herein, and may execute or be used to execute said data or instructions. In some embodiments, server 300 may include a hardware device with data processing capabilities and the necessary programs required to drive the hardware device. Server 300 may communicate with multiple clients 200 and receive data sent by clients 200.

[0042] Network 400 serves as a medium to provide a communication connection between client 200 and server 300. Network 400 facilitates the exchange of information or data. For example... Figure 1 As shown, client 200 and server 300 can connect to network 400 and transmit information or data to each other through network 400. In some embodiments, network 400 can be any type of wired or wireless network, or a combination thereof. For example, network 400 may include cable networks, wired networks, fiber optic networks, telecommunications networks, intranets, the Internet, local area networks (LANs), wide area networks (WANs), wireless local area networks (WLANs), metropolitan area networks (MANs), public switched telephone networks (PSTNs), Bluetooth networks, ZigBee networks, near field communication (NFC) networks, or similar networks. In some embodiments, network 400 may include one or more network access points. For example, network 400 may include wired or wireless network access points, such as base stations or Internet switching points, through which one or more components of client 200 and server 300 can connect to network 400 to exchange data or information.

[0043] It should be understood that Figure 1The number of clients 200, servers 300, and networks 400 shown is merely illustrative. Depending on implementation needs, there can be any number of clients 200, servers 300, and networks 400.

[0044] It should be noted that the report generation method can be executed entirely on the client 200, entirely on the server 300, or partially on the client 200 and partially on the server 300.

[0045] Figure 2 A hardware structure diagram of a computing device 600 according to some embodiments of this specification is shown. The report generation system may be the computing device 600. The computing device 600 may execute the report generation method described in this specification. The report generation method is described in other parts of this specification. The computing device 600 may be a client device 200, a server device 300, or other computing devices, or even any combination of the above devices.

[0046] like Figure 2 As shown, the computing device 600 may include at least one storage medium 630 and at least one processor 620. In some embodiments, the computing device 600 may also include a communication port 650 and an internal communication bus 610. Additionally, the computing device 600 may include I / O components 660.

[0047] The internal communication bus 610 can connect different components, including storage medium 630, processor 620 and communication port 650.

[0048] I / O component 660 supports input / output between computing device 600 and other components.

[0049] Communication port 650 is used for data communication between computing device 600 and external sources. For example, communication port 650 can be used for data communication between computing device 600 and network 400. Communication port 650 can be a wired communication port or a wireless communication port.

[0050] Storage medium 630 may include a data storage device. The data storage device may be a non-transitory storage medium or a temporary storage medium. For example, the data storage device may include one or more of a disk 632, a read-only storage medium (ROM) 634, or a random access storage medium (RAM) 636. Storage medium 630 may store at least one instruction set for implementing the report generation method. The instructions are computer program code, which may include programs, routines, objects, components, data structures, procedures, modules, etc., that execute the report generation method provided in this specification. Storage medium 630 may also store a report generation model for implementing the report generation method. In this case, the model may be one or more instruction sets stored in storage medium 630 that execute corresponding instructions, and is executed by processor 620 in computing device 600. Alternatively, the model may be a portion of circuitry, hardware devices, or modules in computing device 600. In this case, processor 620 may store at least one set of instructions for controlling one or more of the model.

[0051] At least one processor 620 can be communicatively connected to at least one storage medium 630 and a communication port 650 via an internal communication bus 610. At least one processor 620 is used to execute the at least one instruction set described above. When the computing device 600 is running, at least one processor 620 can read the at least one instruction set and, according to the instructions of the at least one instruction set, execute the report generation method provided in this specification. Processor 620 can execute all the steps included in the report generation method. Processor 620 can be in the form of one or more processors. In some embodiments, processor 620 may include one or more hardware processors, such as a microcontroller, microprocessor, reduced instruction set computer (RISC), application-specific integrated circuit (ASIC), application-specific instruction set processor (ASIP), central processing unit (CPU), graphics processing unit (GPU), physical processing unit (PPU), microcontroller unit, digital signal processor (DSP), field-programmable gate array (FPGA), advanced RISC machine (ARM), programmable logic device (PLD), any circuit or processor capable of performing one or more functions, or any combination thereof. For illustrative purposes only, only one processor 620 is described in this specification for the computing device 600. However, it should be noted that the computing device 600 in this specification may also include multiple processors. Therefore, the operation and / or method steps disclosed in this specification may be executed by one processor as described in this specification, or they may be executed jointly by multiple processors. For example, if the processor 620 of the computing device 600 in this specification executes steps A and B, it should be understood that steps A and B may also be executed jointly or separately by two different processors 620 (e.g., the first processor executes step A, the second processor executes step B, or the first and second processors jointly execute steps A and B).

[0052] Figure 3 A flowchart of a report generation method P100 according to some embodiments of this specification is shown. As previously described, computing device 600 can execute the report generation method P100 described in this specification. Figure 3 As shown, method P100 may include: S120: In response to the target object identifier input by the user, obtain the report generation task of the target report corresponding to the target object identifier.

[0053] The computing device 600 can be equipped with applications for generating reports, such as intelligent agents. An intelligent agent can contain one or more artificial intelligence models. The intelligent agent possesses natural language understanding and interaction capabilities. In some cases, the user can input the target object identifier into the intelligent agent. Artificial intelligence models may include BERT, LLM fine-tuning, and rule-based + ML hybrid models.

[0054] The target object identifier is identification information used to uniquely identify or point to the object from which the report is generated. The target object identifier can be a company name (full name or abbreviation), a sole proprietorship name, etc.

[0055] Users can input commands in natural language. When the agent receives the command, it can extract the target object identifier and generate a corresponding target report.

[0056] In some cases, computing device 600 can allow a user to confirm a target object identifier. For example, computing device 600 can receive an object identifier in natural language form input by the user through an artificial intelligence model, display a list of object identifiers corresponding to the object identifier, and identify the object identifier selected by the user from the list of object identifiers as the target object identifier.

[0057] In this context, the artificial intelligence model might be a model within an intelligent agent. This model can recognize the user's natural language input, identifying object identifiers (such as company entity names). The model can then use these identified object names as keywords to search a knowledge base (such as a company knowledge base) to retrieve a list of object identifiers. This list might contain one or more complete company names. The computing device 600 can display this list of object identifiers through an interactive interface (such as the interface of the intelligent agent / artificial intelligence model), allowing the user to select an object identifier.

[0058] In this way, users do not need to enter the complete and accurate company name, but can express it in natural language, which lowers the input threshold; by matching with the knowledge base and confirming with the user, errors in the report content caused by entity recognition errors are avoided, thus improving accuracy; and by transforming fuzzy input into explicit selection, the convenience of natural language is retained while ensuring the determinism of the system, thus improving the interactive experience.

[0059] Report generation tasks can be pre-configured. Different types of object identifiers can correspond to different types of report generation tasks. For example, when the object identifier belongs to an enterprise, the report generation task could be to generate an enterprise analysis report; when the object identifier belongs to an individual user, the report generation task could be to generate a health checkup interpretation report, and so on.

[0060] For enterprise analysis reports, the report generation task includes at least one of the following types of sub-tasks: obtaining publicly available enterprise information from public search engines; obtaining enterprise business registration information from commercial enterprise databases; obtaining internal record information from internal systems; or summarizing based on the obtained data using an artificial intelligence model.

[0061] Public search engines refer to search systems that are open to the public and allow free or restricted access to publicly available web page information on the internet. Publicly available corporate information includes, for example, the company's strategic development, industry information, and main business operations. Strategic development includes, for instance, its mission and vision, business layout, strategic planning, official website, and annual reports. Industry information includes, for example, the industry's economic policies, trends, market share, relevant official websites, and relevant annual reports. Main business operations include, for instance, business segments, product capabilities, revenue and costs, opportunities and challenges, the official website for the main business, and the three key financial indicators.

[0062] A business database refers to a system created and maintained by a business enterprise to store, manage, and analyze business-related data. This data includes enterprise registration information such as management, controlling shareholders, beneficiaries, customer relationships, shareholding structure, and parent company information.

[0063] An internal system is a system used within the user's company to store and maintain data related to client companies. Internal records include, for example, historical cooperation records (e.g., whether the client company is a previous client of the user company), current bidding information of the client company, contact status with the client company (e.g., contact time, method and frequency, contact targets and feedback, and effectiveness evaluation), and risk assessments of the client company (e.g., internal and external risks). Here, "client company" can refer to potential client companies that the user company is currently contacting but has not yet formally partnered with.

[0064] Summarizing based on acquired data using an artificial intelligence model can refer to the following: the computing device 600 uses an artificial intelligence model to summarize, refine, and generate chapter summaries from the collected data. For example, it can summarize publicly available corporate information, corporate business registration information, and internal records, and then provide a comprehensive summary of publicly available corporate information, corporate business registration information, and internal records.

[0065] In the embodiments described in this specification, the computing device 600 can support the automatic collection, integration, and analysis of information from multi-source heterogeneous data (such as public search engines, commercial enterprise databases, and internal systems), and output analysis reports in a standard format.

[0066] Report generation tasks can be structured in various ways, such as lists and tables.

[0067] In some embodiments, the report generation task is pre-constructed as a task execution graph. A task execution graph can refer to a graphical model used to represent the relationships, execution order, or data flow between different subtasks. A task execution graph can include nodes (called task nodes) and edges. Task nodes in the task execution graph represent subtasks, and edges in the task execution graph represent dependencies between different subtasks. These dependencies can refer to execution dependencies; for example, an edge from task node A to task node B indicates that the subtask corresponding to task node A needs to be executed before the subtask corresponding to task node B.

[0068] In the embodiments of this specification, the report generation task is represented by a task execution graph, which makes the dependencies between subtasks explicit, avoiding errors or inefficiencies caused by implicit ordering; moreover, the task execution graph can automatically identify dependent subtasks, maximizing concurrent execution; and, configuration personnel can adjust the report generation task by adjusting nodes and edges without modifying the code, making the task highly configurable.

[0069] In some embodiments, the task execution graph may be a DAG (Directed Acyclic Graph).

[0070] Task nodes in a Directed Acyclic Graph (DAG) can include flow control nodes and data processing nodes. Flow control nodes include start nodes, end nodes, and decision nodes (yes / no). Data processing nodes include data acquisition nodes (such as nodes for querying business information overview) and data calculation nodes (such as basic overview sub-nodes).

[0071] Figure 4 and Figure 5 A schematic diagram of a DAG provided according to some embodiments of this specification is shown. Figure 5 yes Figure 4 A branch of China-US cooperation decision-making. For example... Figure 4 As shown, the Directed Acyclic Graph (DAG) describes the complete automated process from acquiring enterprise information to generating analytical reports. The DAG begins with a "start node" and then proceeds to "acquiring tree structure nodes." Acquiring tree structure nodes can refer to acquiring the various chapter nodes within a tree structure and the relationships between them. Of course, a DAG may not necessarily include acquiring tree structure nodes. Furthermore, based on different business dimensions, the entire process is divided into multiple parallel main branches, corresponding to different core chapters of the report, including: basic overview, business analysis, collaborative decision-making, and report generation.

[0072] The Basic Overview main branch is used to collect and display a basic profile of the client company. This main branch begins at the "Basic Overview Start Node," after which the computing device 600 can query the client company's business registration information, including specific business registration information, management, actual controller, beneficiaries, customer relationships, equity penetration, and affiliated group information. The computing device 600 can also create subsections of the Basic Overview based on the retrieved business registration information, thus ending this main branch.

[0073] The main branch of Business Analysis is used for in-depth analysis of the client company's business situation, including strategic development analysis, industry analysis, and core business analysis. In the strategic development branch, the 600 computing device can obtain information such as the client company's mission and vision, business layout, strategic planning, corporate website, and annual reports, and then summarize the strategic development based on the acquired data / information. In the industry analysis branch, the 600 computing device can obtain information such as economic policies, industry trends, market share, relevant industry websites, and relevant industry annual reports, and then summarize the industry analysis based on the acquired data / information. In the core business analysis branch, the 600 computing device can obtain information such as the client company's business segments, product capabilities, revenue and costs, opportunities and challenges, and data on the three major indicators of website and financial performance, and then summarize the core business based on the acquired data / information. This concludes the main branch of Business Analysis. Of course, within this main branch, the 600 computing device can also summarize the business analysis based on the acquired data / information, such as the strategic development summary, industry analysis summary, and core business summary.

[0074] like Figure 5 As shown, the main branch of the cooperation decision-making section is used to assess the feasibility and risks of cooperating with client companies. The computing device 600 can determine the client's identity by identifying whether the client is a historical client. If it is a historical client, it performs a business development (BD) role determination to determine if the current follow-up role is BD. If it is not a BD role, the computing device 600 can specifically record and analyze the client's outreach activities. If it is a BD role, the computing device 600 can skip the outreach process. Of course, outreach can also be unrelated to the BD role; that is, regardless of whether it is a BD role or not, the user's outreach activities with the client company can be recorded and analyzed. The computing device 600 can collect the client company's current bidding information and conduct risk assessments on the client company from both internal and external risk dimensions. The computing device 600 can then proceed to the cooperation decision-making section based on the acquired data / information, thus ending this main branch of the cooperation decision-making section. It should be noted that during any stage of the report generation task, the computing device 600 can ask the user follow-up questions, such as whether the user is a BD role or about their outreach activities with the client company.

[0075] The main branch for report generation is used to produce the report. The computing device 600 can summarize the results of all previous branches and perform comprehensive analysis through the "Comprehensive AGENT" node. Based on the results of the comprehensive analysis, it writes the target report, thereby generating a shareable target report.

[0076] Representing report generation tasks using a Directed Acyclic Graph (DAG) ensures that tasks can be topologically ordered, preventing infinite loops and guaranteeing accurate task execution. DAGs are lightweight graphs with simple data structures, low algorithm complexity, and low memory and implementation costs, making them suitable for real-time or resource-constrained systems. Of course, the task execution graph can be other types of graph structures, such as directed cyclic graphs or workflow networks.

[0077] S140: Execute multiple subtasks in the report generation task concurrently to generate multiple concurrent execution results, each of which has a preset chapter number.

[0078] The computing device 600 can execute report generation tasks through multi-threading, such as using a producer-consumer pattern to execute multiple subtasks concurrently.

[0079] In some embodiments, the computing device 600 can add currently executable task nodes in the task execution graph to the task queue through a producer thread; and concurrently retrieve the multiple currently executable task nodes from the task queue through multiple consumer threads and execute the multiple subtasks corresponding to the multiple task nodes to generate the multiple concurrent execution results.

[0080] The producer thread is used to discover currently executable task nodes and add them to the task queue. After being started, the producer thread can periodically traverse the task execution graph (such as a Directed Acyclic Graph) to filter out task nodes that have no prerequisite dependencies and can be executed immediately, such as task nodes with an in-degree of 0 that are not yet enqueued. For example, computing device 600 can maintain an array of in-degree counters. When a task node completes execution, the in-degree of its successor nodes is decremented by 1. When the in-degree of a successor node becomes 0, that successor node becomes a pending / currently executable task node. The task queue can be a thread-safe queue (such as a blocking queue).

[0081] Consumer threads are used to retrieve currently executable task nodes from the task queue and execute them. Multiple consumer threads can be started concurrently and retrieve different task nodes from the task queue. Each consumer thread can independently execute the subtask corresponding to the task node it retrieves. Each consumer thread can find the corresponding node type processor based on the node type it is responsible for and call that processor to execute the corresponding subtask. For example, a consumer thread might call one node type processor to retrieve business information and another node type processor to perform a strategic development summary / conclusion. Producer threads and consumer threads can also run concurrently.

[0082] With multiple consumer threads, the computing device 600 can process multiple independent subtasks simultaneously (such as querying "business information" and "equity structure" at the same time), instead of queuing them up as in traditional single-threaded processing, which greatly shortens the report generation time.

[0083] When the computing device 600 executes a report generation task, it can include both concurrent and serial execution, and the generated task execution results can include both concurrent and serial execution results.

[0084] Each execution result corresponds to a preset chapter number, so that each execution result can be stored according to the chapter number in the future. The chapter numbers are in ascending order. The computing device 600 can pre-establish the association between different subtasks and chapter numbers in various ways, such as storing the association in a table.

[0085] In some embodiments, the computing device 600 can establish associations between different subtasks and chapter numbers using a pre-constructed tree structure. Specifically, a tree structure is pre-constructed, and the tree structure is associated with chapter numbers, and subtasks are associated with the tree structure, thereby realizing the association between subtasks and chapter numbers.

[0086] Regarding the association between the tree structure and the chapter number, the computing device 600 can obtain a pre-constructed tree structure, in which different chapter nodes represent different chapters of the target report; perform a preorder traversal on the tree structure to generate a chapter number for each chapter node, wherein the order of the preorder traversal is the ascending order of the chapter numbers.

[0087] A tree structure represents the hierarchical structure of a report using a tree-like diagram. The tree structure serves as the ordering mechanism for the execution results of the report generation task. A tree structure can contain multiple levels of chapters.

[0088] Figure 6 A schematic diagram of a tree structure provided according to some embodiments of this specification is shown. For example... Figure 6As shown, the tree structure represents four levels of chapters. The root node represents the 0th level chapter, which can be named "Target Report" or "Enterprise Analysis Report". First-level nodes represent the first level chapters, such as the "Table of Contents" node in the diagram. Second-level nodes represent the second level chapters, including nodes such as "Basic Overview", "Business Analysis", "Cooperation Decision", and "Comprehensive Summary". Third-level nodes represent the third level chapters, including nodes such as "Summary of Business Information", "Basic Overview Section", "Strategic Development", "Industry Analysis", "Business Analysis Section", "Bidding Information", "Reaching Status", "Risk Assessment", and "Cooperation Decision" section. Level 4 nodes represent the fourth level of chapters, such as chapters on business registration information, management, actual controller, beneficiaries, customer relations, equity penetration, parent group, mission and vision, business layout, strategic planning, corporate website, annual report, strategic development summary, economic policies, industry trends, market share, industry-related websites, industry-related annual reports, internal risks, and external risks. Chapter nodes in the tree structure can also be named with directory numbers, such as "1. Basic Overview", "1.1 Summary of Business Registration Information", "1.1.1 Business Registration Information", "2. Business Analysis", "3. Cooperation Decisions", etc.

[0089] Preorder traversal is a method of traversing a tree. The order of preorder traversal is: first visit the root node, then recursively visit the left subtree (or the first subtree), and then visit the other subtrees in turn. For example, for... Figure 6 The order of the preorder traversal is as follows: Enterprise Analysis Report → Table of Contents → Basic Overview → Business Registration Information Overview → Business Registration Information → Management → ... Basic Overview Section → Business Analysis → ...

[0090] The computing device 600 can assign a unique, incrementally increasing chapter number (like an integer label) to each chapter node of the tree structure according to the preorder traversal order. The chapter number can be understood as a physical storage index, not a directory number (such as "Chapter 1" or "1.1.1"). For example, the chapter number for "Enterprise Analysis Report" is 0, for "Table of Contents" it is 1, for "Basic Overview" it is 2, for "Business Information Overview" it is 3, and so on, for "Business Analysis" it is 12, and so on. This establishes a link between the tree structure and the chapter numbers.

[0091] A tree structure provides a clear visual representation of the report's chapter structure and facilitates the assignment of chapter numbers. By assigning a chapter number to each chapter node, and ensuring that the chapter number remains unchanged regardless of when the task is completed, the challenge of maintaining output order in a concurrent execution environment can be solved. Of course, chapter numbers can also be generated in other ways, such as manually setting them; this specification does not limit this approach.

[0092] Regarding the association between subtasks and the tree structure, each chapter node in the tree structure corresponds to a subtask in the report generation task, and the chapter number of each chapter node is associated with the corresponding subtask. Subtasks can inherit the chapter number of their corresponding chapter node. This achieves the association between subtasks and chapter numbers. By associating subtasks with chapter numbers, high concurrency efficiency can be maintained while ensuring the complete structure and correct order of the final output report.

[0093] During the configuration phase, the computing device 600 can assign specific subtasks to each chapter node. Each chapter node can be found in a DAG (Directed Acyclic Graph) with a corresponding task node. For example, the chapter node "Overview of Business Information" corresponds to the task node "Query Overview of Business Information," and the chapter node "Basic Overview Section" corresponds to the task node "Basic Overview Section Node." Another example is the chapter node "Table of Contents," which corresponds to the task node "Obtain Tree Structure Nodes." After obtaining the tree structure nodes, the computing device 600 can determine the report's table of contents based on the nodes of the tree structure and the relationships between them.

[0094] The computing device 600 can add the chapter number to the data attribute of the corresponding subtask (e.g., task.sequenceNumber = 2) to establish a relationship between the two. When a subtask (e.g., a task node) enters the task queue, it can carry the associated chapter number. After execution, the task execution result can be returned along with the chapter number, which facilitates the subsequent storage of task execution results according to the chapter number.

[0095] S160: Store the multiple concurrent execution results into the storage locations corresponding to the chapter numbers in the sequential storage area.

[0096] In some embodiments, the sequential storage area includes multiple storage locations arranged in order of the chapter number, each storage location being configured to store the task execution result corresponding to the chapter number, the task execution result including the concurrent execution result.

[0097] The computing device 600 can construct an initial sequential storage area according to chapter numbers during the runtime phase (or runtime state). In the initial sequential storage area, each storage location (e.g., slot) is marked as empty (Null / Empty) or "unfilled". The sequential storage area is a fixed-length storage space where storage locations (e.g., slots) can be arranged sequentially according to chapter numbers from smallest to largest. Regardless of which subtask completes first, its execution result needs to be stored in the storage location indicated by its associated chapter number, rather than being directly output. The thread used to store task execution results is the consumer thread; that is, when the consumer thread completes a subtask, it can trigger write logic, for example, writing the task execution result to the corresponding storage location in the sequential storage area based on the chapter number carried by the task execution result. After completing the write of a subtask, the consumer thread can delete the task node corresponding to that subtask from the task queue. The sequential storage area has dynamic awareness capabilities. During the write process, unwritten storage locations remain empty or "unfilled," while written locations hold specific report fragment data.

[0098] By using sequential storage areas, this specification transforms "temporal concurrency" into "spatial order." Regardless of the difference in task execution speed, the data arrangement in the storage area strictly follows the chapter order to facilitate ordered output control.

[0099] In some embodiments, the sequential storage area is an array data structure. An array is a linear data structure. The system can initialize a fixed-length array, the length of which is equal to the total number of chapters in the report. Each element of the array can be initially set to an empty state. The array can be accessed via an index. For example, the system can directly use the chapter number as the array index and write the task execution result to the position of the corresponding index in the array. For example, the result of chapter number i is directly written to Array[i]. This writing method ensures the consistency between the physical storage location and the logical chapter order. Of course, the sequential storage area can also be other data structures, such as hash tables, linked lists, ordered dictionaries, etc., which are not limited in this specification.

[0100] In some embodiments, the sequential storage area supports sparse storage, and the storage location that does not store the task execution result remains empty.

[0101] Sparse storage refers to the ability to immediately store data (task execution results) at any index upon arrival, without waiting for other storage locations to be filled. That is, it doesn't require sequential storage based on the index order of the sequential storage area; instead, generated task execution results are stored first, followed by later generated results, thus decoupling the storage order from the index order. Sparse storage allows for states where some storage locations in a sequential storage area are filled with results while others are empty. Empty storage locations (or empty slots) can indicate that the results for the corresponding chapter number have not yet been generated. Empty storage locations can serve as interruption markers, supporting the detection of subsequent continuously increasing sequences. For example, a detection thread scans from the beginning of the array; once an "empty state" is encountered, it indicates that the continuous sequence is interrupted there.

[0102] In the embodiments described in this specification, task execution results can be randomly written to the corresponding slots in any order, without waiting for the previous slots to be filled. This avoids the blocking problem caused by storing in indexed order and fully utilizes the concurrency capability. Moreover, through the design of having empty slots, the system can naturally adapt to the uncertainty of task completion time during concurrent execution.

[0103] S180: Starting from the first chapter number of the sequential storage area, perform sequential detection on the sequential storage area. Whenever a continuously increasing sequence stored starting from the starting number is detected, output the report content corresponding to the continuously increasing sequence and update the starting number to the next chapter number of the continuously increasing sequence. Stop detection when the report content corresponding to the last chapter number in the sequential storage area is output, thereby generating the target report.

[0104] The computing device 600 can launch a new asynchronous thread to control the sequential output of reports. In some embodiments, sequential detection is performed through an output monitoring thread. This decouples the report output order from the task execution order, delegating control of the output order to an independent output monitoring thread, rather than a consumer thread or producer thread. In some embodiments, the output monitoring thread runs in parallel with the consumer thread. That is, storage in the sequential storage area and sequential detection can be performed concurrently, improving report generation efficiency and resource utilization.

[0105] Sequential detection can refer to detecting data starting from the current starting number and continuously moving forward from the current number; it can also refer to detecting different consecutively increasing sequences in a sequential order. Sequential detection can be continuous, for example, a computing device 600 continuously scans the sequential storage area to determine if there exists a continuous and completed sequence of content starting from the currently desired output chapter number.

[0106] A continuously increasing sequence can include several storage locations for stored task execution results, with consecutive chapter numbers. These locations can be one or more. It should be noted that the "task execution results" stored in the storage locations can refer to unprocessed raw output data, which can be semi-structured or unstructured data, such as JSON data or raw strings. The "report content" corresponding to the output continuously increasing sequence can refer to structured text that can be directly presented to the user after processing the "task execution results" (such as assembly, formatting, etc.).

[0107] Sequential detection can start from the first chapter number. That is, using the first chapter number as the starting number, it checks if a continuously increasing sequence stored in the sequential storage area exists, beginning at the starting number. If such a sequence is detected, the corresponding report content is output; otherwise, no output is output, and the detection continues. For example, if the first chapter number is 0, and the consecutive storage locations for chapter numbers 0, 1, and 2 are all filled, but the storage location for chapter number 3 is not filled, then it is determined that a continuously increasing sequence from 0 to 2 has been detected, and the corresponding report content can be output.

[0108] After outputting the first consecutively increasing sequence, the system can update the starting number to the next chapter number after the last number of the first consecutively increasing sequence. For example, update it to 3. Then, it continues to check if there is a consecutively increasing sequence stored in the sequential storage area starting from the new starting number; if it is detected, it is output; otherwise, it is not output. For example, if the results are stored at chapter numbers 6 and 7, but the storage location for chapter number 3 is still empty, the report content corresponding to 6 and 7 will not be output, but the system will wait for the content of chapter number 3; when a consecutively increasing sequence starting from chapter number 3 is detected, such as the sequence 3-4, the report content corresponding to that sequence will be output.

[0109] After outputting the second consecutively increasing sequence, the system can continue to update the starting number and start the detection from the new starting number. This process is repeated until the report content for the last chapter number is output, at which point the detection ends. At this point, the entire target report is output.

[0110] In some embodiments, for report content corresponding to a continuously increasing sequence, the computing device 600 can concatenate the report content of each storage location in the continuously increasing sequence according to the order of the chapter number to obtain the concatenated report content; and output the concatenated report content.

[0111] The term "concatenation" refers to combining the results of various scattered task executions into a logically coherent and structurally complete report segment, arranged according to chapter numbers. Concatenation may include sequentially joining strings, such as linking the report content from different storage locations into a new string based on chapter numbers. Concatenation may also include adding separators, i.e., inserting predefined separators (such as line breaks, page breaks, and chapter markers) between report content from two storage locations to ensure correct formatting. The concatenated report content can be immediately displayed on the interactive interface.

[0112] By splicing the data together and outputting it all at once, the logical coherence and readability of the output content can be ensured. What users see is not a bunch of disordered, scattered pieces of information, but a report that is presented step by step in the order of the table of contents and has coherent content.

[0113] Figure 7 A schematic block diagram of a report generation method according to some embodiments of this specification is shown. The report generation method can be divided into a configuration state (configuration phase) and a runtime state (running phase). In the configuration state, a Directed Acyclic Graph (DAG) (control execution) and a tree structure (control output order) can be configured. In the runtime state, the computing device 600 can consume the DAG and the tree structure to generate the target report.

[0114] like Figure 7 As shown, in its runtime phase, the computing device 600 can obtain the DAG configured in the configuration phase, call the producer thread to add task nodes with an in-degree of 0 from the DAG to the task queue, and call three consumer threads to concurrently pull task nodes from the task queue, execute task nodes, and delete task nodes after execution. Completed task nodes can be deleted from the task queue or from the DAG. In its runtime phase, the computing device 600 can obtain the tree structure configured in the configuration phase and construct a sequential storage area based on the tree structure. For example, it maps the generated chapter numbers of the tree structure to the identifiers (such as indexes) of each slot in the sequential storage area. Figure 7 As shown, the numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 on the sequential storage area are used to identify their respective slots. The concurrent execution results of the three consumer threads can be stored in their respective slots.

[0115] The computing device 600 can initialize a sliding window to cache generated but not yet output consecutively increasing sequences. The length of the sliding window can be fixed or dynamically adjustable. When the computing device 600 sequentially checks the sequential storage area, whenever a consecutively increasing sequence starting from a starting number is detected, the sequence can be cached in the sliding window, and the corresponding report content can be output. Alternatively, the computing device 600 can first cache the report content corresponding to the current starting number in the sliding window, wait for the next slot to be filled, cache the content in the sliding window after the next slot is filled, and then output the report content of the consecutively increasing sequence starting from the current starting number. Different consecutively increasing sequences are displayed in chapter order, enabling node-level granular output rather than full report-level output, achieving a real-time interactive effect of "generating and outputting in an orderly manner."

[0116] In summary, the report generation method and system provided in this specification resolve the contradiction between real-time performance and ordered output in report generation by combining DAG concurrent execution with tree-structured output control. Through tree-structure-driven chapter number binding and continuous detection of continuously increasing sequences, "concurrent execution and ordered output" are achieved. That is, although tasks are executed concurrently, each execution result is written to a pre-allocated fixed slot determined by the preorder traversal of the tree structure. Output is only triggered when "continuously filling from the beginning," ensuring that users always see the first chapter, then the second, and so on, with logical coherence, overcoming the problem of disordered DAG output. Furthermore, it can automatically integrate multi-source heterogeneous data, improving information consistency and reducing manual verification time. It also ensures that report content is output in ordered segments, allowing users to view it in real time without waiting for the complete report to be generated. Moreover, the standardized report format improves information transmission efficiency by 3 times, promoting the establishment of cooperation intentions and providing an effective technical path for intelligent sales support systems in the context of digital transformation.

[0117] The report generation method and system provided in this manual retain the advantages of high concurrency in DAG, significantly reducing overall processing time by 60-80%, supporting preliminary analysis output within 1-5 minutes, and greatly improving the response speed of BD teams. For example, if the number of execution nodes in the overall structure of a report (or paper) (such as the number of task nodes in the DAG) is close to 70, and if the pipeline is used for serial execution and output, that is, the order of the tree structure display nodes (chapter nodes) and the execution nodes of the DAG are consistent and executed serially, it generally takes about 10 minutes to complete all nodes. However, if a DAG + tree structure + sequential storage area model is adopted, the execution node order and the display node order are separated. The report chapters are instantiated by DAG, and the topological sorting node list of DAG is executed through a single producer and multiple consumer model. Execution nodes without dependencies can be executed in parallel (such as "equity query" and "revenue analysis"), which can reduce the total time consumption. Then, the execution results of each execution node are written to the sequential storage area of ​​the corresponding slot. Finally, a separate thread reads the data of consecutive prefixes to ensure that the user sees the expected report chapter content. It generally takes 3 minutes to complete all nodes, thereby reducing the overall processing time by 60-80%.

[0118] This specification, in another aspect, provides a non-transitory storage medium storing at least one set of executable instructions for performing a report generation method. When the executable instructions are executed by a processor, they instruct the processor to implement the steps of the report generation method P100 described herein. In some possible embodiments, various aspects of this specification can also be implemented as a program product comprising program code. When the program product is run on a report generation system, the program code causes the report generation system to perform the steps of the report generation method P100 described herein. The program product for implementing the above method may employ a portable compact disc read-only memory (CD-ROM) containing program code and may run on a report generation system. However, the program product of this specification is not limited thereto. In this specification, a readable storage medium may be any tangible medium containing or storing a program that may be used by or in conjunction with an instruction execution device. The program product may employ any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media include: electrical connections having one or more wires, portable disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. The computer-readable storage medium may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable storage medium may also be any readable medium other than a readable storage medium that can send, propagate, or transmit a program for use by or in connection with an instruction execution device, apparatus, or apparatus. The program code contained on the readable storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof. Program code for performing the operations described herein can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the report generation system, partially on the report generation system, as a standalone software package, partially on the report generation system and partially on a remote computing device, or entirely on a remote computing device.

[0119] The foregoing has described specific embodiments of this specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims may be performed in a different order than that shown in the embodiments and may still achieve the desired result. Furthermore, the processes depicted in the drawings do not necessarily require a specific or sequential order to achieve the desired result. In some embodiments, multitasking and parallel processing are possible or may be advantageous.

[0120] In summary, after reading this detailed disclosure, those skilled in the art will understand that the foregoing detailed disclosure is presented by way of example only and is not restrictive. Although not explicitly stated herein, those skilled in the art will understand that this specification requires various reasonable changes, improvements, and modifications to the embodiments. These changes, improvements, and modifications are intended to be made by this specification and are within the spirit and scope of the exemplary embodiments described herein.

[0121] Furthermore, certain terms in this specification have been used to describe embodiments of this specification. For example, "an embodiment," "an embodiment," and / or "some embodiments" mean that a particular feature, structure, or characteristic described in connection with that embodiment may be included in at least one embodiment of this specification. Therefore, it is to be emphasized and understood that two or more references to "an embodiment" or "an embodiment" or "alternative embodiment" in various parts of this specification do not necessarily refer to the same embodiment. Moreover, specific features, structures, or characteristics may be suitably combined in one or more embodiments of this specification.

[0122] It should be understood that in the foregoing description of the embodiments in this specification, various features are combined in a single embodiment, drawing, or description for the purpose of simplifying the description and aiding in the understanding of a feature. However, this does not mean that the combination of these features is necessary, and those skilled in the art may readily identify some of the devices as separate embodiments when reading this specification. That is, the embodiments in this specification can also be understood as an integration of multiple secondary embodiments. It is also valid when each secondary embodiment contains fewer than all the features of a single foregoing disclosed embodiment.

[0123] Every patent, patent application, publication of a patent application, and other material such as articles, books, specifications, publications, documents, articles, etc., cited herein, except for any related historical prosecution documents, any identical ones that may be inconsistent with or conflict with this document, or any identical historical prosecution documents that may have a limiting effect on the widest scope of the claims, may be incorporated herein by reference and used for all purposes now or hereafter in connection with this document. Furthermore, in the event of any inconsistency or conflict between the description, definition, and / or use of terms related to any included material and those related to this document, the terminology used herein shall prevail.

[0124] Finally, it should be understood that the embodiments disclosed herein are illustrative of the principles of the embodiments described in this specification. Other modified embodiments are also within the scope of this specification. Therefore, the embodiments disclosed in this specification are merely examples and not limitations. Those skilled in the art can implement the applications described in this specification using alternative configurations based on the embodiments in this specification. Therefore, the embodiments in this specification are not limited to the embodiments precisely described in the applications.

Claims

1. A report generation method, comprising: Receive the target object identifier input by the user and obtain the report generation task of the target report corresponding to the target object identifier; Multiple subtasks in the report generation task are executed concurrently to generate multiple concurrent execution results, each of which has a preset chapter number. The results of the multiple concurrent executions are stored in the corresponding chapter number storage locations in the sequential storage area. as well as Starting from the first chapter number of the sequential storage area, the sequential storage area is checked sequentially. Whenever a continuously increasing sequence stored starting from the starting number is detected, the report content corresponding to the continuously increasing sequence is output, and the starting number is updated to the next chapter number of the continuously increasing sequence. The checking stops when the report content corresponding to the last chapter number in the sequential storage area is output, thereby generating the target report.

2. The method as described in claim 1, wherein, The report generation task is pre-constructed as a task execution graph, where task nodes represent subtasks and edges represent dependencies between different subtasks.

3. The method of claim 2, wherein, The concurrent execution of multiple subtasks in the report generation task generates multiple corresponding concurrent execution results, including: The producer thread adds currently executable task nodes from the task execution graph to the task queue; and Multiple consumer threads concurrently retrieve the currently executable task nodes from the task queue and execute the multiple subtasks corresponding to the multiple task nodes to generate the multiple concurrent execution results.

4. The method of claim 1, wherein, The sequential storage area includes multiple storage locations arranged in the order of the chapter numbers. Each storage location is configured to store the task execution results corresponding to the chapter number, and the task execution results include the concurrent execution results.

5. The method of claim 4, wherein, The sequential storage area is an array data structure that supports sparse storage. The storage location that does not store the task execution result remains empty.

6. The method of claim 1, wherein, The chapter number is determined using the following method: Obtain a pre-constructed tree structure, wherein different chapter nodes in the tree structure represent different chapters of the target report; and Perform a preorder traversal on the tree structure to generate a chapter number for each chapter node, wherein the order of the preorder traversal is the ascending order of the chapter numbers.

7. The method of claim 6, wherein, Each chapter node in the tree structure corresponds to a subtask in the report generation task, and the chapter number of each chapter node is associated with the subtask corresponding to the chapter node.

8. The method of claim 1, wherein, The thread used to store the concurrent execution results is a consumer thread, and the sequential detection of the sequential storage area includes: The sequential detection is performed by an output monitoring thread, which runs in parallel with the consumer thread.

9. The method of claim 8, wherein, The output of the report content corresponding to the continuously increasing sequence includes: The report content from each storage location in the continuously increasing sequence is concatenated according to the chapter number order to obtain the concatenated report content; and Output the spliced ​​report content.

10. The method of claim 1, wherein, The target object identifier received from user input includes: The object identifier in natural language form input by the user is received through an artificial intelligence model; Display the list of object identifiers corresponding to the object identifier; and The object identifier selected by the user from the list of object identifiers is determined as the target object identifier.

11. The method of claim 1, wherein, The target report includes an enterprise analysis report, and the report generation task includes at least one of the following types of sub-tasks: Obtain publicly available information about companies from public search engines; Obtain business registration information from commercial enterprise databases; Retrieve internal records from the internal system; or Summarize based on the acquired data using an artificial intelligence model.

12. A report generation system, comprising: At least one storage medium stores at least one instruction set for implementing report generation; as well as At least one processor is communicatively connected to the at least one storage medium. When the device is running, the at least one processor reads the at least one instruction set and implements the method of any one of claims 1-11.

13. A computer-readable non-transitory storage medium, wherein, The computer-readable non-transitory storage medium stores at least one set of instructions, which, when executed by at least one processor, implement the method as described in any one of claims 1-12.