The Intelligence Toolkit is a suite of interactive workflows for creating AI intelligence reports from real-world data sources. It helps users to identify patterns, themes, relationships, and risks within complex datasets, with generative AI (GPT models) used to create reports on findings of interest.
The project page can be found at github.com/microsoft/intelligence-toolkit. Instructions on how to run and deploy Intelligence Toolkit can be found here.
The Intelligence Toolkit aims to help domain experts make sense of real-world data at a speed and scale that wouldn't otherwise be possible. It was specifically designed for analysis of case, entity, and text data:
The Intelligence Toolkit is designed to be used by domain experts who are familiar with the data and the intelligence they want to derive from it. Users should be independently capable of evaluating the quality of data insights and AI interpretations before taking action, e.g., sharing intelligence outputs or making decisions informed by these outputs.
It supports a variety of interactive workflows, each designed to address a specific type of intelligence task:
Anonymize Case Data
generates differentially-private datasets and summaries from sensitive case records.Detect Case Patterns
generates reports on patterns of attribute values detected in streams of case records.Compare Case Groups
generates reports by defining and comparing groups of case records.Match Entity Records
generates fuzzy record matches across different entity datasets.Detect Entity Networks
generates reports on risk exposure for networks of related entities.Query Text Data
generates reports from a collection of text documents.Extract Record Data
generate schema-aligned JSON objects and CSV records from unstructured text.Generate Mock Data
generates mock records and text from a JSON schema defined or uploaded by the user.All tutorial data and examples used in Intelligence Toolkit were created for this purpose using the Generate Mock Data
workflow.
The Intelligence Toolkit was designed, refined, and evaluated in the context of the Tech Against Trafficking (TAT) accelerator program with Issara Institute and Polaris (2023-2024). It includes and builds on prior accelerator outputs developed with Unseen (2021-2022) and IOM/CTDC (2019-2020).
Additionally, a comprehensive system evaluation was performed from the standpoint of Responsible Artificial Intelligence (RAI). This evaluation was carried out utilizing the GPT-4 model. It is important to note that the choice of model plays a significant role in the evaluation process. Consequently, employing a model different from GPT-4 may yield varying results, as each model possesses unique characteristics and processing methodologies that can influence the outcome of the evaluation. Please refer to this Overview of Responsible AI practices for more information.
Intelligence Toolkit may be deployed as a desktop application or a cloud service. The application supports short, end-to-end workflows from input data to output reports. As such, it stores no data beyond the use of a caching mechanism for text embeddings that avoids unnecessary recomputation costs. No data is collected by Microsoft or sent to any other service other than the selected AI model API.
The system uses the GPT-4 model from OpenAI, either via OpenAI or Azure OpenAI APIs. See the GPT-4 System Card to understand the capabilities and limitations of this model. For models hosted on Azure OpenAI, also see the accompanying Transparency Note.
All use of Intelligence Toolkit should be consistent with this documentation. In addition, using the system in any of the following ways is strictly prohibited:
Intelligence Toolkit can be used with either OpenAI or Azure OpenAI as the generative AI API.
The Generate Mock Data
and Extract Record Data
workflows additionally use OpenAI's Structured Outputs API, which requires a gpt-4o model as follows:
gpt-4o-mini
gpt-4o-2024-08-06
before 2 October 2024, or gpt-4o
afterwardsYou can access the Settings
page on the left sidebar when running the application:
For OpenAI, you will need an active OpenAI account (create here) and API key (create here).
For Azure OpenAI, you will need an active Azure account (create here), endpoint, key and version for the AI Service (create here).
Use the diagram to identify an appropriate workflow, from the left sidebar while running the application.
%%{init: {
"flowchart": {"htmlLabels": true}} }%%
flowchart TD
NoData["<b>Input</b>: None"] --> |"<b>Generate Mock Data</b><br/>workflow"| MockData["AI-Generated Records"]
NoData["<b>Input</b>: None"] --> |"<b>Generate Mock Data</b><br/>workflow"| MockText["AI-Generated Texts"]
MockText["AI-Generated Texts"] --> TextDocs["<b>Input:</b> Text Data"]
MockData["AI-Generated Records"] --> PersonalData["<b>Input</b>: Personal Case Records"]
MockData["AI-Generated Records"] --> CaseRecords["<b>Input</b>: Case Records"]
MockData["AI-Generated Records"] --> EntityData["<b>Input</b>: Entity Records"]
PersonalData["<b>Input</b>: Personal Case Records"] ----> |"<b>Anonymize Case Data</b><br/>workflow"| AnonData["Anonymous Case Records"]
CaseRecords["<b>Input</b>: Case Records"] ---> HasTime{"Time<br/>Attributes?"}
HasTime{"Time<br/>Attributes?"} --> |"<b>Detect Case Patterns</b><br/>workflow"| CasePatterns["AI Pattern Reports"]
CaseRecords["<b>Input</b>: Case Records"] ---> HasGroups{"Grouping<br/>Attributes?"}
HasGroups{"Grouping<br/>Attributes?"} --> |"<b>Compare Case Groups</b><br/>workflow"| MatchedEntities["AI Group Reports"]
EntityData["<b>Input</b>: Entity Records"] ---> HasInconsistencies{"Inconsistent<br/>Attributes?"} --> |"<b>Match Entity Records</b><br/>workflow"| RecordLinking["AI-Matched Records"]
EntityData["<b>Input</b>: Entity Records"] ---> HasIdentifiers{"Identifying<br/>Attributes?"} --> |"<b>Detect Entity Networks</b><br/>workflow"| NetworkAnalysis["AI Network Reports"]
TextDocs["<b>Input:</b> Text Data"] ---> NeedRecords{"Need<br/>Records?"} --> |"<b>Extract Record Data</b><br/>workflow"| ExtractedRecords["AI-Extracted Records"]
TextDocs["<b>Input:</b> Text Data"] ---> NeedAnswers{"Need<br/>Answers?"} --> |"<b>Query Text Data</b><br/>workflow"| AnswerReports["AI Answer Reports"]
If you have any questions or need further assistance, you can reach out to the project maintainers at [email protected].