conflict-zone-extractor 2025.12.21180055
A new package that processes text input describing volunteer activities in conflict zones, such as reports of volunteers physically intervening between Israeli settlers and Palestinian villages. It us
License: MIT
Requires Python: >=3.9

# Conflict Zone Extractor
[![PyPI version](https://badge.fury.io/py/conflict-zone-extractor.svg)](https://badge.fury.io/py/conflict-zone-extractor)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)
[![Downloads](https://static.pepy.tech/badge/conflict-zone-extractor)](https://pepy.tech/project/conflict-zone-extractor)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-blue)](https://www.linkedin.com/in/eugene-evstafev-716669181/)


A Python package that processes text input describing volunteer activities in conflict zones, such as reports of volunteers physically intervening between Israeli settlers and Palestinian villages. It uses an LLM to extract structured information like the location, number of volunteers, actions taken, and outcomes, ensuring the output is consistently formatted and validated through pattern matching for reliability in humanitarian or journalistic contexts.

## Installation

```bash
pip install conflict_zone_extractor
```

## Usage

```python
from conflict_zone_extractor import conflict_zone_extractor

response = conflict_zone_extractor(
    user_input="Volunteers intervened in the West Bank today, with 15 people present.",
    api_key="your_api_key"  # Optional, if not provided, the package will use the default LLM7
)
print(response)
```

### Using a Custom LLM

You can use any LLM compatible with LangChain. Here are examples with different LLMs:

#### OpenAI

```python
from langchain_openai import ChatOpenAI
from conflict_zone_extractor import conflict_zone_extractor

llm = ChatOpenAI()
response = conflict_zone_extractor(
    user_input="Volunteers intervened in the West Bank today, with 15 people present.",
    llm=llm
)
print(response)
```

#### Anthropic

```python
from langchain_anthropic import ChatAnthropic
from conflict_zone_extractor import conflict_zone_extractor

llm = ChatAnthropic()
response = conflict_zone_extractor(
    user_input="Volunteers intervened in the West Bank today, with 15 people present.",
    llm=llm
)
print(response)
```

#### Google

```python
from langchain_google_genai import ChatGoogleGenerativeAI
from conflict_zone_extractor import conflict_zone_extractor

llm = ChatGoogleGenerativeAI()
response = conflict_zone_extractor(
    user_input="Volunteers intervened in the West Bank today, with 15 people present.",
    llm=llm
)
print(response)
```

## Parameters

- `user_input` (str): The user input text to process.
- `llm` (Optional[BaseChatModel]): The LangChain LLM instance to use. If not provided, the default `ChatLLM7` will be used.
- `api_key` (Optional[str]): The API key for LLM7. If not provided, the package will use the default LLM7 or the API key from the environment variable `LLM7_API_KEY`.

## Default LLM

By default, the package uses `ChatLLM7` from [langchain_llm7](https://pypi.org/project/langchain-llm7/). You can safely pass your own LLM instance if you want to use another LLM.

## Rate Limits

The default rate limits for LLM7 free tier are sufficient for most use cases of this package. If you want higher rate limits for LLM7, you can pass your own API key via the environment variable `LLM7_API_KEY` or directly via the `api_key` parameter. You can get a free API key by registering at [LLM7](https://token.llm7.io/).

## Issues

If you encounter any issues, please report them on the [GitHub issues page](https://github.com/chigwell/conflict-zone-extractor/issues).

## Author

- **Eugene Evstafev**
  - Email: hi@eugene.plus
  - GitHub: [chigwell](https://github.com/chigwell)