Files
boladeE bc485b44b8 Update README and backend functionality for improved news application
- Enhanced README.md with a clearer project overview, features, technologies used, and installation instructions.
- Updated vector dimension in config.py from 4096 to 1024 for Cohere embeddings.
- Modified main.py to serve HTML responses for the home page, news fetching, and recommendations.
- Improved error handling and ensured articles have links in the responses.
- Cleaned up news_fetcher.py by removing unnecessary print statements.
- Updated recommender.py to refine insights generation and summary extraction.
- Added Jinja2 for templating and improved the project structure for better organization.
- Included API documentation for better understanding of endpoints and usage.
2025-04-15 11:59:39 +01:00

4.0 KiB

DS Task AI News API Documentation

Overview

The DS Task AI News API is a FastAPI-based application that provides endpoints for fetching, processing, and recommending news articles. The API uses AI-powered analysis to generate insights and recommendations based on news articles from various RSS feeds.

Base URL

http://localhost:8000

Endpoints

1. Home Page

Endpoint: /

Method: GET

Description: Returns the home page with links to other routes.

Response: HTML page with navigation links to other endpoints.

Example:

GET /

2. Fetch News

Endpoint: /fetch-news

Method: GET

Description: Fetches news from RSS feeds, processes them, and stores them in the vector database. Returns a page displaying the latest news articles.

Response: HTML page displaying the latest news articles.

Example:

GET /fetch-news

3. Recommend News

Endpoint: /recommend-news

Method: GET

Description: Gets news recommendations based on an article ID or search query. Returns a page displaying recommended articles and AI-generated insights.

Query Parameters:

  • article_id (optional): ID of an article to base recommendations on.
  • query (optional): Search query to base recommendations on.

Response: HTML page displaying recommended articles and AI-generated insights.

Example:

GET /recommend-news?query=artificial%20intelligence

4. Get Article

Endpoint: /article/{article_id}

Method: GET

Description: Gets a specific article and its summary.

Path Parameters:

  • article_id: ID of the article to retrieve.

Response: JSON object containing the article and its summary.

Example Response:

{
  "article": {
    "title": "Example Article Title",
    "content": "Example article content...",
    "link": "https://example.com/article",
    "published": "2023-01-01T12:00:00",
    "source": "Example News",
    "categories": ["Technology", "AI"],
    "id": "article123"
  },
  "summary": "This is a summary of the article..."
}

Example:

GET /article/article123

Data Models

Article

{
  "title": "string",
  "content": "string",
  "link": "string",
  "published": "string",
  "source": "string",
  "categories": ["string"],
  "id": "string"
}

Insights

{
  "themes": ["string"],
  "insights": ["string"],
  "implications": ["string"],
  "related_areas": ["string"]
}

Error Handling

The API uses standard HTTP status codes to indicate the success or failure of requests:

  • 200 OK: The request was successful.
  • 400 Bad Request: The request was invalid or cannot be served.
  • 404 Not Found: The requested resource was not found.
  • 500 Internal Server Error: An error occurred on the server.

Error responses include a JSON object with a detail field containing a description of the error:

{
  "detail": "Error message"
}

Authentication

The API does not currently require authentication.

Rate Limiting

The API does not currently implement rate limiting.

Dependencies

The API relies on the following external services:

  • Groq API: For generating article summaries and insights.
  • Pinecone Vector Database: For storing and retrieving article embeddings.

Configuration

The API can be configured by modifying the following environment variables:

  • GROQ_API_KEY: API key for the Groq service.
  • PINECONE_API_KEY: API key for the Pinecone vector database.
  • PINECONE_ENVIRONMENT: Environment for the Pinecone vector database.
  • PINECONE_INDEX: Index name for the Pinecone vector database.

Development

To run the API locally:

  1. Install the required dependencies:

    pip install -r requirements.txt
    
  2. Set the required environment variables.

  3. Run the API:

    python backend/main.py
    

The API will be available at http://localhost:8000.

License

This project is licensed under the MIT License - see the LICENSE file for details.