File size: 1,540 Bytes
f4ec833 ee6c602 9ba2a32 ee6c602 49e706c f4ec833 ee6c602 9ba2a32 ee6c602 8a773b5 ee6c602 8a773b5 f4ec833 ee6c602 f4ec833 ee6c602 8a773b5 f4ec833 5350e2e aaa37fd |
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 |
import gradio as gr
from openai import OpenAI
# NVIDIA-compatible OpenAI client
client = OpenAI(
base_url="https://integrate.api.nvidia.com/v1",
api_key="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"
)
# System message
system_prompt = {
"role": "system",
"content": "You are a helpful assistant to answer user queries."
}
# Main chat function with memory from Gradio (OpenAI-style history)
def get_text_response(user_message, history):
# Convert Gradio message history (OpenAI format) + new user message
messages = [system_prompt] + history + [{"role": "user", "content": user_message}]
# Stream response
response = ""
completion = client.chat.completions.create(
model="nvidia/llama-3.1-nemotron-70b-instruct",
messages=messages,
temperature=0.5,
top_p=1,
max_tokens=1024,
stream=True
)
for chunk in completion:
delta = chunk.choices[0].delta
if delta and delta.content:
response += delta.content
return response
# Gradio Chat UI
demo = gr.ChatInterface(
fn=get_text_response,
title="🧠 Nemotron 70B Assistant",
theme="soft",
chatbot=gr.Chatbot(height=400, type="messages"), # <-- important: type="messages"
textbox=gr.Textbox(placeholder="Ask me anything...", container=False),
examples=["How are you doing?", "What are your interests?", "Which places do you like to visit?"]
)
if __name__ == "__main__":
demo.queue().launch(share=True, debug=True)
|