WizSearch 🌟

Your intelligent ally for effortless data retrieval across documents and seamless browsing the web using language and vision models.

Checkout Demo Video

Inspiration 💡

As a developer, I often find myself stuck with errors in my code. Typically, I would turn to Google for solutions on Stack Overflow or GitHub. With the advent of ChatGPT, finding help became easier, but it wasn't always reliable for recent or factually correct information.

I copied answers from Google into ChatGPT to get the help I needed, which worked perfectly. This inspired the idea for WizSearch. We wanted to create a tool like Perplexity, combining the best of both worlds to deliver accurate, real-time information. This is how WizSearch was born!

What It Does 📹

WizSearch is a super-smart AI assistant designed to retrieve and synthesize information from the internet. Users can ask questions, and WizSearch utilizes powerful LLMs to generate accurate and relevant answers, complete with summaries and links to sources.

How It's Built 🛠️

Built WizSearch using the following components:

  • LLM: Open source models like llama3, mistral, LLaVA, etc using Ollama for natural language understanding and generation. Also supports openai and replicate api.
  • Embeddings: BAAI/bge-small-en-v1.5 embedding model to enhance search relevance. Offered in various sizes, they're cost-effective (larger model outperforms pricier options) and reduce latency due to their smaller size.
  • Intelligent Search: Tavily acts like your AI research assistant, summarizing info from various web sources and formatting it specifically for AI models. This saves you the hassle of data filtering and prep work. Google Search/Brave focuses on general web searches, leaving the data wrangling to you.
  • Vector Databases: Qdrant open-source, on-premise options make it budget-friendly and adaptable. It handles complex, high-dimensional data for intricate searches, and integrates seamlessly with FastEmbed for efficient embedding generation..
  • Observability: Langfuse for monitoring and observability. It's open-source, giving you control and transparency. Built with developers in mind, Langfuse offers a powerful yet user-friendly experience for building and debugging intricate LLM workflows.
  • UI: Streamlit for creating an interactive and user-friendly interface. Streamlit was the ideal choice due to its simplicity and ability to quickly build and deploy beautiful web applications.

Here's a diagram explaining the workflow of WizSearch:

High level architecture diagram

Key Differentiators 🎉

  • Seamless Integration: Successfully integrating multiple open-source tools to create a cohesive and efficient search assistant.
  • Modular Workflow: Developing a modular and customizable workflow that allows for easy adjustments and enhancements.

What Worked 📚

  • Modular RAG and LLM Routing: The importance of modular RAG (retrieval-augmented generation) and LLM routing for maintaining controlled and efficient agentic workflows.
  • Effective Prompting: Utilizing effective prompting techniques for open-source models to optimize performance.
  • LLM Operations: Integrating LLM operations such as monitoring, tracing, and incorporating human feedback to improve performance and reliability continuously.

Challenges We Ran Into 🚧

  • Unpredictable LLM Output: Ensuring consistency and accuracy in the responses generated by LLMs was a significant challenge.
  • Retrieval Issues: Addressing the challenge of the retrieval process not always selecting the most relevant information, leading to potential hallucinations in responses.
  • Security: Implementing guardrails to prevent prompt injection and other security vulnerabilities.

What's Next for WizSearch 🚀

Imagine a minimalistic interface where you can just click on a mic and ask anything you want, and it should go and do the job for you using the power of generative AI today.

In the future, we aim to enhance WizSearch by incorporating more controlled agentic capabilities, such as running code and generating images. Also plan to develop a minimalistic, voice-interactive platform that responds in a human-like voice and displays only the most relevant visual information, such as images and graphs.

Built With

  • langchain
  • ollama
  • python
  • qdrant
  • streamlit
Share this project:

Updates