Skip to content

Example v>=1.0.4

Install

pip install chatformers
Additionally, ensure that you have the required API key from .

Getting Started

Step 1: Importing the Library

To begin, import the necessary modules and set up the API key.
from chatformers.chatbot import Chatbot
import os
from openai import OpenAI
Set your GROQ_API_KEY in environment variable or directly.
os.environ["GROQ_API_KEY"] = "<API_KEY>"
GROQ_API_KEY = os.getenv("GROQ_API_KEY")

Step 2: Initializing the OpenAI Client

Configure the OpenAI client to communicate with the GROQ LLM service.
groq_base_url = "https://api.groq.com/openai/v1"
client = OpenAI(base_url=groq_base_url, api_key=GROQ_API_KEY)

Step 3: Setting Up Chatbot Character

You can configure the chatbot character with specific attributes.
character_data = {
"name": "Julia",
"description": "You are on an online chatting website, chatting with strangers."
}

Step 4: Configuring Chatformers

Chatformers uses mem0 for memory management. Refer to the for more details.
config = {
"vector_store": {
"provider": "chroma",
"config": {
"collection_name": "test",
"path": "db"
}
},
"embedder": {
"provider": "ollama",
"config": {
"model": "nomic-embed-text:latest"
}
},
"llm": {
"provider": "groq",
"config": {
"model": "llama-3.1-8b-instant",
"temperature": 0.1,
"max_tokens": 4000
}
}
}

Step 5: Creating the Chatbot Instance

Initialize the chatbot with the OpenAI client, model name, character configuration, and memory configuration.
chatbot = Chatbot(
llm_client=client,
model_name="llama-3.1-8b-instant",
character_data=character_data,
config=config
)

Step 6: Basic Chat Interaction

Below is an example of a chatbot conversation where the user asks the bot a question and receives a response based on previous chats.
# Define user ID and conversation history
user_id = "Sam-Julia"
message_history = [
{"role": "user", "content": "where r u from?"},
{"role": "assistant", "content": "I am from CA, USA"}
]

Step 7: User’s current question

query = "what is my name?"

Setp 8: Get response from the chatbot

response = chatbot.chat(query=query, message_history=message_history, user_id=user_id, print_stream=True)
print("Assistant: ", response)`

Output

The chatbot responds based on previous conversations stored in memory and any additional context provided by the user.
Assistant: Your name is Sam!

Optional Features

Adding Memories

Chatformers allows you to embed memories directly into the vector database, making future interactions more contextual.
memory_messages = [
{"role": "user", "content": "My name is Sam, what about you?"},
{"role": "assistant", "content": "Hello Sam! I'm Julia."}
]
chatbot.add_memories(memory_messages, user_id=user_id)

Retrieving Memories

You can retrieve the memories associated with a specific user to understand the context better.
memories = chatbot.get_memories(user_id=user_id)
for memory in memories:
print(memory)`
You can also query for related memories based on specific prompts.
related_memories = chatbot.related_memory(user_id=user_id, query="yes I am Sam? what is your name")
print(related_memories)`

Complete Code Example-

from chatformers.chatbot import Chatbot
import os
from openai import OpenAI
os.environ["GROQ_API_KEY"] = "<API_KEY>"
GROQ_API_KEY = "<API_KEY>"
groq_base_url = "https://api.groq.com/openai/v1"
# Unique ID for conversation between Sam (User) and Julia (Chatbot)
user_id = "Sam-Julia"
# Name of the model you want to use
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.