Skip to content

This Project demonstrates how to build a dynamic AI-powered application that leverages the power of LangChain and Google Gemini (or any LLM) to interact with external tools in real-time. This project showcases how LLMs can go beyond static responses and take intelligent actions by calling custom tools.

Notifications You must be signed in to change notification settings

waheed444/Langchain_Tool_Calling_Project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LangChain Tool Calling Project

📌 Overview

The LangChain Tool Calling Project illustrates the development of an intelligent, AI-powered application that utilizes LangChain in combination with Google Gemini (or any large language model) to dynamically interface with external tools in real time. This project highlights the capability of modern LLMs to move beyond static text generation by intelligently invoking custom tools based on user input, enabling more context-aware and action-oriented interactions.

🧠 Core Technologies

  • Python: Primary language used for development.
  • LangChain: Framework for building LLM-powered applications that can perform tool calling, reasoning, and more.
  • Google Gemini API: Powerful LLM API used for natural language understanding and generation.
  • Streamlit: Web framework to build interactive applications.
  • python-dotenv: Used to securely manage environment variables like API keys.

🚀 Features

🚀 Features

  • 🔗 LangChain Integration: Seamlessly chain LLM responses with tool invocations for dynamic, intelligent interactions.
  • 🤖 Tool-Calling Agents: Agents decide when to trigger specific tools based on user input, enhancing the AI's reasoning capabilities.
  • 🔒 Secure API Management: Use of python-dotenv for securely managing environment variables, such as API keys.
  • 🧪 Notebook-based Execution: Convenient setup for experimentation, with a Google Colab-friendly notebook for easy demonstration.
  • 🛠️ Custom Tool Development: Build and integrate your own custom tools to suit specific user needs, improving the efficiency and adaptability of the application.
  • 📦 Tool Reusability: Custom tools can be reused across various tasks, reducing redundancy and ensuring greater efficiency in solving real-world problems.
  • 🧠 Enhanced AI Capabilities: Enable LLMs to execute real-time, intelligent actions based on user prompts (e.g., running calculations, fetching live data).

🔧 Getting Started

1. Clone the Repository

git clone https://github.com/waheed444/Langchain_Tool_Calling_Project.git

cd Langchain_Tool_Calling_Project

2. Install Dependencies

pip install -r requirements.txt

3. Set Up Environment Variables

Create a .env file in the root directory:

GOOGLE_API_KEY=your_google_gemini_api_key

4. Run the Notebook or Python file

Launch the Colab notebook or run your Python script as needed.

📁 Project Structure

Langchain_Tool_Calling_Project/
├── tools/                 # Custom tools for LLM interaction
├── notebook.ipynb         # Main project notebook
├── main.py                # Optional script version
├── .env                   # Environment variables (excluded from Git)
├── requirements.txt       # Project dependencies
└── README.md              # Project documentation

🙌 Contributions & Feedback

I welcome contributions, suggestions, and feedback!
If you find any issues or want to improve this project, feel free to open a GitHub issue or submit a pull request.

This repo is only for learning and exploring new things, feel free to fork it, explore, or give suggestions!

Star ⭐ the repo if it helps you!


🙌 Let's Connect

LinkedIn GitHub Gmail


About

This Project demonstrates how to build a dynamic AI-powered application that leverages the power of LangChain and Google Gemini (or any LLM) to interact with external tools in real-time. This project showcases how LLMs can go beyond static responses and take intelligent actions by calling custom tools.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published