-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtemplates.py
More file actions
224 lines (218 loc) · 8.18 KB
/
templates.py
File metadata and controls
224 lines (218 loc) · 8.18 KB
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
from dataclasses import dataclass, field
@dataclass
class TemplateStep:
key: str
label: str
description: str
input_type: str # 'text', 'folder', 'text_with_url'
@dataclass
class Template:
key: str
name: str
description: str
steps: list[TemplateStep] = field(default_factory=list)
questions: list[str] = field(default_factory=list)
system_prompt_template: str = ''
system_context: str = ''
TEMPLATES: dict[str, Template] = {
'interview': Template(
key='interview',
name='Interview',
description='Evaluate candidates',
steps=[
TemplateStep(
key='job_description',
label='Job Description',
description='Paste the job description or upload a PDF',
input_type='text',
),
TemplateStep(
key='resume',
label='Candidate Resume',
description='Paste the resume or upload a PDF',
input_type='text',
),
TemplateStep(
key='company_documents',
label='Company Documents',
description='Select a folder with HR docs, policies, etc.',
input_type='folder',
),
],
questions=[
"What's a good question to ask next based on this conversation?",
'Are there any red flags or concerns I should dig into?',
'How well does this candidate match the job requirements?',
'Summarize this candidate so far',
'What company info answers what they just asked?',
],
system_prompt_template=(
'You are an expert interviewer helping evaluate a job candidate in real time. '
'Be concise, actionable, and specific.\n\n'
'{job_description}\n\n'
'{resume}'
),
system_context=(
'You are helping an interviewer evaluate a job candidate in real time. '
'Focus on assessing role fit, identifying red flags, and suggesting '
'follow-up questions based on what the candidate says.'
),
),
'standup': Template(
key='standup',
name='Stand-up',
description='Stay sharp in standups',
steps=[
TemplateStep(
key='codebase',
label='Codebase',
description='Select your project folder(s) to scan',
input_type='folder',
),
TemplateStep(
key='project_docs',
label='Project Docs',
description='Select a folder with specs, tickets, or notes',
input_type='folder',
),
],
questions=[
"What's the technical context for what they just mentioned?",
'Are there any blockers or dependencies I should know about?',
'How long would that realistically take?',
'What should I ask to get more clarity?',
'Where in the codebase is what they\'re talking about?',
],
system_prompt_template=(
'You are a technical assistant with deep knowledge of the codebase and project docs. '
'Provide code-level insights, reference specific files, estimate timelines, '
'and help ask smart follow-up questions. Technical but concise.'
),
system_context=(
'You are helping a developer during a team standup meeting. '
'Reference specific files and code when possible. Provide technical '
'insights and help track action items.'
),
),
'sales_call': Template(
key='sales_call',
name='Sales Call',
description='Close deals faster',
steps=[
TemplateStep(
key='product_description',
label='Product Description',
description='Describe your product or generate from a URL',
input_type='text_with_url',
),
TemplateStep(
key='prospect_profile',
label='Prospect Profile',
description='Describe who you\'re selling to or generate from a URL',
input_type='text_with_url',
),
TemplateStep(
key='supporting_documents',
label='Supporting Documents',
description='Select a folder with contracts, case studies, pricing sheets, etc.',
input_type='folder',
),
],
questions=[
'How does our product solve what they just mentioned?',
'What objection are they raising and how should I handle it?',
"What's an outside-the-box angle to try here?",
'What should I say next to move this forward?',
'Summarize where we stand in this deal',
],
system_prompt_template=(
'You are a sales coach helping close a deal in real time. '
'Be strategic, persuasive, and honest.\n\n'
'{product_description}\n\n'
'{prospect_profile}'
),
system_context=(
'You are coaching a salesperson during a live customer call. '
'Focus on objection handling, identifying buying signals, and '
'suggesting closing strategies.'
),
),
'live_debate': Template(
key='live_debate',
name='Live Debate',
description='Win the argument',
steps=[
TemplateStep(
key='topic',
label='Topic',
description="What's being debated?",
input_type='text',
),
TemplateStep(
key='position',
label='Your Position',
description="What's your stance and why?",
input_type='text',
),
TemplateStep(
key='research',
label='Research',
description='Select files or a folder with supporting evidence',
input_type='folder',
),
],
questions=[
'Counter their last argument',
'Is what they just said accurate?',
"What's my strongest point right now?",
'What weak points do they have?',
'Summarize the debate so far',
],
system_prompt_template=(
'You are a sharp debate coach. You know the topic, understand the position, '
'and have the research ready. Suggest counterarguments, fact-check claims, '
'identify logical weaknesses, and recommend powerful responses. Quick and decisive.\n\n'
'{topic}\n\n'
'{position}'
),
system_context=(
'You are coaching a debater during a live debate. Fact-check claims '
'in real time, identify logical fallacies, and suggest counterarguments.'
),
),
'lecture': Template(
key='lecture',
name='Lecture',
description='Learn more in class',
steps=[
TemplateStep(
key='course_materials',
label='Course Materials',
description='Select a folder with slides, syllabi, textbooks, etc.',
input_type='folder',
),
TemplateStep(
key='notes',
label='Your Notes',
description="Anything you want to add — topic, what you're struggling with, etc.",
input_type='text',
),
],
questions=[
'Explain what they just said in simpler terms',
'How does this connect to what was covered earlier?',
"What's a good question to ask about this?",
'Summarize the lecture so far',
'What should I write down from that?',
],
system_prompt_template=(
'You are a tutor helping a student during a live lecture. '
'Be concise and clear.\n\n'
'{notes}'
),
system_context=(
'You are helping a student understand a lecture in real time. '
'Simplify concepts, connect ideas, and suggest questions.'
),
),
}