GeneFunctions
GeneFunctions · GPT Actions
ScholarAI
Allows the user to search facts and findings from scientific articles
GET /api/abstractsGet relevant paper abstracts by search 2-6 relevant keywords.GET /api/fulltextGet full text of a paper by URL for PDF incrementally. Good for general summary. DO NOT use this endpoint for singular questions, use /api/question instead.GET /api/save-citationSave citation to reference managerGET /api/questionGet sections of PDF to answer questions about PDF. ALWAYS use this endpoint if the user has a specific question about a singular PDF.GET /api/literature_mapFind papers related to another paper using their ss_idGET /api/get_paper_metadataFind a singular paper's data using an arbitrary identifier, like a DOI or PMID.
原始 API 定义
{
"openapi": "3.0.1",
"info": {
"title": "ScholarAI",
"description": "Allows the user to search facts and findings from scientific articles",
"version": "v1"
},
"servers": [
{
"url": "https://scholar-ai.net"
}
],
"paths": {
"/api/abstracts": {
"get": {
"operationId": "searchAbstracts",
"summary": "Get relevant paper abstracts by search 2-6 relevant keywords.",
"parameters": [
{
"name": "keywords",
"in": "query",
"description": "Keywords of inquiry which should appear in article. Must be in English.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "sort",
"in": "query",
"description": "The sort order for results. Valid values are relevance, cited_by_count, publication_date. Defaults to relevance.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "query",
"in": "query",
"description": "The user query",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "peer_reviewed_only",
"in": "query",
"description": "Whether to only return peer reviewed articles. Defaults to true, ChatGPT should cautiously suggest this value can be set to false",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "start_year",
"in": "query",
"description": "The first year, inclusive, to include in the search range. Excluding this value will include all years.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "end_year",
"in": "query",
"description": "The last year, inclusive, to include in the search range. Excluding this value will include all years.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "offset",
"in": "query",
"description": "The offset of the first result to return. Defaults to 0.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "num_results_to_show",
"in": "query",
"description": "The number of results to return. Defaults to 4.",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/searchAbstractsResponse"
}
}
}
}
}
}
},
"/api/fulltext": {
"get": {
"operationId": "getFullText",
"summary": "Get full text of a paper by URL for PDF incrementally. Good for general summary. DO NOT use this endpoint for singular questions, use /api/question instead.",
"parameters": [
{
"name": "pdf_url",
"in": "query",
"description": "URL for PDF",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "chunk",
"in": "query",
"description": "chunk number to retrieve, defaults to 1",
"required": false,
"schema": {
"type": "number"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/paperContentResponse"
}
}
}
}
}
}
},
"/api/save-citation": {
"get": {
"operationId": "saveCitation",
"summary": "Save citation to reference manager",
"parameters": [
{
"name": "doi",
"in": "query",
"description": "Digital Object Identifier (DOI) of article",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "zotero_user_id",
"in": "query",
"description": "Zotero User ID",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "zotero_api_key",
"in": "query",
"description": "Zotero API Key",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/saveCitationResponse"
}
}
}
}
}
}
},
"/api/question": {
"get": {
"operationId": "question",
"summary": "Get sections of PDF to answer questions about PDF. ALWAYS use this endpoint if the user has a specific question about a singular PDF.",
"parameters": [
{
"name": "question",
"in": "query",
"description": "The user question. Must be in English.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "pdf_url",
"in": "query",
"description": "URL for source PDF",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/paperContentResponse"
}
}
}
},
"402": {
"description": "Premium required",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/premiumRequiredResponse"
}
}
}
}
}
}
},
"/api/literature_map": {
"get": {
"operationId": "literatureMap",
"summary": "Find papers related to another paper using their ss_id",
"parameters": [
{
"name": "ss_id",
"in": "query",
"description": "The ss_id of the paper to find related papers for.",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "query",
"in": "query",
"description": "Desired theme of related papers found. Should be provided if the user wants to find similar papers of a particular theme.",
"required": false,
"schema": {
"type": "string"
}
},
{
"name": "adjacent_type",
"in": "query",
"description": "Type of adjacent papers being request. Valid options are 'citedBy', 'references', and 'recommended'. Argument should be a collection of the desired adjacent papers, comma separated. Defaults to 'citedBy,references,recommended'.",
"required": false,
"schema": {
"type": "string"
}
}
]
}
},
"/api/get_paper_metadata": {
"get": {
"operationId": "getPaperMetadata",
"summary": "Find a singular paper's data using an arbitrary identifier, like a DOI or PMID.",
"parameters": [
{
"name": "paper_id",
"in": "query",
"description": "The identifier of the paper to find. MUST be of the format <identifier_type>:<identifier_value>. Identifier type can be one of DOI, PMID, SS_ID, ARXIV, MAG, ACL, or PMCID.",
"required": true,
"schema": {
"type": "string"
}
}
]
}
}
},
"components": {
"schemas": {
"searchAbstractsResponse": {
"type": "object",
"properties": {
"next_offset": {
"type": "number",
"description": "The offset of the next page of results."
},
"total_num_results": {
"type": "number",
"description": "The total number of results."
},
"abstracts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"abstract": {
"type": "string",
"description": "Summary of the context, methods, results, and conclusions of the paper."
},
"doi": {
"type": "string",
"description": "The DOI of the paper."
},
"landing_page_url": {
"type": "string",
"description": "Link to the paper on its open-access host."
},
"pdf_url": {
"type": "string",
"description": "Link to the paper PDF."
},
"publicationDate": {
"type": "string",
"description": "The date the paper was published in YYYY-MM-DD format."
},
"relevance": {
"type": "number",
"description": "The relevance of the paper to the search query. 1 is the most relevant."
},
"creators": {
"type": "array",
"items": {
"type": "string",
"description": "The name of the creator."
}
},
"cited_by_count": {
"type": "number",
"description": "The number of citations of the article."
},
"ss_id": {
"type": "string",
"description": "Unique identifier for the paper."
}
}
},
"description": "The list of relevant abstracts."
}
}
},
"paperContentResponse": {
"type": "object",
"properties": {
"chunks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"chunk_num": {
"type": "number",
"description": "The chunk number of the paper."
},
"chunk": {
"type": "string",
"description": "The chunk of the paper."
},
"img_mds": {
"type": "list",
"description": "List of content that appears in the current chunk. Display ALL markdown, including images. The viewing platform ALWAYS supports markdown, ALWAYS show the images."
},
"pdf_url": {
"type": "string",
"description": "Link to the paper PDF."
}
}
},
"description": "The chunk of the paper."
},
"total_chunk_num": {
"type": "number",
"description": "The total chunks of the paper."
},
"hint": {
"type": "string",
"description": "Instructions for GPT to follow regarding this response."
}
}
},
"saveCitationResponse": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Confirmation of successful save or error message."
}
}
},
"premiumRequiredResponse": {
"type": "object",
"properties": {
"hint": {
"type": "string",
"description": "Suggestion to use premium or alternative for free users."
}
}
}
}
}
}