Catalog PyPI
PACKAGE EXPLORERView in registry

agori

PyPI

AI-powered decision-making frameworks for enhancing group decisions

ai-frameworksartificial-intelligenceazure-openaicollaborative-decision-makingdecision-makinggroup-decisionlangchainnominal-group-technique
Versions collected1
Direct dependencies23From release 0.1.4
Last observed21 Oct, 09:21 UTC

README

Version 0.1.4 documentation

Agori

Agori is a Python package that implements various decision-making frameworks powered by generative AI. It aims to enhance group decision-making processes by leveraging the capabilities of large language models.

Currently Supported Frameworks

1. Nominal Group Technique (NGT)

The Nominal Group Technique is a structured decision-making method that helps groups reach consensus through a systematic process of idea generation and evaluation. Our implementation enhances this process using AI to:

  • Generate diverse expert perspectives
  • Analyze problems from multiple angles
  • Synthesize insights into actionable recommendations

Installation

pip install agori

Quick Start

Here's a simple example using the NGT framework:

import asyncio
from agori.decision_frameworks.ngt import NGTProcessor 
from langchain_community.document_loaders import PyPDFLoader

async def analyze_document(document_path: str, query: str):
    # Load document
    loader = PyPDFLoader(document_path)
    pages = loader.load()
    
    # Initialize NGT processor
    ngt = NGTProcessor(
        deployment="your-deployment",
        endpoint="your-endpoint", 
        api_key="your-api-key",
        api_version="your-api-version",
        verbose=True
    )

    # Add documents
    ngt.add_documents(pages)
    
    # Run analysis
    result = await ngt.run_ngt_analysis(query)
    return result

# Run analysis
document_path = "your_document.pdf"
query = "What strategic decisions should we make based on this document?"
result = await analyze_document(document_path, query)

Features

NGT Framework

  • Expert Role Generation: Automatically identifies relevant expert perspectives based on the problem context
  • Multi-perspective Analysis: Analyzes problems from different expert viewpoints
  • Parallel Processing: Efficiently processes large documents using concurrent analysis
  • Structured Output: Provides organized insights with clear recommendations
  • Configurable Parameters: Allows customization of processing parameters
  • Detailed Logging: Offers verbose mode for tracking the decision-making process

Configuration

The NGT processor accepts various configuration parameters:

from agori.decision_frameworks.ngt.models import Config

config = Config(
    MAX_TOKENS_PER_REQUEST=126000,
    CHUNK_SIZE=31500,
    CHUNK_OVERLAP=2000,
    MAX_WORKERS=3,
    MAX_PARALLEL_REQUESTS=3,
    VERBOSE=True
)

ngt = NGTProcessor(
    deployment="your-deployment",
    endpoint="your-endpoint", 
    api_key="your-api-key",
    api_version="your-api-version",
    config=config
)

Advanced Usage

Step-by-Step Process

You can also run the NGT process step by step:

# Generate experts
experts = await ngt.generate_experts(query)

# Generate expert responses
expert_responses = await ngt.analyze_with_experts(experts, query)

# Synthesize results
synthesis = await ngt.synthesize_ngt_results(expert_responses)

Error Handling

The package includes custom exceptions for better error handling:

from agori.decision_frameworks.ngt import (
    NGTError,
    ExpertGenerationError,
    IdeaGenerationError,
    SynthesisError
)

try:
    result = await ngt.run_ngt_analysis(query)
except ExpertGenerationError as e:
    print(f"Error generating experts: {e}")
except IdeaGenerationError as e:
    print(f"Error generating ideas: {e}")
except SynthesisError as e:
    print(f"Error synthesizing results: {e}")
except NGTError as e:
    print(f"General NGT error: {e}")

Dependencies

  • langchain
  • tiktoken
  • azure-openai
  • asyncio
  • typing
  • dataclasses

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

License

MIT License

Project Status

This project is actively under development. The NGT framework is the first implementation, with more decision-making frameworks planned for future releases.

Roadmap

  • Additional decision frameworks
  • Working memory for intermediate results caching
  • Support for more LLM providers
  • Integration with decision support tools

Citation

If you use Agori in your research, please cite:

@software{agori2024,
  title = {Agori: AI-Powered Decision Frameworks},
  year = {2024},
  url = {https://github.com/govindshukl/agori}
}

Contact

For questions and feedback, please open an issue on the GitHub repository.

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.426 Nov 202423

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

ACCESSIBLE
govindshukl/agori

Shared repository data · GitHub

License detected in repository
MIT
License branch / ref
main
Last push
24 Nov 2025
Archived
No
Contributor identities
— · partial collection

Public sponsor counts have not been collected. These signals belong to the repository owner.

Downloads & popularity

0count
Gauge · observed snapshots21 Oct 2026
10.50
2026-10-21: 0 · observed 2026-10-21T12:51:31.1641239Z
21 Oct21 Oct

github · 1 observations shown. Missing days are unknown.

View observed values
Date / source periodValueObserved at
2026-10-2102026-10-21T12:51:31.1641239Z

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 09:21 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:faaca78e7ff0c8723e9b88e09defd08423163d74cf77c671df6dd68c23f11f13