Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add integrations page and lint #310

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions docs/source/get_started/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@ Here is the content of our documentation project.


.. toctree::
:maxdepth: 2
:caption: Get Started
:maxdepth: 1
:caption: Contents:

installation
.. adalflow_in_15mins

community

.. lightrag_in_10_mins
integrations
quickstart
129 changes: 129 additions & 0 deletions docs/source/get_started/integrations.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
.. _get_started-integrations:

Integrations
===========

AdalFlow integrates with many popular AI and database platforms to provide a comprehensive solution for your LLM applications.

Model Providers
-------------

.. raw:: html

<div class="integration-grid">
<div class="integration-item">
<a href="https://platform.openai.com/" target="_blank">
<img src="../_static/logos/openai.png" alt="OpenAI">
<span>OpenAI</span>
</a>
</div>
<div class="integration-item">
<a href="https://console.anthropic.com/" target="_blank">
<img src="../_static/logos/anthropic.png" alt="Anthropic">
<span>Anthropic</span>
</a>
</div>
<div class="integration-item">
<a href="https://groq.com/" target="_blank">
<img src="../_static/logos/groq.png" alt="Groq">
<span>Groq</span>
</a>
</div>
</div>

Vector Databases
--------------

.. raw:: html

<div class="integration-grid">
<div class="integration-item">
<a href="https://qdrant.tech/" target="_blank">
<img src="../_static/logos/qdrant.png" alt="Qdrant">
<span>Qdrant</span>
</a>
</div>
<div class="integration-item">
<a href="https://lancedb.com/" target="_blank">
<img src="../_static/logos/lancedb.png" alt="LanceDB">
<span>LanceDB</span>
</a>
</div>
</div>

Embedding and Reranking Models
---------------------------

.. raw:: html

<div class="integration-grid">
<div class="integration-item">
<a href="https://huggingface.co/" target="_blank">
<img src="../_static/logos/huggingface.png" alt="Hugging Face">
<span>Hugging Face</span>
</a>
</div>
<div class="integration-item">
<a href="https://platform.openai.com/docs/guides/embeddings" target="_blank">
<img src="../_static/logos/openai.png" alt="OpenAI Embeddings">
<span>OpenAI Embeddings</span>
</a>
</div>
<div class="integration-item">
<a href="https://cohere.com/rerank" target="_blank">
<img src="../_static/logos/cohere.png" alt="Cohere Rerank">
<span>Cohere Rerank</span>
</a>
</div>
</div>

.. raw:: html

<style>
.integration-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 2rem;
margin: 2rem 0;
}
.integration-item {
text-align: center;
padding: 1rem;
border: 1px solid #eee;
border-radius: 8px;
transition: transform 0.2s, box-shadow 0.2s;
}
.integration-item:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.integration-item img {
max-width: 100px;
height: auto;
margin-bottom: 1rem;
}
.integration-item a {
text-decoration: none;
color: inherit;
display: flex;
flex-direction: column;
align-items: center;
}
.integration-item span {
font-weight: 500;
}
</style>

Usage Examples
------------

Have a look at our comprehensive :ref:`tutorials <tutorials-index>` featuring all of these integrations, including:

- Model Clients and LLM Integration
- Vector Databases and RAG
- Embeddings and Reranking
- Agent Development
- Evaluation and Optimization
- Logging and Tracing

Each tutorial provides practical examples and best practices for building production-ready LLM applications.
3 changes: 3 additions & 0 deletions docs/source/tutorials/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,8 @@ Putting it all together
- Description
* - :doc:`rag_playbook`
- Comprehensive RAG playbook according to the sota research and the best practices in the industry.
* - :doc:`rag_with_memory`
- Building RAG systems with conversation memory for enhanced context retention and follow-up handling.


.. toctree::
Expand All @@ -182,6 +184,7 @@ Putting it all together
text_splitter
db
rag_playbook
rag_with_memory



Expand Down
120 changes: 120 additions & 0 deletions docs/source/tutorials/rag_with_memory.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
.. _tutorials-rag_with_memory:

RAG with Memory
==============

This guide demonstrates how to implement a RAG system with conversation memory using AdalFlow, based on our `github_chat <https://github.com/SylphAI-Inc/github_chat>`_ reference implementation.

Overview
--------

The github_chat project is a practical RAG implementation that allows you to chat with GitHub repositories while maintaining conversation context. It demonstrates:

- Code-aware responses using RAG
- Memory management for conversation context
- Support for multiple programming languages
- Both web and command-line interfaces

Architecture
-----------

The system is built with several key components:

Data Pipeline
^^^^^^^^^^^^

.. code-block:: text

Input Documents → Text Splitter → Embedder → Vector Database

The data pipeline processes repository content through:

1. Document reading and preprocessing
2. Text splitting for optimal chunk sizes
3. Embedding generation
4. Storage in vector database

RAG System
^^^^^^^^^^

.. code-block:: text

User Query → RAG Component → [FAISS Retriever, Generator, Memory]
Response

The RAG system includes:

- FAISS-based retrieval for efficient similarity search
- LLM-based response generation
- Memory component for conversation history

Memory Management
---------------

The memory system maintains conversation context through:

1. Dialog turn tracking
2. Context preservation
3. Dynamic memory updates

This enables:

- Follow-up questions
- Reference to previous context
- More coherent conversations

Quick Start
----------

1. Installation:

.. code-block:: bash

git clone https://github.com/SylphAI-Inc/github_chat
cd github_chat
poetry install

2. Set up your OpenAI API key:

.. code-block:: bash

mkdir -p .streamlit
echo 'OPENAI_API_KEY = "your-key-here"' > .streamlit/secrets.toml

3. Run the application:

.. code-block:: bash

# Web interface
poetry run streamlit run app.py

# Repository analysis
poetry run streamlit run app_repo.py

Example Usage
-----------

1. **Demo Version (app.py)**
- Ask about Alice (software engineer)
- Ask about Bob (data scientist)
- Ask about the company cafeteria
- Test memory with follow-up questions

2. **Repository Analysis (app_repo.py)**
- Enter your repository path
- Click "Load Repository"
- Ask questions about classes, functions, or code structure
- View implementation details in expandable sections

Implementation Details
-------------------

The system uses AdalFlow's components:

- :class:`core.embedder.Embedder` for document embedding
- :class:`core.retriever.Retriever` for similarity search
- :class:`core.generator.Generator` for response generation
- Custom memory management for conversation tracking

For detailed implementation examples, check out the `github_chat repository <https://github.com/SylphAI-Inc/github_chat>`_.
Loading