-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelix.yaml
218 lines (193 loc) · 7.89 KB
/
helix.yaml
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
name: JIRA issues
description: ""
avatar: https://logowik.com/content/uploads/images/jira3124.jpg
image: https://www.ibm.com/content/dam/adobe-cms/case-studies/en/case-studies/alinma-bank/static/img1_1600w.component.xl-retina.ts=1716488498778.jpg/content/adobe-cms/us/en/case-studies/alinma-bank-websphere-liberty/jcr:content/root/leadspace_container/leadspace
assistants:
- apis:
- name: JIRA issue search
description: Search JIRA issues
url: ${JIRA_HOSTNAME}
schema: |
openapi: 3.0.0
info:
title: Jira Cloud REST API
description: The Jira Cloud REST API
version: 1.0.0
paths:
/rest/api/3/search:
get:
summary: Search for issues using JQL (GET)
description: Searches for issues using JQL.
operationId: searchForIssuesUsingJql
parameters:
- name: jql
in: query
description: The JQL that defines the search
schema:
type: string
- name: startAt
in: query
description: The index of the first item to return in the page of results (page offset). The base index is 0.
schema:
type: integer
default: 0
- name: maxResults
in: query
description: The maximum number of items to return per page. The default is 50 and the maximum is 100.
schema:
type: integer
default: 10
- name: fields
in: query
description: A list of fields to return for each issue, use it to retrieve a subset of fields. This parameter accepts a comma-separated list.
schema:
type: array
items:
type: string
default: summary,comment
- name: expand
in: query
description: Use expand to include additional information about issues in the response. This parameter accepts a comma-separated list.
schema:
type: string
responses:
'200':
description: Returned if the request is successful.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResults'
components:
schemas:
SearchResults:
type: object
properties:
expand:
type: string
startAt:
type: integer
maxResults:
type: integer
total:
type: integer
issues:
type: array
items:
$ref: '#/components/schemas/Issue'
Issue:
type: object
properties:
id:
type: string
key:
type: string
fields:
$ref: '#/components/schemas/IssueFields'
IssueFields:
type: object
additionalProperties: true
description: Issue fields are dynamic and depend on the Jira instance configuration
headers:
Authorization: Basic ${AUTH_STRING}
query: {}
request_prep_template: |
Your output must be a valid json, without any commentary or additional formatting.
Examples:
**User Input:** Get project prj_1234 details
**OpenAPI schema path:** /projects/{projectId}
**Verdict:** response should be {"projectId": "prj_1234"}
**User Input:** List all users with status "active"
**OpenAPI schema path:** /users/findByStatus
**OpenAPI schema parameters:** [
{
"name": "status",
"in": "query",
"description": "Status values that need to be considered for filter",
"required": true,
"type": "array",
"items": {
"type": "string",
"enum": ["active", "pending", "sold"],
"default": "available"
}
}
]
**Verdict:** response should be:
```json
{
"status": "active"
}
```
**Response Format:** Always respond with JSON without any commentary, wrapped in markdown json tags, for example:
```json
{
"parameterName": "parameterValue",
"parameterName2": "parameterValue2"
}
```
===END EXAMPLES===
OpenAPI schema:
{{.Schema}}
===END OPENAPI SCHEMA===
Based on conversation so far, construct a valid JSON object. In cases where user input does not contain information for a query, DO NOT add that specific query parameter to the output. If a user doesn't provide a required parameter, use sensible defaults for required params, and leave optional params out.
ONLY use search parameters from the user messages above - do NOT use search parameters provided in the examples.
Examples of how to specify jql:
- "what issues are there" -> ""
- "get all issues assigned to me" -> "assignee = currentUser()"
- "show tickets assigned to Phil Winder" -> "assignee = 'Phil Winder'"
- "write code for issue DS-9" -> "key = DS-9"
- "show me overdue issues" -> "duedate < startOfDay()"
response_success_template: |
Present the key information in a concise manner and perform any actions requested by the user.
Include relevant details, references, and links if present. Format the summary in Markdown for clarity and readability where appropriate, but don't mention formatting in your response unless it's relevant to the user's query.
Make sure to NEVER mention technical terms like "APIs, JSON, Request, etc..." and use first person pronoun (say it as if you performed the action)
Issues and tasks mean the same thing.
IMPORTANT: If the user asks you to write code, you MUST write code. Start by describing the task described in the issue, and then write the code to perform the task.
response_error_template: |
As an AI chat assistant, your job is to help the user understand and resolve API error messages.
When offering solutions, You will clarify without going into unnecessary detail. You must respond in less than 100 words.
You should commence by saying "An error occurred while trying to process your request ..." also, if you think it's auth error, ask the user to read this doc https://docs.helix.ml/helix/develop/helix-tools/ (format as markdown)
# Other assistant properties
#model: mixtral:instruct
#model: qwen2.5:7b-instruct-q8_0
model: llama3.1:8b-instruct-q8_0
name: ""
description: ""
avatar: ""
image: ""
provider: ""
type: text
system_prompt: ""
rag_source_id: ""
lora_id: ""
knowledge: []
is_actionable_template: ""
gptscripts: []
zapier: []
# Tests for this assistant
tests:
- name: Test JIRA issue search
steps:
- prompt: what issues are there?
expected_output: A list of 9 issues with brief summaries and/or details.
- name: Assigned to me
steps:
- prompt: what issues are assigned to me?
expected_output: A summary of only the tasks assigned to Luke.
- name: Assigned to Phil Winder
steps:
- prompt: what issues are assigned to Phil Winder?
expected_output: A summary of only the tasks assigned to Phil Winder.
- name: No issues assigned to Bob the Builder
steps:
- prompt: what issues are assigned to Bob the Builder?
expected_output: No issues found.
- name: Overdue issues
steps:
- prompt: show me overdue issues
expected_output: A list of issues that are overdue. There should be exactly one.
- name: write code for issue
steps:
- prompt: write code for issue DS-9
expected_output: A code snippet that fixes or implements the tic-tac-toe game.
triggers: []