chat-llama2-7b / app.py
m1n9k7's picture
Update app.py
3c27675
raw
history blame
3.87 kB
from langchain.llms import CTransformers
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
import os
import io
import gradio as gr
import time
custom_prompt_template = """
You are an AI assistant and your task is to chat and provide information to the users
Below is the user's query.
Query: {query}
You return the helpful code and related details
Helpful code and related details:
Below are some examples of the inputs(instruction) and the outputs(response)
[
{ "inputs": "### Instruction: Introduce yourself. \n\n### Response: Hi, I'm a chatbot designed to assist and engage in conversations on various topics. How can I help you today?" },
{ "inputs": "### Instruction: What is your favourite hobby? \n\n### Response: As a chatbot, I don't have hobbies, but I'm here to chat about any topic you're interested in. What are your interests?" },
{ "inputs": "### Instruction: Tell me a joke. \n\n### Response: Why don't scientists trust atoms? Because they make up everything!" },
{ "inputs": "### Instruction: What is the capital of France? \n\n### Response: The capital of France is Paris. Anything else you'd like to know about?" },
{ "inputs": "### Instruction: Discuss the weather. \n\n### Response: The weather can vary greatly depending on your location. Can you specify a city or region you're interested in?" },
{ "inputs": "### Instruction: Explain the concept of artificial intelligence. \n\n### Response: Artificial Intelligence, or AI, refers to the development of computer systems that can perform tasks that typically require human intelligence. It includes areas like machine learning and natural language processing." },
{ "inputs": "### Instruction: What are your thoughts on technology? \n\n### Response: I don't have personal thoughts, but I can provide information and answer questions about technology. What aspect of technology interests you?" },
{ "inputs": "### Instruction: How can I stay motivated? \n\n### Response: Staying motivated can be challenging. Setting clear goals, breaking them into smaller tasks, and celebrating achievements along the way can help. What are you working on?" },
{ "inputs": "### Instruction: Share a fun fact. \n\n### Response: Did you know that honey never spoils? Archaeologists have found pots of honey in ancient Egyptian tombs that are over 3,000 years old and still perfectly edible!" },
{ "inputs": "### Instruction: What's the best way to learn a new language? \n\n### Response: Learning a new language involves consistent practice, immersion, and using a variety of resources like books, apps, and conversation partners. What language are you interested in learning?" }
]
"""
def set_custom_prompt():
prompt = PromptTemplate(
template = custom_prompt_template,
input_variables = ['query']
)
return prompt
def load_model():
llm = CTransformers(
model = 'TheBloke/Llama-2-7B-GGUF',
model_type = 'llama',
max_new_tokens = 1096,
temperature = 0.6,
repetition_penalty = 1.13,
gpu_layers = 2
)
return llm
def chain_pipeline():
llm = load_model()
qa_prompt = set_custom_prompt()
qa_chain = LLMChain(
prompt = qa_prompt,
llm=llm
)
return qa_chain
llmcahin = chain_pipeline()
def bot(query):
llm_response = llmcahin.run({"query":query})
return llm_response
with gr.Blocks(title="chat llama 7b") as demo:
gr.Markdown("# chat llama")
chatbot = gr.Chatbot([],elem_id="chatbot",height=700)
msg = gr.Textbox()
clear = gr.ClearButton([msg,chatbot])
def respond(message, chat_history):
bot_message = bot(message)
chat_history.append((message, bot_message))
time.sleep(2)
return "",chat_history
msg.submit(respond,[msg, chatbot],[msg, chatbot])
demo.launch(share=True)