Vikram Vasudevan commited on
Commit
8d72355
·
1 Parent(s): f226892

career alter ego

Browse files
Files changed (7) hide show
  1. .gitignore +2 -0
  2. .gradioignore +2 -0
  3. app.py +35 -3
  4. data/linkedin.pdf +0 -0
  5. data/summary.txt +9 -0
  6. pyproject.toml +47 -0
  7. uv.lock +0 -0
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ .env
2
+ .venv/
.gradioignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ .env
2
+ .venv/
app.py CHANGED
@@ -1,7 +1,39 @@
 
 
 
1
  import gradio as gr
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
5
 
6
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  demo.launch()
 
1
+ from dotenv import load_dotenv
2
+ from openai import OpenAI
3
+ from pypdf import PdfReader
4
  import gradio as gr
5
 
 
 
6
 
7
+ def chat(message, history):
8
+ print(history)
9
+ openai = OpenAI()
10
+ response = openai.chat.completions.create(model="gpt-4o-mini", messages=[
11
+ {"role": "system", "content": system_prompt}] + history + [{"role": "user", "content": message}])
12
+ return response.choices[0].message.content
13
+
14
+
15
+ load_dotenv(override=True)
16
+ reader = PdfReader("data/linkedin.pdf")
17
+ name = "Vikram Vasudevan"
18
+ linkedin = ""
19
+ summary = ""
20
+ for page in reader.pages:
21
+ text = page.extract_text()
22
+ if text:
23
+ linkedin += text
24
+
25
+ with open("data/summary.txt", "r", encoding="utf-8") as f:
26
+ summary = f.read()
27
+
28
+ system_prompt = f"You are acting as {name}. You are answering questions on {name}'s website, \
29
+ particularly questions related to {name}'s career, background, skills and experience. \
30
+ Your responsibility is to represent {name} for interactions on the website as faithfully as possible. \
31
+ You are given a summary of {name}'s background and LinkedIn profile which you can use to answer questions. \
32
+ Be professional and engaging, as if talking to a potential client or future employer who came across the website. \
33
+ If you don't know the answer, say so."
34
+
35
+ system_prompt += f"\n\n## Summary:\n{summary}\n\n## LinkedIn Profile:\n{linkedin}\n\n"
36
+ system_prompt += f"With this context, please chat with the user, always staying in character as {name}."
37
+
38
+ demo = gr.ChatInterface(chat, type="messages")
39
  demo.launch()
data/linkedin.pdf ADDED
Binary file (54.2 kB). View file
 
data/summary.txt ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ Vikram Vasudevan is a seasoned Enterprise Architect and Principal Engineer with over 23 years of hands-on experience in delivering innovative software solutions. Known for his collaborative approach, he believes that personal growth is intrinsically linked to the development of his team, fostering an environment of mutual success. Vikram is a tool-agnostic creator and an inventive thinker, continuously evolving through practical, on-the-job learning.
2
+
3
+ His extensive expertise spans a diverse array of technologies, enabling him to design and implement highly performant OLTP applications, operational datastores, and data warehouses. He is proficient in ensuring data quality and driving process automation while also excelling in areas like test automation and DevOps—demonstrating versatility across the technology spectrum. As an accomplished cloud architect, Vikram possesses in-depth knowledge of major cloud providers, including Microsoft Azure, Google Cloud Platform, and Amazon Web Services, positioning him as an asset in any organization looking to leverage cloud capabilities.
4
+
5
+ An entrepreneur at heart, Vikram founded "Ekahaa Solutions" in 2020, driven by his passion for building and creating impactful solutions. He is the proud creator of Abstracta™, a cutting-edge data abstraction platform that exemplifies his innovative spirit.
6
+
7
+ Vikram values a workplace culture that is free from politics, encourages unrestricted exploration, and supports creativity. He is committed to delivering results that not only advance technological maturity but also optimize costs for the organization, making him an invaluable contributor ready to leave a positive mark on the world.
8
+
9
+ Personally, Vikram is very interested in Indian classical music - specifically Carnatic music and he teaches many people when he finds time.
pyproject.toml ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [project]
2
+ name = "agents"
3
+ version = "0.1.0"
4
+ description = "Add your description here"
5
+ readme = "README.md"
6
+ requires-python = ">=3.12"
7
+ dependencies = [
8
+ "anthropic>=0.49.0",
9
+ "autogen-agentchat>=0.4.9.2",
10
+ "autogen-ext[grpc,mcp,ollama,openai]>=0.4.9.2",
11
+ "bs4>=0.0.2",
12
+ "google-genai>=1.24.0",
13
+ "gradio>=5.22.0",
14
+ "httpx>=0.28.1",
15
+ "ipywidgets>=8.1.5",
16
+ "langchain-anthropic>=0.3.10",
17
+ "langchain-community>=0.3.20",
18
+ "langchain-experimental>=0.3.4",
19
+ "langchain-openai>=0.3.9",
20
+ "langgraph>=0.3.18",
21
+ "langgraph-checkpoint-sqlite>=2.0.6",
22
+ "langsmith>=0.3.18",
23
+ "lxml>=5.3.1",
24
+ "mcp-server-fetch>=2025.1.17",
25
+ "mcp[cli]>=1.5.0",
26
+ "openai>=1.68.2",
27
+ "openai-agents>=0.0.15",
28
+ "playwright>=1.51.0",
29
+ "plotly>=6.0.1",
30
+ "polygon-api-client>=1.14.5",
31
+ "psutil>=7.0.0",
32
+ "pypdf>=5.4.0",
33
+ "pypdf2>=3.0.1",
34
+ "python-dotenv>=1.0.1",
35
+ "requests>=2.32.3",
36
+ "semantic-kernel>=1.25.0",
37
+ "sendgrid>=6.11.0",
38
+ "setuptools>=78.1.0",
39
+ "smithery>=0.1.0",
40
+ "speedtest-cli>=2.1.3",
41
+ "wikipedia>=1.4.0",
42
+ ]
43
+
44
+ [dependency-groups]
45
+ dev = [
46
+ "ipykernel>=6.29.5",
47
+ ]
uv.lock ADDED
The diff for this file is too large to render. See raw diff