File size: 1,991 Bytes
6f7d7b4
4062a25
6f7d7b4
0f347bb
 
 
4062a25
 
0f347bb
 
4062a25
 
6f7d7b4
0f347bb
 
 
 
 
 
 
 
 
 
 
4062a25
 
 
 
0f347bb
4062a25
 
 
6f7d7b4
4062a25
 
 
 
0f347bb
 
 
 
4062a25
6f7d7b4
4062a25
6f7d7b4
4062a25
 
 
 
 
6f7d7b4
4062a25
 
6f7d7b4
 
4062a25
0f347bb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import gradio as gr
from huggingface_hub import InferenceClient

# Initialize an empty list to store the conversation history
conversation_history = []

# Function to interact with the model using the Inference API
def chat_with_model(user_input, hf_api_key):
    global conversation_history
    
    # Initialize the InferenceClient with the provided API key
    client = InferenceClient(api_key=hf_api_key)

    # Add the user's message to the conversation history
    conversation_history.append({"role": "user", "content": user_input})

    # Define the system message (defining the assistant role)
    system_message = {
        "role": "system", 
        "content": "You are a code assistant that helps with code generation, debugging, and explanations."
    }

    # Add system message to the conversation history
    conversation_history.insert(0, system_message)

    # Create a stream for chat completions using the API
    stream = client.chat.completions.create(
        model="Qwen/Qwen2.5-Coder-32B-Instruct", 
        messages=conversation_history, 
        max_tokens=500,
        stream=True
    )
    
    # Collect the generated response from the model
    response = ""
    for chunk in stream:
        response += chunk.choices[0].delta.content
    
    # Add the assistant's response to the conversation history
    conversation_history.append({"role": "assistant", "content": response})
    
    return response

# Create the Gradio interface
iface = gr.Interface(
    fn=chat_with_model, 
    inputs=[
        gr.Textbox(lines=5, placeholder="Ask me anything about coding..."), 
        gr.Textbox(lines=1, placeholder="Enter your Hugging Face API key", type="password")  # API key input
    ], 
    outputs="text", 
    title="Code Assistant with Qwen2.5-Coder", 
    description="A code assistant that helps you with code generation, debugging, and explanations using the Qwen2.5-Coder model via Hugging Face Inference API."
)

# Launch the interface
iface.launch()