Add pipeline code
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
"""One call to an OpenAI-compatible chat endpoint. Used only for summaries, and only when a switch is on."""
|
||||
import json
|
||||
import os
|
||||
import urllib.request
|
||||
|
||||
|
||||
def complete(cfg, system, user):
|
||||
c = cfg["llm"]
|
||||
if not c["endpoint"]:
|
||||
raise SystemExit("a summary switch is on but llm.endpoint is empty in settings.yaml")
|
||||
headers = {"Content-Type": "application/json"}
|
||||
if c.get("api_key_env"):
|
||||
headers["Authorization"] = "Bearer " + os.environ[c["api_key_env"]]
|
||||
body = {"model": c["model"], "temperature": 0,
|
||||
"messages": [{"role": "system", "content": system}, {"role": "user", "content": user}]}
|
||||
req = urllib.request.Request(c["endpoint"], json.dumps(body).encode(), headers)
|
||||
with urllib.request.urlopen(req, timeout=c["timeout_s"]) as r:
|
||||
return json.load(r)["choices"][0]["message"]["content"].strip()
|
||||
Reference in New Issue
Block a user