JavaScript required
We’re sorry, but Coda doesn’t work properly without JavaScript enabled.
Skip to content
Gallery
Chatformers
Chatformers
Example v<=1.0.3
Example v>=1.0.4
More
Share
Explore
Example v>=1.0.4
Install
pip install chatformers
Additionally, ensure that you have the required API key from
GROQ API
.
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
mem0 documentation
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 (
Ctrl
P
) instead.