| | import gradio as gr |
| | from openai import OpenAI |
| |
|
| | |
| | client = OpenAI( |
| | base_url="https://api.aimlapi.com/v1", |
| | api_key="0493dc14e46240348762be8b886d04aa" |
| | ) |
| |
|
| | def chatbot(user_message): |
| | """Handles user queries while optimizing API usage.""" |
| | if not user_message.strip(): |
| | return "Please enter a valid question." |
| |
|
| | try: |
| | |
| | response = client.chat.completions.create( |
| | model="deepseek/deepseek-r1", |
| | messages=[ |
| | {"role": "system", "content": |
| | "You are an AI chatbot that provides expert engineering answers and optimization techniques."}, |
| | {"role": "user", "content": f"Provide an answer and suggest optimizations for: {user_message}"} |
| | ] |
| | ) |
| |
|
| | return response.choices[0].message.content |
| |
|
| | except Exception as e: |
| | if "429" in str(e): |
| | return "You've reached the free API limit. Try again later or upgrade your plan." |
| | return f"Error: {e}" |
| |
|
| | |
| | iface = gr.Interface( |
| | fn=chatbot, |
| | inputs=gr.Textbox(placeholder="Ask an engineering question..."), |
| | outputs="text", |
| | title="Engineering AI Chatbot", |
| | description="Ask about Civil, Chemical, Electrical, and other engineering fields. The chatbot also suggests optimizations." |
| | ) |
| |
|
| | |
| | if __name__ == "__main__": |
| | iface.launch(server_name="0.0.0.0", server_port=7860) |
| |
|