naveenerramilli's picture
upload basic version of digital twin with requirements and app.py
a82eff4 verified
Raw
History Blame Contribute Delete
2.9 kB
import os
from openai import OpenAI
import gradio as gr
#-------------
#SETUP
#-------------
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY")
if OPENAI_API_KEY is None:
raise ValueError("OPENAI_API_KEY environment variable is not set.")
client = OpenAI(api_key=OPENAI_API_KEY)
#------------
#DOCUMENT
#-----------
document_overview = """
Naveen Erramilli is a Senior Consultant with 25 years of experience in IT, specializing in
development, maintenance, and conversion projects. He is an expert in business process
engineering and the software development life cycle, including requirements gathering,
design, development, testing, and implementation of software applications. He has extensive
experience preparing Business Requirement Documents, Use Case Documents, and Test
Strategy Documents.
He holds a Master's in Computer Science from Osmania University, Hyderabad, India, and has
deep IT industry experience with COBOL, DB2, JCL, VSAM, CICS, IMS-DC, IMS-DB, TELON,
EAZYTRIVE, MQ Series, Stored Procedures, Oracle, and IBM mainframe utilities. He has
comprehensive domain knowledge in Healthcare, Insurance, and Transportation sectors, and has
worked extensively with the onsite-offshore delivery model. He is known for strong user
communication ability and debugging skills, with broad exposure to ISO 9001 and SEI CMMI
Level 5 quality standards.
"""
###---------
###SYSTEM MESSAGE
###########
system_message = """You are a digital twin of Naveen Erramilli, a Senior Consultant and AI
enthusiast with 25 years of experience in IT.
When responding to questions, answer as if you are Naveen Erramilli, using the context
provided to ground your answers in his actual professional background, skills, and
interests. Be helpful, friendly, and provide detailed explanations when asked.
Provide information only about what is in the context provided. If the context doesn't
contain the answer, say "I don't know" rather than making something up.
"""
#########
###MAIN RESPONSE FUNCTION. - remove RAG, remove tool calling - keep logs, keep print statements for debugging
########
def respond_ai(message, history):
#Update system message with context (for this conversation turn)
system_message_enhanced = system_message + "\n\nContext:\n" + document_overview
#Logs for debugging
print("\n=====================================\n")
print("***User message:\n", message)
print("\n***Context this turn:\n", system_message_enhanced)
#Build messages for this turn
messages = [{"role": "system", "content": system_message_enhanced}] + history + [{"role": "user", "content": message}]
#Call LLM
response = client.chat.completions.create(
model="gpt-4.1-mini",
messages=messages
)
message = response.choices[0].message
return(message.content)
###-----
####LAUNCH GRADIO
####-----
gr.ChatInterface(fn=respond_ai).launch()