Files
povtornyy-ekzamen-2-sravnit…/README.md
T

2.3 KiB

Entity Comparison Tool

This project demonstrates how to integrate the Qdrant vector database with the Tavily search API to generate a markdown table comparing three entities. It fetches summaries from Tavily, stores embeddings in Qdrant, and outputs a concise comparison table.

Features

  • Qdrant Integration: Stores and retrieves vector embeddings for entities.
  • Tavily Search: Retrieves up-to-date summaries and URLs for each entity.
  • Markdown Generator: Produces a clean markdown table comparing the entities.

Prerequisites

  • Python 3.9+
  • A running Qdrant instance (default: localhost:6333)
  • A Tavily API key

Setup

# Clone the repository
git clone https://github.com/yourusername/entity-comparison-tool.git
cd entity-comparison-tool

# Create a virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Configuration

Create a .env file in the project root with the following variables:

# Tavily API key
TAVILY_API_KEY=your_tavily_api_key

# Qdrant connection (optional, defaults to localhost:6333)
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_COLLECTION=entities

Usage

# Compare three entities
python src/main.py "Python" "Java" "C++"

The script will output a markdown table similar to:

| Attribute | Python | Java | C++ |
|-----------|--------|------|-----|
| Summary | Python is a high-level, interpreted programming language... | Java is a class-based, object-oriented programming language... | C++ is a general-purpose programming language that supports procedural, object-oriented, and generic programming... |
| URL | https://www.python.org/ | https://www.oracle.com/java/ | https://isocpp.org/ |

Project Structure

entity-comparison-tool/
├── src/
│   ├── main.py
│   ├── qdrant_client.py
│   └── markdown_generator.py
├── requirements.txt
└── README.md

Extending the Tool

  • Custom Attributes: Modify markdown_generator.py to extract additional attributes from the Tavily response.
  • Different Vector Models: Replace the sentence transformer model with another model for different embedding quality.
  • Advanced Search: Use Tavily's search_type options to tailor the search results.

License

MIT License