Did you know ... Search Documentation:
Pack prolog2gpt -- prolog/prolog2gpt.pl
PublicShow source

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

  1. Create your GPT account at https://platform.openai.com
  2. 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).
  3. 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).
  4. 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)