Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Project Name: AI-faq

Contributor Name: Peter Atef

Hello there, I’m Peter Atef, a senior student in the Computer Department, at the faculty of Engineering, at Cairo University.

I expect to graduate in fall 2024. My current GPA is 3.7 out of 4. Here is my website where you can find all the details about my career: skills, courses, past experiences…etc: Peter Atef (engpeteratef.github.io)

Contacts:

I found out about the program from one of my classmates who is interested in open-source programs and he recommended this program to me.

I am interested in this program because I know how much experience anyone in the tech industry can gain from participating in open-source projects, regardless of the technical experience, a lot of soft skills are gained and developed which are so important for a senior student who is graduating in a couple of months. Also, once I learned about the program and AI-FAQ, I got very excited because I was very interested in the field of NLP and building apps that provide the user with the power of AI.

Due to the projects I participated in, previously, I had experience in almost all the technologies recommended to build this project.

For example, I had a three-month internship at VNCR where I was working on a Blog Writer website which was a website that takes input from the user and then creates a prompt that will be given to LLM to generate the blog for the user based on the user preferences like topic, number of words, and sources to collect the information from.

Project Summary and Proposed Solution

We can break down the problem into multiple stages:

  1. Load the data
    1. Load the data from websites, GitHub Repo, or maybe search for answers on Google and use the results as verbs.
  2. Data processing
    1. Like Text tokenization
  3. Create embeddings
    1. Using any embedding algorithm provided by HuggingFace or OpenAI, however, choosing the algorithm is critical in terms of time because the process of creating embeddings takes a lot of time.
  4. Create a vector database
    1. Using a cloud vector database to keep the history of the chat and also keep any data we got from the previous search process. We may use Qdrant to achieve this goal or deploy any vector database like chromaDB, Pgvector, or Faiss.
  5. Create LLM
    1. I want to talk about this point specifically because it’s critical, we want to use LLM cheap, efficient, and fast.
    2. The response of LLM doesn’t only depend on the model implementation itself but also on the way we run it.
    3. So, we may choose any open-source model from Hugging Face. But what difference can we make?
    4. The answer is using LPU or to be more precise we will use Groq. Groq is a free API that provides us with free fast LLMs like llama-2. The speed of Groq is 500 tokens/second which is so much faster than gpt-3.5 and Gemini. To be clear Groq isn’t an LLM but it’s a way we can use our LLM fast.
  6. Create back-end APIs
    1. I recommend using Python frameworks like Django to build our back-end and endpoints because the part that deals with LLM and gets its response will be implemented in Python so to make the interface between them easy it’s a good idea to build the back-end using Python.
  7. Create front-end
    1. There is no doubt that React is a great front-end framework in terms of performance.
    2. I think the website has the following features:
      1. Create an account: Sign in/ Sign-up
      2. Chat with LLM
      3. Show search history
      4. Clear History
      5. Continue as a guest (without memory)
  8. Integrate the front end with the back end
  9. Deploy the website

Learning Progress 

  1. Natural Language Processing (NLP) course.
  2. Studying more about the Langchain framework
  3. Study React.js and Nest.js
  4. Creating UI/UX for the website.
  • No labels