| | import transformers |
| | import torch |
| | import gradio as gr |
| | from datasets import load_dataset |
| |
|
| | |
| | model_id = "meta-llama/Meta-Llama-3.1-8B-Instruct" |
| |
|
| | |
| | pipeline = transformers.pipeline( |
| | "text-generation", |
| | model=model_id, |
| | model_kwargs={"torch_dtype": torch.bfloat16}, |
| | device_map="auto", |
| | ) |
| |
|
| | |
| | dataset = load_dataset("quantumminds/cisco_cli_commands") |
| |
|
| | |
| | def search_dataset(user_input): |
| | |
| | for entry in dataset['train']: |
| | if entry["command"].lower() in user_input.lower(): |
| | return f"**Command:** {entry['command']}\n\n**Description:** {entry['description']}\n\n**Example:** {entry['examples'][0]['example_command'] if 'examples' in entry else 'No example available'}" |
| | return None |
| |
|
| | |
| | def generate_response(user_input, chat_history): |
| | |
| | dataset_response = search_dataset(user_input) |
| | |
| | if dataset_response: |
| | |
| | chat_history.append({"role": "user", "content": user_input}) |
| | chat_history.append({"role": "assistant", "content": dataset_response}) |
| | return chat_history |
| |
|
| | |
| | outputs = pipeline(user_input, max_new_tokens=512) |
| | |
| | |
| | assistant_response = outputs[0]["generated_text"] |
| | |
| | |
| | chat_history.append({"role": "user", "content": user_input}) |
| | chat_history.append({"role": "assistant", "content": assistant_response}) |
| |
|
| | return chat_history |
| |
|
| | |
| | with gr.Blocks(theme=gr.themes.Ocean()) as iface: |
| | gr.Markdown("<h1 style='text-align: center;'>Cisco Configuration Assistant</h1>") |
| | chatbot = gr.Chatbot(label="Cisco Configuration Chatbot", type="messages", height=500) |
| | user_input = gr.Textbox(placeholder="Enter your Cisco switch/router question here...", label="Your Input") |
| | with gr.Row(): |
| | submit_btn = gr.Button("Submit") |
| | clear_btn = gr.Button("Clear Feed") |
| | |
| | def user(query, history): |
| | |
| | history = generate_response(query, history) |
| | return history, "" |
| | |
| | user_input.submit(user, [user_input, chatbot], [chatbot, user_input]) |
| | submit_btn.click(user, [user_input, chatbot], [chatbot, user_input]) |
| | clear_btn.click(lambda: [], None, chatbot, queue=False) |
| |
|
| | |
| | print(dataset) |
| |
|
| | |
| | iface.launch() |
| |
|