Introduction
This module provides prolog predicates to call the GPT API.
Large Language Models (LLM) like GPT essentially predict what text comes next, based on
learning the (latent) probabilistic relationships between text tokens. By training the
model on massive samples of text, the natural language capabilities have improved
dramatically in recent years.
However, such language models can benefit from interaction with other types of modules,
such as logic engines. To aid in developing such interactions, this library aims
to make it easy to interact with GPT directly from Prolog, using predicates that call
the GPT API.
The Prolog predicates are based on the OpenAI API Reference: https://platform.openai.com/docs/api-reference
Usage
- Create your GPT account at https://platform.openai.com
- Create an API key at https://platform.openai.com/account/api-keys and, as instructed, save that key
somewhere (e.g. in a text file in a secure folder).
- Set an environment variable called GPTKEY to the key value (don't forget in Linux that if you added the environment variable to your bash startup script, e.g. `~/.bashrc`, then you need to
source your `~/.bashrc` script to activate the new environment variable).
- Use the
prolog2gpt.pro Prolog module as usual
@author Richard de Rozario
@license MIT
- init_gptkey is semidet
- gpt_models(-Models:list) is semidet
- gpt_models(-Models:json, +Raw:boolean) is semidet
- gpt_models_detail(+Model:atom, -ModelDetails:json) is semidet
- gpt_extract_data(+Group:atom, +Fielname:atom, +Data:json, -Result:list) is semidet
- gpt_extract_fields(+Fieldname:atom, +Data:json, -Result:list) is semidet
- gpt_extract_field_pairs(+Field1:atom, +Field2:atom, +Data:json, -Result:list) is semidet
- gpt_completions(+Model:atom, +Prompt:atom, -Result:text, +Options:list) is semidet
- gpt_completions(+Model:atom, +Prompt:atom, -Result:term, ?Raw:boolean, +Options:list) is semidet
- gpt_edits(+Model:atom, +Instruction:atom, -Result:text, +Options:list) is semidet
- gpt_edits(+Model:atom, +Instruction:atom, -Result:term, ?Raw:boolean, +Options:list) is semidet
- gpt_images_create(+Prompt:atom, -Result:term, +Options:list) is semidet
- gpt_images_create(+Prompt:atom, -Result:term, ?Raw:boolean, +Options:list) is semidet
- gpt_images_edits(+Prompt:atom, -Result:term, ?Raw:boolean, +Options:list) is semidet
- gpt_images_variations(+File:atom, -Result:term, +Options:list) is semidet
- gpt_images_variations(+File:atom, -Result:term, ?Raw:boolean, +Options:list) is semidet
- gpt_files(-Result:list) is semidet
- gpt_files(-Result:list, +Raw:boolean) is semidet
- gpt_files_upload(+File:atom, +Purpose:text, -Result:list, +Raw:boolean) is semidet
- gpt_files_delete(+FileID:atom, +Purpose:text, -Result:list) is semidet
- gpt_files_retrieve(+FileID:atom, -Result:list) is semidet
- gpt_files_retrieve(+FileID:atom, -Result:list, +Raw:boolean) is semidet
- gpt_files_retrieve_content(+FileID:atom, +Purpose:text, -Result:list) is semidet
- gpt_fine_tunes(+TrainingFile:text, -Result:list) is semidet
- gpt_fine_tunes(+TrainingFile:text, -Result:list, +Raw:boolean) is semidet
- gpt_fine_tunes(-Result:list) is semidet
- gpt_fine_tunes(-Result:list, +Raw:boolean) is semidet
- gpt_fine_tunes_detail(+ID:atom, -Result:list) is semidet
- gpt_fine_tunes_detail(+ID:atom, -Result:list, +Raw:boolean) is semidet
- gpt_fine_tunes_cancel(+ID:atom, -Result:list) is semidet
- gpt_fine_tunes_cancel(+ID:atom, -Result:list, +Raw:boolean) is semidet
- gpt_fine_tunes_events(+ID:atom, -Result:list) is semidet
- gpt_fine_tunes_events(+ID:atom, -Result:list, +Raw:boolean) is semidet
- gpt_fine_tunes_delete(+ID:atom, -Result:list) is semidet
- gpt_fine_tunes_delete(+ID:atom, -Result:list, +Raw:boolean) is semidet
- gpt_moderations(+Model:atom, +Input:text, -Result:list, +Options:list) is semidet
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
- gpt_images_edits(Arg1, Arg2, Arg3, Arg4, Arg5)
- gpt_embeddings(Arg1, Arg2, Arg3, Arg4)
- gpt_embeddings(Arg1, Arg2, Arg3, Arg4, Arg5)
- gpt_files_upload(Arg1, Arg2, Arg3, Arg4, Arg5)
- gpt_files_delete(Arg1, Arg2)
- gpt_files_retrieve_content(Arg1, Arg2)
- gpt_fine_tunes(Arg1, Arg2, Arg3, Arg4)
- gpt_moderations(Arg1, Arg2, Arg3)