-
Notifications
You must be signed in to change notification settings - Fork 14
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
gptplugin support openapi.yaml & ai-plugin.json config
- Loading branch information
nayutah
committed
Apr 3, 2023
1 parent
1b4b428
commit 63b1506
Showing
3 changed files
with
332 additions
and
0 deletions.
There are no files selected for viewing
306 changes: 306 additions & 0 deletions
306
deploy/chatgpt-retrieval-plugin/templates/configmap.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,306 @@ | ||
apiVersion: v1 | ||
kind: ConfigMap | ||
metadata: | ||
name: gptplugin-config | ||
namespace: {{ .Release.Namespace | quote }} | ||
labels: | ||
{{- include "gptplugin.labels" . | nindent 4 }} | ||
|
||
data: | ||
ai-plugin.json: |- | ||
{ | ||
"schema_version": "v1", | ||
"name_for_model": "retrieval", | ||
"name_for_human": "Retrieval Plugin", | ||
"description_for_model": "Plugin for searching through the user's documents (such as files, emails, and more) to find answers to questions and retrieve relevant information. Use it whenever a user asks something that might be found in their personal information, or asks you to save information for later.", | ||
"description_for_human": "Search through your documents.", | ||
"auth": { | ||
"type": "user_http", | ||
"authorization_type": "bearer" | ||
}, | ||
"api": { | ||
"type": "openapi", | ||
"url": "{{- .Values.website.url | default "https://your-app-url.com/.well-known/openapi.yaml"}}", | ||
"has_user_authentication": false | ||
}, | ||
"logo_url": "{{- .Values.website.logo_url | default "https://your-app-url.com/.well-known/logo.png"}}", | ||
"contact_email": "{{- .Values.website.contact_email | default "[email protected]"}}", | ||
"legal_info_url": "{{- .Values.website.legal_info_url | default "[email protected]"}}" | ||
} | ||
openapi.yaml: |- | ||
openapi: 3.0.2 | ||
info: | ||
title: Retrieval Plugin API | ||
description: A retrieval API for querying and filtering documents based on natural language queries and metadata | ||
version: 1.0.0 | ||
servers: | ||
- url: "{{- .Values.servers.url | default "https://your-app-url.com"}}" | ||
paths: | ||
/upsert: | ||
post: | ||
summary: Upsert | ||
description: Save chat information. Accepts an array of documents with text (potential questions + conversation text), metadata (source 'chat' and timestamp, no ID as this will be generated). Confirm with the user before saving, ask for more details/context. | ||
operationId: upsert_upsert_post | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/UpsertRequest" | ||
required: true | ||
responses: | ||
"200": | ||
description: Successful Response | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/UpsertResponse" | ||
"422": | ||
description: Validation Error | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/HTTPValidationError" | ||
security: | ||
- HTTPBearer: [ ] | ||
/query: | ||
post: | ||
summary: Query | ||
description: Accepts search query objects array each with query and optional filter. Break down complex questions into sub-questions. Refine results by criteria, e.g. time / source, don't do this often. Split queries if ResponseTooLargeError occurs. | ||
operationId: query_query_post | ||
requestBody: | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/QueryRequest" | ||
required: true | ||
responses: | ||
"200": | ||
description: Successful Response | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/QueryResponse" | ||
"422": | ||
description: Validation Error | ||
content: | ||
application/json: | ||
schema: | ||
$ref: "#/components/schemas/HTTPValidationError" | ||
security: | ||
- HTTPBearer: [ ] | ||
components: | ||
schemas: | ||
Document: | ||
title: Document | ||
required: | ||
- text | ||
type: object | ||
properties: | ||
id: | ||
title: Id | ||
type: string | ||
text: | ||
title: Text | ||
type: string | ||
metadata: | ||
$ref: "#/components/schemas/DocumentMetadata" | ||
DocumentChunkMetadata: | ||
title: DocumentChunkMetadata | ||
type: object | ||
properties: | ||
source: | ||
$ref: "#/components/schemas/Source" | ||
source_id: | ||
title: Source Id | ||
type: string | ||
url: | ||
title: Url | ||
type: string | ||
created_at: | ||
title: Created At | ||
type: string | ||
author: | ||
title: Author | ||
type: string | ||
document_id: | ||
title: Document Id | ||
type: string | ||
DocumentChunkWithScore: | ||
title: DocumentChunkWithScore | ||
required: | ||
- text | ||
- metadata | ||
- score | ||
type: object | ||
properties: | ||
id: | ||
title: Id | ||
type: string | ||
text: | ||
title: Text | ||
type: string | ||
metadata: | ||
$ref: "#/components/schemas/DocumentChunkMetadata" | ||
embedding: | ||
title: Embedding | ||
type: array | ||
items: | ||
type: number | ||
score: | ||
title: Score | ||
type: number | ||
DocumentMetadata: | ||
title: DocumentMetadata | ||
type: object | ||
properties: | ||
source: | ||
$ref: "#/components/schemas/Source" | ||
source_id: | ||
title: Source Id | ||
type: string | ||
url: | ||
title: Url | ||
type: string | ||
created_at: | ||
title: Created At | ||
type: string | ||
author: | ||
title: Author | ||
type: string | ||
DocumentMetadataFilter: | ||
title: DocumentMetadataFilter | ||
type: object | ||
properties: | ||
document_id: | ||
title: Document Id | ||
type: string | ||
source: | ||
$ref: "#/components/schemas/Source" | ||
source_id: | ||
title: Source Id | ||
type: string | ||
author: | ||
title: Author | ||
type: string | ||
start_date: | ||
title: Start Date | ||
type: string | ||
end_date: | ||
title: End Date | ||
type: string | ||
HTTPValidationError: | ||
title: HTTPValidationError | ||
type: object | ||
properties: | ||
detail: | ||
title: Detail | ||
type: array | ||
items: | ||
$ref: "#/components/schemas/ValidationError" | ||
Query: | ||
title: Query | ||
required: | ||
- query | ||
type: object | ||
properties: | ||
query: | ||
title: Query | ||
type: string | ||
filter: | ||
$ref: "#/components/schemas/DocumentMetadataFilter" | ||
top_k: | ||
title: Top K | ||
type: integer | ||
default: 3 | ||
QueryRequest: | ||
title: QueryRequest | ||
required: | ||
- queries | ||
type: object | ||
properties: | ||
queries: | ||
title: Queries | ||
type: array | ||
items: | ||
$ref: "#/components/schemas/Query" | ||
QueryResponse: | ||
title: QueryResponse | ||
required: | ||
- results | ||
type: object | ||
properties: | ||
results: | ||
title: Results | ||
type: array | ||
items: | ||
$ref: "#/components/schemas/QueryResult" | ||
QueryResult: | ||
title: QueryResult | ||
required: | ||
- query | ||
- results | ||
type: object | ||
properties: | ||
query: | ||
title: Query | ||
type: string | ||
results: | ||
title: Results | ||
type: array | ||
items: | ||
$ref: "#/components/schemas/DocumentChunkWithScore" | ||
Source: | ||
title: Source | ||
enum: | ||
- file | ||
- chat | ||
type: string | ||
description: An enumeration. | ||
UpsertRequest: | ||
title: UpsertRequest | ||
required: | ||
- documents | ||
type: object | ||
properties: | ||
documents: | ||
title: Documents | ||
type: array | ||
items: | ||
$ref: "#/components/schemas/Document" | ||
UpsertResponse: | ||
title: UpsertResponse | ||
required: | ||
- ids | ||
type: object | ||
properties: | ||
ids: | ||
title: Ids | ||
type: array | ||
items: | ||
type: string | ||
ValidationError: | ||
title: ValidationError | ||
required: | ||
- loc | ||
- msg | ||
- type | ||
type: object | ||
properties: | ||
loc: | ||
title: Location | ||
type: array | ||
items: | ||
anyOf: | ||
- type: string | ||
- type: integer | ||
msg: | ||
title: Message | ||
type: string | ||
type: | ||
title: Error Type | ||
type: string | ||
securitySchemes: | ||
HTTPBearer: | ||
type: http | ||
scheme: bearer |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -41,6 +41,15 @@ service: | |
type: ClusterIP | ||
port: 8080 | ||
|
||
servers: | ||
url: https://your-app-url.com | ||
|
||
website: | ||
url: https://your-app-url.com/.well-known/openapi.yaml | ||
logo_url: https://your-app-url.com/.well-known/logo.png | ||
contact_email: [email protected] | ||
legal_info_url: [email protected] | ||
|
||
datastore: | ||
# in list of (pinecone, weaviate, zilliz, milvus, qdrant, redis) | ||
DATASTORE: | ||
|