Skip to content

BlockXAI/blockxai-chat

Repository files navigation

BlockXAI Chat

A Python package that enables developers to create AI chatbots with just two lines of code. BlockXAI Chat uses Google's Gemini API to enhance simple prompts into comprehensive system prompts, which are then used with OpenAI's GPT models to generate chatbot responses.

Includes a preset Gemini API key - No need to obtain your own Gemini API key to get started!

✨ Create a Chatbot in Just Two Lines

from blockxai_chat.interface import create_and_run
create_and_run("A friendly assistant that helps users with their daily tasks.")

That's it! This will launch a beautiful Gradio interface where you can interact with your chatbot.

Features

  • Simple Prompt Enhancement: Transform basic prompts into detailed system prompts using Gemini AI
  • Gradio Interface: Beautiful, interactive web interface for chatbot creation and conversation
  • Flexible API: Use as a package in your code or run as a standalone application
  • Customizable: Configure model parameters, temperature, and other settings
  • Developer-Friendly: Create a chatbot with just two lines of code
  • Preset API Key: Includes a Gemini API key so you can get started immediately
  • Robust Error Handling: Gracefully handles API key issues and model errors
  • Latest Gemini Models: Compatible with gemini-2.0-flash for prompt enhancement
  • Optional OpenAI API Key: Provide your OpenAI API key through code, environment variables, or directly in the interface

Installation

pip install blockxai-chat

Quick Start

Method 1: The Simplest Way (Two Lines of Code)

from blockxai_chat.interface import create_and_run
create_and_run("A friendly assistant that helps users with their daily tasks.")

Method 2: Step-by-Step Approach

from blockxai_chat.enhancer import enhance_prompt
from blockxai_chat.chatbot import Chatbot
from blockxai_chat.interface import run_interface

# Define a simple prompt
simple_prompt = "A friendly assistant that helps users with their daily tasks."

# Enhance the prompt using Gemini
enhanced_prompt = enhance_prompt(simple_prompt)

# Initialize the chatbot with the enhanced prompt
chatbot = Chatbot(enhanced_prompt)

# Launch the Gradio interface with the chatbot
run_interface(chatbot)

Method 3: Using Just the Prompt

from blockxai_chat.interface import run_interface

# Just provide the prompt to the interface
run_interface(prompt="A friendly assistant that helps users with their daily tasks.")

Environment Variables

Create a .env file in your project directory with the following variable:

OPENAI_API_KEY=your_openai_api_key

Note: A Gemini API key is pre-included in the package, so you don't need to provide one unless you want to use your own key. If you want to use your own key, you can add it to your .env file:

GEMINI_API_KEY=your_gemini_api_key

Alternatively, you can provide these keys directly in your code or through the Streamlit interface.

API Reference

Enhancer Module

from blockxai_chat.enhancer import enhance_prompt

# Enhance a simple prompt
enhanced_prompt = enhance_prompt("A helpful assistant", api_key="your_gemini_api_key")

Chatbot Module

from blockxai_chat.chatbot import Chatbot

# Create a chatbot
chatbot = Chatbot(
    system_prompt="You are a helpful assistant...",
    api_key="your_openai_api_key",
    model="gpt-3.5-turbo"
)

# Get a response
response = chatbot.get_response("Hello, who are you?")

# Clear conversation history
chatbot.clear_history()

# Get conversation history
history = chatbot.get_conversation_history()

Interface Module

from blockxai_chat.interface import run_interface, create_and_run

# Run interface with an existing chatbot
run_interface(chatbot)

# Create and run a chatbot in one line
create_and_run("A helpful assistant")

Development

  1. Clone the repository
  2. Install development dependencies:
    pip install -e ".[dev]"
  3. Run tests:
    pytest

License

MIT License

Created By

BlockX - Simplifying AI Development

About

Package to make chatbots with Coding in English

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages