Factor Technical Challenge: LLM Policy Assistant

Overview

Welcome to Factor's technical challenge. We're excited about your interest in joining our team of consultants who help enterprises leverage cutting-edge AI solutions to transform their businesses.

The purpose of this challenge is to assess your skills in developing practical AI applications using Python and Large Language Models (LLMs).

Challenge Description

Your task is to create a prototype application that demonstrates how enterprises can use AI to make their internal policies and documentation more accessible to employees. The application should allow users to ask questions about company policies and receive accurate, relevant answers by querying policy documents. The solution should utilize an LLM for natural language understanding and a vector database for efficient document retrieval.

We've provided a set of sample corporate policies. Your application should be able to handle queries such as:

  1. What is the work from home policy?
  2. How many vacation days do I get as a new employee?
  3. What is the process for requesting parental leave?
  4. Can you explain the travel reimbursement policy?

Objectives

Build an intelligent policy assistant that showcases the following capabilities:

  1. User Interface: Design a clean, intuitive web interface for policy queries and responses.
  2. LLM Integration: Implement integration with a pre-trained LLM model for natural language understanding and response generation.
  3. Document Processing: Develop robust handling of policy documents in various formats.
  4. Vector Database: Implement efficient document retrieval using vector embeddings and similarity search.

Provided Materials

Sample corporate policy documents will be provided in PDF and markdown format. These documents will need to be processed and indexed appropriately.

Deliverables

  • Code hosted on a private GitHub repository
    • Fork this repository to your GitHub account
    • Push your completed code to your fork
    • Share repository access with our technical team when ready for review
  • Comprehensive README documentation including:
    • Setup and deployment instructions
    • Architecture overview and technology choices
    • Engineering decisions and trade-offs
    • Challenges encountered and solutions implemented
    • Potential improvements and scalability considerations

Technical Requirements

  • Use any pre-trained LLM model of your choice (OpenAI API key will be provided)
  • Implementation must be in Python
  • Code should follow professional software engineering practices:
    • Clean, well-documented code
    • Proper error handling
    • Unit tests
    • Logging
    • Configuration management

Evaluation Criteria

Your submission will be evaluated based on:

  1. Code quality and organization
  2. System architecture and scalability
  3. User experience and interface design
  4. Documentation clarity
  5. Error handling and edge cases
  6. Innovation and problem-solving approach

Submission Timeline

  • You will have one week to complete the challenge
  • Submit your solution by providing repository access to [rey@factorconsulting.org]

Questions

If you have any questions about the challenge, please reach out to [rey@factorconsulting.org]