I recently worked on another project called chitchat, which I featured in my school/work side project climate-plus. Chitchat serves as an extension to the chatgpt (gpt-3.5 model, in particular) and offers additional functionalities like file input and question handling. One of the key takeaways from this project, for me, was understanding how
langchain acts as the intermediary between LLM and vector search.
To summarize the mechanism behind chitchat, I’ll quote gaoce’s blog post here:
Context-learning is one of the most impressive abilities of LLM, but it comes with limitations that affect the user experience. However, vector search provides a clever workaround:
- Divide text that exceeds the context length into shorter chunks and convert these chunks into vectors (embeddings).
- Convert the input prompt into a vector (embedding) before sending it to LLM.
- Perform a search on the prompt vector to find the most similar chunk vector.
- Concatenate the most similar chunk vector with the prompt vector, and use it as input for LLM.
chitchat is currently a work-in-progress with limited functionality. However, the advantage is that it’s (almost) free for self-host, and you have complete control over your own data. The processed files are not stored anywhere other than within the project’s environment. Both CLI and GUI versions are ready for use.
Some further improvements are in consideration, such as enhancing the file parsing functionality of chitchat. I am dedicated to refining the project and exploring new avenues to make it even more valuable and user-friendly.