Skip to content

Commit

Permalink
Update plugins (xlang-ai#135)
Browse files Browse the repository at this point in the history
  • Loading branch information
Timothyxxx authored May 28, 2024
1 parent fe73ac4 commit fab2c1b
Show file tree
Hide file tree
Showing 1,331 changed files with 42,288 additions and 0 deletions.
Empty file.
34 changes: 34 additions & 0 deletions real_agents/plugins_agent/plugins/ABCmouse/ai-plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"id": "plugin-c6175037-25c5-4b97-a2b7-828a016be2f8",
"domain": "ai.abcmouse.com",
"namespace": "ABCmouse",
"status": "approved",
"manifest": {
"schema_version": "v1",
"name_for_model": "ABCmouse",
"name_for_human": "ABCmouse",
"description_for_model": "Assistant uses the ABCmouse plugin to get relevant learning activity suggestions for any child 2-8 years of age. Assistant will reply with the following 3 paragraphs 1) Activity Search Results [image] and [url] 2) Activity Learning Objectives [description] and [learning_objective] 3) Followup Questions. The first paragraph contains a list of the activities [url] with their learning attributes listed clearly and concisely as bullet points under the product [description], together with a link to the activity [url] and an explanation [learning_objective]. Links will always be returned and should be shown to the user. Assistant suggestions consider only the most important objectives of the activities [description, learning_objective] that will help them fit the users request, and each activity [url] mention is brief, short and concise. In the third paragraph assistant always asks helpful follow-up questions and end with a question mark. When assistant is asking a follow-up question, it uses its learning activity expertise to provide information pertaining to the subject of the user\u2019s request that may guide them in their search for the right activity.",
"description_for_human": "Provides fun and educational learning activities for children 2-8 years old.",
"auth": {
"type": "none"
},
"api": {
"type": "openapi",
"url": "https://ai.abcmouse.com/openapi.yml"
},
"logo_url": "https://ai.abcmouse.com/logo.png",
"contact_email": "[email protected]",
"legal_info_url": "https://ai.abcmouse.com/legal"
},
"oauth_client_id": null,
"user_settings": {
"is_installed": false,
"is_authenticated": true
},
"categories": [
{
"id": "newly_added",
"title": "New"
}
]
}
85 changes: 85 additions & 0 deletions real_agents/plugins_agent/plugins/ABCmouse/openapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
openapi: 3.0.0
info:
version: src
title: ABCmouseMobileServiceLayer
description: Provides fun and educational learning activities for children 2-8 years old.
servers:
- url: https://ai.abcmouse.com/ws/ai/0.1/gpt
description: Production server (uses live data)
paths:
/ChatPlugin/RecommendActivities/:
post:
operationId: ChatPluginRecommendActivities
summary: 'API for fetching a list of learning activities based on the users search criteria'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChatPluginRecommendActivitiesRequest'
responses:
'200':
description: 'Activities found'
content:
application/json:
schema:
$ref: '#/components/schemas/ChatPluginRecommendActivitiesResponse'
'500':
description: 'One or more services is unavailable'
components:
schemas:
ChatPluginRecommendActivitiesResponse:
description: ''
type: object
properties:
activities:
type: array
items:
$ref: '#/components/schemas/ChatPluginActivity'
ChatPluginActivity:
description: ''
type: object
properties:
name:
type: string
nullable: false
url:
type: string
nullable: false
ChatPluginRecommendActivitiesRequest:
description: ''
type: object
properties:
search_term:
description: '(Optional) A general search term used to find activities, you should exclude connectors like "and" or "or"'
type: string
nullable: false
subjects:
description: '(Optional) A list of subjects to filter, Either explicitly stated by the user or implicitly inferred by the users request'
type: array
nullable: true
items:
type: string
nullable: true
enum:
- Math
- ELA
- Science
- Art
- Music
- ELL
- Health
grade_level:
description: '(Optional) The childs grade level, Either explicitly stated by the user or implicitly inferred by the users request'
type: string
nullable: true
enum:
- Pre-K
- Kindergarten
- 1st Grade
- 2nd Grade
age:
description: '(Optional) The childs grade level, Either explicitly stated by the user or implicitly inferred by the users request'
type: number
nullable: true
minimum: 2
maximum: 7
3 changes: 3 additions & 0 deletions real_agents/plugins_agent/plugins/ABCmouse/paths/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
path_dict = {
"recommend_activities": "/ChatPlugin/RecommendActivities/"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import requests
from typing import Any, Dict


def call_api(input_json: Dict[str, Any]) -> Dict[str, Any]:
url = "https://ai.abcmouse.com/ws/ai/0.1/gpt/ChatPlugin/RecommendActivities/"
response = requests.post(url, json=input_json)

if response.status_code == 200:
return response.json()
else:
return {"status_code": response.status_code, "text": response.text}
Empty file.
34 changes: 34 additions & 0 deletions real_agents/plugins_agent/plugins/Agones/ai-plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"id": "plugin-8b2a2334-361e-4813-83b1-d04ac231161b",
"domain": "agones.gr",
"namespace": "Agones",
"status": "approved",
"manifest": {
"schema_version": "v1",
"name_for_model": "Agones",
"name_for_human": "Agones",
"description_for_model": "Access soccer match results from Agones. Keep in mind soccer is called football in Europe.\r\nResults go back to 2007 until current games being played right now and all scheduled matches for the next 10 days.\r\nResults cover most countries and leagues in the world.\r\nGuidelines:\r\n- Use single-line string for team1, team2 and all other parameters.\r\n- Pass date_from and date_until in a YYYY-MM-DD format\r\n- If one team is passed, returned matches will be about this team and any other opponent.\r\n- If two teams are passed, matches between these two teams will be returned.\r\n- if date_type is 'latest', then the most recent match will be returned.\r\n- If date_type is 'next', then the next match will be returned.\r\n- If date_type is 'range', then all matches between date_from and date_until will be returned.\r\n- Only use date_from and date_until when date_type is 'range' - otherwise these are not used.\r\n- If a match is currently live, the current minute will also be provided.\r\n\r\nResults are an array of dictionaries in the format:\r\n{\r\n \"home_team\": \"Liverpool\",\r\n \"away_team\": \"Arsenal\",\r\n \"match_date\": \"2023-05-02\",\r\n \"state\": \"finished\"\r\n \"score_halftime\": \"2 - 0\",\r\n \"score_current\": \"4 - 0\"\r\n}",
"description_for_human": "Agones provides soccer (football) results for matches played all over the world in the past 15 years.",
"auth": {
"type": "none"
},
"api": {
"type": "openapi",
"url": "https://agones.gr/.well-known/chatgpt.json"
},
"logo_url": "https://agones.gr/static/img/favicon/android-chrome-192x192.png",
"contact_email": "[email protected]",
"legal_info_url": "https://agones.gr/terms"
},
"oauth_client_id": null,
"user_settings": {
"is_installed": false,
"is_authenticated": true
},
"categories": [
{
"id": "newly_added",
"title": "New"
}
]
}
59 changes: 59 additions & 0 deletions real_agents/plugins_agent/plugins/Agones/openapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
openapi: 3.1.0
info:
title: Agones
version: v0.2
description: Agones provides soccer (football) results for matches played all over
the world in the past 15 years.
servers:
- url: https://agones.gr
description: Agones Server for ChatGPT
paths:
"/api/chatgpt":
get:
operationId: getAgonesResults
summary: Get result of soccer game
responses:
'200':
description: The result of the Agones query
content:
text/plain: {}
'500':
description: Agones was unable to generate a result
'501':
description: Agones was unable to generate a result
'503':
description: Service temporarily unavailable.
parameters:
- name: team1
in: query
description: The first soccer team
required: true
schema:
type: string
- name: team2
in: query
description: The second soccer team
required: false
schema:
type: string
- name: date_type
in: query
description: 'A choice between: latest, next, range'
required: true
schema:
type: string
- name: date_from
in: query
description: A date in yyyy-mm-dd format, only for when date_type is range.
Results for this date will be included.
required: false
schema:
type: string
- name: date_until
in: query
description: A date in yyyy-mm-dd format, only for when date_type is range.
Results for this date will be included.
required: false
schema:
type: string
3 changes: 3 additions & 0 deletions real_agents/plugins_agent/plugins/Agones/paths/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
path_dict = {
"chatgpt_results": "/api/chatgpt"
}
11 changes: 11 additions & 0 deletions real_agents/plugins_agent/plugins/Agones/paths/chatgpt_results.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from typing import Any, Dict
import requests


def call_api(input_json: Dict[str, Any]) -> Dict[str, Any]:
response = requests.get("https://agones.gr/api/chatgpt", params=input_json)

if response.status_code == 200:
return response.json()
else:
return {"status_code": response.status_code, "text": response.text}
Empty file.
34 changes: 34 additions & 0 deletions real_agents/plugins_agent/plugins/Ai_PDF/ai-plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
{
"id": "plugin-027a8b9d-7f54-42d3-8a04-1b6391997cf8",
"domain": "plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app",
"namespace": "Ai_PDF",
"status": "approved",
"manifest": {
"schema_version": "v1",
"name_for_model": "Ai_PDF",
"name_for_human": "Ai PDF",
"description_for_model": "Provide a URL to a PDF and search the document. Break the user question in multiple semantic search queries and calls as needed. Think step by step.",
"description_for_human": "Super-fast, interactive chats with PDFs of any size, complete with page references for fact checking.",
"auth": {
"type": "none"
},
"api": {
"type": "openapi",
"url": "https://plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app/openapi.yaml"
},
"logo_url": "https://plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app/logo.png",
"contact_email": "[email protected]",
"legal_info_url": "https://plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app/legal.html"
},
"oauth_client_id": null,
"user_settings": {
"is_installed": false,
"is_authenticated": true
},
"categories": [
{
"id": "newly_added",
"title": "New"
}
]
}
61 changes: 61 additions & 0 deletions real_agents/plugins_agent/plugins/Ai_PDF/openapi.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
openapi: 3.0.1
info:
title: Ai PDF
description: Super-fast, interactive chats with PDFs of any size, complete with page references for fact checking.
version: 'v1.0'
servers:
- url: https://plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app
paths:
/summarize_pdf:
post:
operationId: summarize_pdf
summary: Provide the summary or highlights of the PDF linked. ALWAYS PROVIDE QUOTES AND PAGE CITIATIONS. Add at the end of your summary this We finished processing the whole document with the PDF Search plugin. What else would you like to know?
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
pdf_url:
type: string
required:
- pdf_url
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
type: string
description: Doc summary or top k chunks most likely to contain highlights.
/upload_and_search_pdf:
post:
operationId: upload_and_search_pdf
summary: Semantic query into a URL link to a document. THINK STEP BY STEP. ALWAYS PROVIDE QUOTES AND PAGE CITIATIONS. BREAK COMPLEX QUESTIONS INTO SEVERAL QUERIES.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
pdf_url:
type: string
query:
type: string
required:
- pdf_url
- query
responses:
"200":
description: OK
content:
application/json:
schema:
type: array
items:
type: string
description: The top k matching chunks from the search query.
1 change: 1 addition & 0 deletions real_agents/plugins_agent/plugins/Ai_PDF/paths/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
path_dict = {"summarize_pdf": "/summarize_pdf", "upload_and_search_pdf": "/upload_and_search_pdf"}
14 changes: 14 additions & 0 deletions real_agents/plugins_agent/plugins/Ai_PDF/paths/summarize_pdf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from typing import Any, Dict

import requests


def call_api(input_json: Dict[str, Any]) -> Dict[str, Any]:
response = requests.post(
"https://plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app/summarize_pdf", json=input_json
)

if response.status_code == 200:
return response.json()
else:
return {"status_code": response.status_code, "text": response.text}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from typing import Any, Dict

import requests


def call_api(input_json: Dict[str, Any]) -> Dict[str, Any]:
response = requests.post(
"https://plugin-3c56b9d4c8a6465998395f28b6a445b2-jexkai4vea-uc.a.run.app/upload_and_search_pdf",
json=input_json,
)

if response.status_code == 200:
return response.json()
else:
return {"status_code": response.status_code, "text": response.text}
Empty file.
Loading

0 comments on commit fab2c1b

Please sign in to comment.