intelligence-toolkit


Nameintelligence-toolkit JSON
Version 0.0.1 PyPI version JSON
download
home_pageNone
SummaryInteractive workflows for generating AI intelligence reports from real-world data sources using GPT models
upload_time2024-11-01 21:59:35
maintainerNone
docs_urlNone
authorDayenne Souza
requires_python<3.13,>=3.11
licenseMIT
keywords ai data analysis reports workflows
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Intelligence Toolkit

<div align="left">
  <a href="https://pypi.org/project/intelligence-toolkit/">
    <img alt="PyPI - Version" src="https://img.shields.io/pypi/v/intelligence-toolkit">
  </a>
  <a href="https://github.com/microsoft/intelligence-toolkit/issues">
    <img alt="GitHub Issues" src="https://img.shields.io/github/issues/microsoft/intelligence-toolkit">
  </a>
  <a href="https://github.com/microsoft/intelligence-toolkit/LICENSE">
    <img alt="GitHub Issues" src="https://img.shields.io/github/license/microsoft/intelligence-toolkit">
  </a>
</div>

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](https://platform.openai.com/docs/models/)) used to create reports on findings of interest.

The project page can be found at [github.com/microsoft/intelligence-toolkit](https://github.com/microsoft/intelligence-toolkit/) or [aka.ms/itk](https://aka.ms/itk).

Instructions on how to run and deploy Intelligence Toolkit can be found [here](https://github.com/microsoft/intelligence-toolkit/blob/main/DEVELOPING.md).

## Transparency FAQ

### What can Intelligence Toolkit do?

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:

- **Case Data**
  - Units are structured records describing individual people.
  - Analysis aims to inform *policy* while preserving *privacy*.
- **Entity Data**
  - Units are structured records describing real-world entities.
  - Analysis aims to understand *risks* represented by *relationships*.
- **Text Data**
  - Units are collections or instances of unstructured text documents.
  - Analysis aims to retrieve *information* and summarize *themes*.

### What are Intelligence Toolkit's intended uses?

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:

- **Case Intelligence Workflows**
  - [`Anonymize Case Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/anonymize_case_data/README.md) generates differentially-private datasets and summaries from sensitive case records.
  - [`Detect Case Patterns`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/detect_case_patterns/README.md) generates reports on patterns of attribute values detected in streams of case records.
  - [`Compare Case Groups`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/compare_case_groups/README.md) generates reports by defining and comparing groups of case records.
- **Entity Intelligence Workflows**
  - [`Match Entity Records`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/match_entity_records/README.md) generates fuzzy record matches across different entity datasets.
  - [`Detect Entity Networks`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/detect_entity_networks/README.md) generates reports on risk exposure for networks of related entities.
- **Text Intelligence Workflows**
  - [`Query Text Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/query_text_data/README.md) generates reports from a collection of text documents.
  - [`Extract Record Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/extract_record_data/README.md) generate schema-aligned JSON objects and CSV records from unstructured text.
  - [`Generate Mock Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/generate_mock_data/README.md) generates mock records and texts 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`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/generate_mock_data/README.md) workflow.

### How was Intelligence Toolkit evaluated?

The Intelligence Toolkit was designed, refined, and evaluated in the context of the [Tech Against Trafficking (TAT)](https://techagainsttrafficking.org/) accelerator program with [Issara Institute](https://www.issarainstitute.org/) and [Polaris](https://polarisproject.org/) (2023-2024). It includes and builds on prior accelerator outputs developed with [Unseen](https://www.unseenuk.org/) (2021-2022) and [IOM](https://www.iom.int/)/[CTDC](https://www.ctdatacollaborative.org/) (2019-2020). See this [launch blog](https://www.microsoft.com/en-us/research/blog/empowering-ngos-with-generative-ai-in-the-fight-against-human-trafficking/) for more information.

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](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/overview) for more information.

### What are the limitations of Intelligence Toolkit? How can users minimize the impact of these limitations when using the system?

- The Intelligence toolkit aims to detect and explain patterns, relationships, and risks in data provided by the user. It is not designed to make decisions or take actions based on these findings.
- The statistical "insights" that it detects may not be insightful or useful in practice, and will inherit any biases, errors, or omissions present in the data collecting/generating process. These may be further amplified by the AI interpretations and reports generated by the toolkit.
- The generative AI model may itself introduce additional statistical or societal biases, or fabricate information not present in its grounding data, as a consequence of its training and design.
- Users should be experts in their domain, familiar with the data, and both able and willing to evaluate the quality of the insights and AI interpretations before taking action.
- The system was designed and tested for the processing of English language data and the creation of English language outputs. Performance in other languages may vary and should be assessed by someone who is both an expert on the data and a native speaker of that language.

### What operational factors and settings allow for effective and responsible use of Intelligence Toolkit?

- The Intelligence Toolkit is designed for moderate-sized datasets (e.g., 100s of thousands of records, 100s of PDF documents). Larger datasets will require longer to process and may exceed the memory limits of the execution environment.
- Responsible use of personal case data requires that the data be deidentified prior to uploading and then converted into anonymous data using the Anonymize Case Data workflow. Any subsequent analysis of the case data should be done using the anonym case data, not the original (sensitive/personal) case data.
- It is the user's responsibility to ensure that any data sent to generative AI models is not personal/sensitive/secret/confidential, that use of generative AI models is consistent with the terms of service of the model provider, and that such use incurs per-token costs charged to the account linked to the user-provided API key. Understanding usage costs ([OpenAI](https://openai.com/pricing#language-models), [Azure](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/)) and setting a billing cap ([OpenAI](https://platform.openai.com/docs/guides/production-best-practices/setting-up-your-organization)) or budget ([Azure](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/manage-costs)) is recommended.

### What data is collected?

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.

### What AI model is used?

The system uses the GPT-4 model from OpenAI, either via OpenAI or Azure OpenAI APIs. See the [GPT-4 System Card]((https://cdn.openai.com/papers/gpt-4-system-card.pdf)) to understand the capabilities and limitations of this model. For models hosted on Azure OpenAI, also see the accompanying [Transparency Note](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/transparency-note).

## Disclaimer

- Intelligence Toolkit is an AI system that generates text.
- System performance may vary by workflow, dataset, query, and response.
- Outputs may include factual errors, fabrication, or speculation.
- Users are responsible for determining the accuracy of generated content.
- System outputs do not represent the opinions of Microsoft.
- All decisions leveraging outputs of the system should be made with human oversight and not be based solely on system outputs.
- The system is only intended to be used for analysis by domain experts capable of evaluating the quality of data insights it generates.
- Use of the system must comply with all applicable laws, regulations, and policies, including those pertaining to privacy and security.
- The system should not be used in highly regulated domains where inaccurate outputs could suggest actions that lead to injury or negatively impact an individual's legal, financial, or life opportunities.
- Intelligence Toolkit is meant to be used to evaluate populations and entities, not individuals, identifying areas for further investigation by human experts.
- Intelligence Toolkit is not meant to be used as per se evidence of a crime or to establish criminal activity.

## Prohibited Uses

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:

- Pursuing any illegal purpose.
- Identifying or evaluating individuals.
- Establishing criminal activity.

## Getting Started

### Setting up the AI model

Intelligence Toolkit can be used with either OpenAI or Azure OpenAI as the generative AI API.

The [`Generate Mock Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/generate_mock_data/README.md) and [`Extract Record Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/extract_record_data/README.md) workflows additionally use OpenAI's Structured Outputs API, which requires a gpt-4o model as follows:

- `gpt-4o-mini`
- `gpt-4o`

You can access the `Settings` page on the left sidebar when running the application:

- For OpenAI, you will need an active OpenAI account ([create here](https://platform.openai.com/login)) and API key ([create here](https://platform.openai.com/account/api-keys)).

- For Azure OpenAI, you will need an active Azure account ([create here](https://portal.azure.com/)), endpoint, key and version for the AI Service ([create here](https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI)).

### Selecting the right workflow for the data and task

Use the diagram to identify an appropriate workflow, which can be opened from the left sidebar while running the application.

```mermaid
%%{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"]
```

## Diving Deeper

### NGOs

Non-profit organizations can apply for an annual Azure credit grant of up to $3,500, which can be used to set up and run an instance of the intelligence-toolkit app for your organization.

[Read more about eligibility and registration here](https://nonprofit.microsoft.com/en-us/getting-started)

### Getting started

- To start using the api, install it via pypi.

      pip install intelligence-toolkit

      # Find examples in the `example_notebooks` folder.


- To start developing, see [DEVELOPING.md](./DEVELOPING.md).
- To learn about our contribution guidelines, see [CONTRIBUTING.md](./CONTRIBUTING.md).
- For license details, see [LICENSE.md](./LICENSE.md).

If you have any questions or need further assistance, you can reach out to the project maintainers at [itkteam@microsoft.com](mailto:itkteam@microsoft.com).

## Trademarks

- This project may contain trademarks or logos for projects, products, or services.
- Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
- Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
- Any use of third-party trademarks or logos are subject to those third-party's policies.

## Privacy

See [Microsoft Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement).


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "intelligence-toolkit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.13,>=3.11",
    "maintainer_email": null,
    "keywords": "AI, data analysis, reports, workflows",
    "author": "Dayenne Souza",
    "author_email": "ddesouza@microsoft.com",
    "download_url": "https://files.pythonhosted.org/packages/28/51/afada1416161f2719c5efc518351ee93223aee00dbd961c021393a9a427e/intelligence_toolkit-0.0.1.tar.gz",
    "platform": null,
    "description": "# Intelligence Toolkit\n\n<div align=\"left\">\n  <a href=\"https://pypi.org/project/intelligence-toolkit/\">\n    <img alt=\"PyPI - Version\" src=\"https://img.shields.io/pypi/v/intelligence-toolkit\">\n  </a>\n  <a href=\"https://github.com/microsoft/intelligence-toolkit/issues\">\n    <img alt=\"GitHub Issues\" src=\"https://img.shields.io/github/issues/microsoft/intelligence-toolkit\">\n  </a>\n  <a href=\"https://github.com/microsoft/intelligence-toolkit/LICENSE\">\n    <img alt=\"GitHub Issues\" src=\"https://img.shields.io/github/license/microsoft/intelligence-toolkit\">\n  </a>\n</div>\n\nThe 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](https://platform.openai.com/docs/models/)) used to create reports on findings of interest.\n\nThe project page can be found at [github.com/microsoft/intelligence-toolkit](https://github.com/microsoft/intelligence-toolkit/) or [aka.ms/itk](https://aka.ms/itk).\n\nInstructions on how to run and deploy Intelligence Toolkit can be found [here](https://github.com/microsoft/intelligence-toolkit/blob/main/DEVELOPING.md).\n\n## Transparency FAQ\n\n### What can Intelligence Toolkit do?\n\nThe 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:\n\n- **Case Data**\n  - Units are structured records describing individual people.\n  - Analysis aims to inform *policy* while preserving *privacy*.\n- **Entity Data**\n  - Units are structured records describing real-world entities.\n  - Analysis aims to understand *risks* represented by *relationships*.\n- **Text Data**\n  - Units are collections or instances of unstructured text documents.\n  - Analysis aims to retrieve *information* and summarize *themes*.\n\n### What are Intelligence Toolkit's intended uses?\n\nThe 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.\n\nIt supports a variety of interactive workflows, each designed to address a specific type of intelligence task:\n\n- **Case Intelligence Workflows**\n  - [`Anonymize Case Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/anonymize_case_data/README.md) generates differentially-private datasets and summaries from sensitive case records.\n  - [`Detect Case Patterns`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/detect_case_patterns/README.md) generates reports on patterns of attribute values detected in streams of case records.\n  - [`Compare Case Groups`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/compare_case_groups/README.md) generates reports by defining and comparing groups of case records.\n- **Entity Intelligence Workflows**\n  - [`Match Entity Records`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/match_entity_records/README.md) generates fuzzy record matches across different entity datasets.\n  - [`Detect Entity Networks`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/detect_entity_networks/README.md) generates reports on risk exposure for networks of related entities.\n- **Text Intelligence Workflows**\n  - [`Query Text Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/query_text_data/README.md) generates reports from a collection of text documents.\n  - [`Extract Record Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/extract_record_data/README.md) generate schema-aligned JSON objects and CSV records from unstructured text.\n  - [`Generate Mock Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/generate_mock_data/README.md) generates mock records and texts from a JSON schema defined or uploaded by the user.\n\nAll tutorial data and examples used in Intelligence Toolkit were created for this purpose using the [`Generate Mock Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/generate_mock_data/README.md) workflow.\n\n### How was Intelligence Toolkit evaluated?\n\nThe Intelligence Toolkit was designed, refined, and evaluated in the context of the [Tech Against Trafficking (TAT)](https://techagainsttrafficking.org/) accelerator program with [Issara Institute](https://www.issarainstitute.org/) and [Polaris](https://polarisproject.org/) (2023-2024). It includes and builds on prior accelerator outputs developed with [Unseen](https://www.unseenuk.org/) (2021-2022) and [IOM](https://www.iom.int/)/[CTDC](https://www.ctdatacollaborative.org/) (2019-2020). See this [launch blog](https://www.microsoft.com/en-us/research/blog/empowering-ngos-with-generative-ai-in-the-fight-against-human-trafficking/) for more information.\n\nAdditionally, 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](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/overview) for more information.\n\n### What are the limitations of Intelligence Toolkit? How can users minimize the impact of these limitations when using the system?\n\n- The Intelligence toolkit aims to detect and explain patterns, relationships, and risks in data provided by the user. It is not designed to make decisions or take actions based on these findings.\n- The statistical \"insights\" that it detects may not be insightful or useful in practice, and will inherit any biases, errors, or omissions present in the data collecting/generating process. These may be further amplified by the AI interpretations and reports generated by the toolkit.\n- The generative AI model may itself introduce additional statistical or societal biases, or fabricate information not present in its grounding data, as a consequence of its training and design.\n- Users should be experts in their domain, familiar with the data, and both able and willing to evaluate the quality of the insights and AI interpretations before taking action.\n- The system was designed and tested for the processing of English language data and the creation of English language outputs. Performance in other languages may vary and should be assessed by someone who is both an expert on the data and a native speaker of that language.\n\n### What operational factors and settings allow for effective and responsible use of Intelligence Toolkit?\n\n- The Intelligence Toolkit is designed for moderate-sized datasets (e.g., 100s of thousands of records, 100s of PDF documents). Larger datasets will require longer to process and may exceed the memory limits of the execution environment.\n- Responsible use of personal case data requires that the data be deidentified prior to uploading and then converted into anonymous data using the Anonymize Case Data workflow. Any subsequent analysis of the case data should be done using the anonym case data, not the original (sensitive/personal) case data.\n- It is the user's responsibility to ensure that any data sent to generative AI models is not personal/sensitive/secret/confidential, that use of generative AI models is consistent with the terms of service of the model provider, and that such use incurs per-token costs charged to the account linked to the user-provided API key. Understanding usage costs ([OpenAI](https://openai.com/pricing#language-models), [Azure](https://azure.microsoft.com/en-us/pricing/details/cognitive-services/openai-service/)) and setting a billing cap ([OpenAI](https://platform.openai.com/docs/guides/production-best-practices/setting-up-your-organization)) or budget ([Azure](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/manage-costs)) is recommended.\n\n### What data is collected?\n\nIntelligence 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.\n\n### What AI model is used?\n\nThe system uses the GPT-4 model from OpenAI, either via OpenAI or Azure OpenAI APIs. See the [GPT-4 System Card]((https://cdn.openai.com/papers/gpt-4-system-card.pdf)) to understand the capabilities and limitations of this model. For models hosted on Azure OpenAI, also see the accompanying [Transparency Note](https://learn.microsoft.com/en-us/legal/cognitive-services/openai/transparency-note).\n\n## Disclaimer\n\n- Intelligence Toolkit is an AI system that generates text.\n- System performance may vary by workflow, dataset, query, and response.\n- Outputs may include factual errors, fabrication, or speculation.\n- Users are responsible for determining the accuracy of generated content.\n- System outputs do not represent the opinions of Microsoft.\n- All decisions leveraging outputs of the system should be made with human oversight and not be based solely on system outputs.\n- The system is only intended to be used for analysis by domain experts capable of evaluating the quality of data insights it generates.\n- Use of the system must comply with all applicable laws, regulations, and policies, including those pertaining to privacy and security.\n- The system should not be used in highly regulated domains where inaccurate outputs could suggest actions that lead to injury or negatively impact an individual's legal, financial, or life opportunities.\n- Intelligence Toolkit is meant to be used to evaluate populations and entities, not individuals, identifying areas for further investigation by human experts.\n- Intelligence Toolkit is not meant to be used as per se evidence of a crime or to establish criminal activity.\n\n## Prohibited Uses\n\nAll use of Intelligence Toolkit should be consistent with this documentation. In addition, using the system in any of the following ways is strictly prohibited:\n\n- Pursuing any illegal purpose.\n- Identifying or evaluating individuals.\n- Establishing criminal activity.\n\n## Getting Started\n\n### Setting up the AI model\n\nIntelligence Toolkit can be used with either OpenAI or Azure OpenAI as the generative AI API.\n\nThe [`Generate Mock Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/generate_mock_data/README.md) and [`Extract Record Data`](https://github.com/microsoft/intelligence-toolkit/blob/main/app/workflows/extract_record_data/README.md) workflows additionally use OpenAI's Structured Outputs API, which requires a gpt-4o model as follows:\n\n- `gpt-4o-mini`\n- `gpt-4o`\n\nYou can access the `Settings` page on the left sidebar when running the application:\n\n- For OpenAI, you will need an active OpenAI account ([create here](https://platform.openai.com/login)) and API key ([create here](https://platform.openai.com/account/api-keys)).\n\n- For Azure OpenAI, you will need an active Azure account ([create here](https://portal.azure.com/)), endpoint, key and version for the AI Service ([create here](https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI)).\n\n### Selecting the right workflow for the data and task\n\nUse the diagram to identify an appropriate workflow, which can be opened from the left sidebar while running the application.\n\n```mermaid\n%%{init: {\n  \"flowchart\": {\"htmlLabels\": true}} }%%\nflowchart TD\n    NoData[\"<b>Input</b>: None\"] --> |\"<b>Generate Mock Data</b><br/>workflow\"| MockData[\"AI-Generated Records\"]\n    NoData[\"<b>Input</b>: None\"] --> |\"<b>Generate Mock Data</b><br/>workflow\"| MockText[\"AI-Generated Texts\"]\n    MockText[\"AI-Generated Texts\"] -->  TextDocs[\"<b>Input:</b> Text Data\"]\n    MockData[\"AI-Generated Records\"] --> PersonalData[\"<b>Input</b>: Personal Case Records\"]\n    MockData[\"AI-Generated Records\"] --> CaseRecords[\"<b>Input</b>: Case Records\"]\n    MockData[\"AI-Generated Records\"] --> EntityData[\"<b>Input</b>: Entity Records\"]\n    PersonalData[\"<b>Input</b>: Personal Case Records\"] ----> |\"<b>Anonymize Case Data</b><br/>workflow\"| AnonData[\"Anonymous Case Records\"]\n    CaseRecords[\"<b>Input</b>: Case Records\"] ---> HasTime{\"Time<br/>Attributes?\"}\n    HasTime{\"Time<br/>Attributes?\"} --> |\"<b>Detect Case Patterns</b><br/>workflow\"| CasePatterns[\"AI Pattern Reports\"]\n    CaseRecords[\"<b>Input</b>: Case Records\"] ---> HasGroups{\"Grouping<br/>Attributes?\"}\n    HasGroups{\"Grouping<br/>Attributes?\"} --> |\"<b>Compare Case Groups</b><br/>workflow\"| MatchedEntities[\"AI Group Reports\"]\n    EntityData[\"<b>Input</b>: Entity Records\"] ---> HasInconsistencies{\"Inconsistent<br/>Attributes?\"} --> |\"<b>Match Entity Records</b><br/>workflow\"| RecordLinking[\"AI-Matched Records\"]\n    EntityData[\"<b>Input</b>: Entity Records\"] ---> HasIdentifiers{\"Identifying<br/>Attributes?\"} --> |\"<b>Detect Entity Networks</b><br/>workflow\"| NetworkAnalysis[\"AI Network Reports\"]\n    TextDocs[\"<b>Input:</b> Text Data\"] ---> NeedRecords{\"Need<br/>Records?\"} --> |\"<b>Extract Record Data</b><br/>workflow\"| ExtractedRecords[\"AI-Extracted Records\"]\n    TextDocs[\"<b>Input:</b> Text Data\"] ---> NeedAnswers{\"Need<br/>Answers?\"} --> |\"<b>Query Text Data</b><br/>workflow\"| AnswerReports[\"AI Answer Reports\"]\n```\n\n## Diving Deeper\n\n### NGOs\n\nNon-profit organizations can apply for an annual Azure credit grant of up to $3,500, which can be used to set up and run an instance of the intelligence-toolkit app for your organization.\n\n[Read more about eligibility and registration here](https://nonprofit.microsoft.com/en-us/getting-started)\n\n### Getting started\n\n- To start using the api, install it via pypi.\n\n      pip install intelligence-toolkit\n\n      # Find examples in the `example_notebooks` folder.\n\n\n- To start developing, see [DEVELOPING.md](./DEVELOPING.md).\n- To learn about our contribution guidelines, see [CONTRIBUTING.md](./CONTRIBUTING.md).\n- For license details, see [LICENSE.md](./LICENSE.md).\n\nIf you have any questions or need further assistance, you can reach out to the project maintainers at [itkteam@microsoft.com](mailto:itkteam@microsoft.com).\n\n## Trademarks\n\n- This project may contain trademarks or logos for projects, products, or services.\n- Authorized use of Microsoft trademarks or logos is subject to and must follow [Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\n- Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\n- Any use of third-party trademarks or logos are subject to those third-party's policies.\n\n## Privacy\n\nSee [Microsoft Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement).\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Interactive workflows for generating AI intelligence reports from real-world data sources using GPT models",
    "version": "0.0.1",
    "project_urls": null,
    "split_keywords": [
        "ai",
        " data analysis",
        " reports",
        " workflows"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bccc9783e057f1f549c65cbdc65ade9257f7fdddd0711c8e59833c0eaaca45c1",
                "md5": "4dc3bb089f9a0eac24a6bc491d5d9627",
                "sha256": "4e012fd12f2045fd6220072bb156f5beb4b1a6a6b72166d62890d59fc84c5cb0"
            },
            "downloads": -1,
            "filename": "intelligence_toolkit-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4dc3bb089f9a0eac24a6bc491d5d9627",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.13,>=3.11",
            "size": 154245,
            "upload_time": "2024-11-01T21:59:32",
            "upload_time_iso_8601": "2024-11-01T21:59:32.741022Z",
            "url": "https://files.pythonhosted.org/packages/bc/cc/9783e057f1f549c65cbdc65ade9257f7fdddd0711c8e59833c0eaaca45c1/intelligence_toolkit-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2851afada1416161f2719c5efc518351ee93223aee00dbd961c021393a9a427e",
                "md5": "e092a88c545e800b5b40743fa893ddfd",
                "sha256": "686a3b8e91fced556e99b08405063ed3f3e795961ae87388aa052e90ab9f6922"
            },
            "downloads": -1,
            "filename": "intelligence_toolkit-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "e092a88c545e800b5b40743fa893ddfd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.13,>=3.11",
            "size": 112180,
            "upload_time": "2024-11-01T21:59:35",
            "upload_time_iso_8601": "2024-11-01T21:59:35.118911Z",
            "url": "https://files.pythonhosted.org/packages/28/51/afada1416161f2719c5efc518351ee93223aee00dbd961c021393a9a427e/intelligence_toolkit-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-01 21:59:35",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "intelligence-toolkit"
}
        
Elapsed time: 4.27149s