http://franz.com/ns/allegrograph/8.0.0/llm/response
Ask GPT for a list of responses.
Namespace:
PREFIX llm: <http://franz.com/ns/allegrograph/8.0.0/llm/>
General forms:
?response llm:response ?prompt.
(?response ?node) llm:response ?prompt.
For example, the pattern
?response llm:response "list 10 US States".
will bind ?response
to ten string literals extracted from the OpenAI API JSON response.
The predicate binds an optional second parameter ?node
with a unique IRI. For example
(?celebrity ?node) llm:response "write a list of 10 celebrities".
binds the response ?node
to a unique URI like
http://franz.com/ns/allegrograph/8.0.0/llm/node#2baf1f40105d9501fe319a8ec463fdf4
A query may use this IRI to link the response to other resources and add properties:
INSERT {
?node :name ?celebrity.
} WHERE {
(?celebrity ?node) llm:response "write a list of 10 celebrities".
}
API Key
You need an API key to utilize this predicate. You need an OpenAI API key to utilize this predicate. See https://platform.openai.com/overview for instructions on obtaining a key (start with the Quickstart Tutorial and follow the links there to get a key). There are three ways to configure your API key, as a query option prefix or in a couple of places in the Allegrograph configuration.
As a query option prefix, write:
PREFIX franzOption_openaiApiKey: <franz:sk-U01ABc2defGHIJKlmnOpQ3RstvVWxyZABcD4eFG5jiJKlmno>
Syntax for config file:
QueryOption openaiApiKey=<franz:sk-U01ABc2defGHIJKlmnOpQ3RstvVWxyZABcD4eFG5jiJKlmno>
In the file data/settings/default-query-options
:
(("franzOption_openaiApiKey" "<franz:sk-U01ABc2defGHIJKlmnOpQ3RstvVWxyZABcD4eFG5jiJKlmno>"))
API Options
The proprietary OpenAI API exposes many options and parameters for interaction with their LLM models. Currently the AllegroGraph magic predicates and functions take an opinionated approach and hide most of these options behind the scenes. Specifically, we set
API endpoint: https://api.openai.com/v1/chat/completions
Endpoint parameters:
best-of: openai-default-best-of
echo: openai-default-echo
frequency-penalty:openai-default-frequency-penalty
logit-bias: openai-default-logit-bias
logprobs: openai-default-logprobs
max-tokens: openai-default-max-tokens
model: openai-default-ask-chat-model
n: openai-default-n
output-format: openai-default-output-format
presence-penalty: openai-default-presence-penalty
stop: openai-default-stop
suffix: openai-default-suffix
temperature: openai-default-temperature
timeout: openai-default-timeout
top-p: openai-default-top-p
user: openai-default-user
verbose: nil
functions:
[{"name":"arrayofstrings",
"description":"function to list an array of specified items","parameters":
{"type":"object",
"properties":
{"array":
{"description":"the list of items",
"type":"array",
"items":{"type":"string"}}}}}]
function-call: {"name":"arrayofstrings"}
Additionally we impose an API timeout of 10 seconds.
Finally, when the OpenAI API times out, returns an error, or the magic predicate implementation fails to parse the response, or any other error occurs, the magic predicate displays an informative message in Webview. Please contact AllegroGraph Support if you require different API options or customization.
Notes
The following namespace abbreviations are used:
- fti - <http://franz.com/ns/allegrograph/2.2/textindex/>
- geo - <http://franz.com/ns/allegrograph/3.0/geospatial/>
- geofn - <http://franz.com/ns/allegrograph/3.0/geospatial/fn/>
- nd - <http://franz.com/ns/allegrograph/5.0/geo/nd#>
- ndfn - <http://franz.com/ns/allegrograph/5.0/geo/nd/fn#>
- sna - <http://franz.com/ns/allegrograph/4.11/sna/>
The SPARQL magic properties reference has additional information on using AllegroGraph magic properties and functions.