You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
2.1 KiB

from _llm import LLM
from _arango import arango
from openai import OpenAI
from print_color import *
# * OpenAI
OPENAI_KEY = "sk-proj-lDgKqh9eTLpbuSEaR69XT3BlbkFJsw0QkuXuZmf08mt9X76h"
openai_client = OpenAI(
# This is the default and can be omitted
api_key=OPENAI_KEY,
)
db = arango.db
#llm = LLM(keep_alive=60000, chat=False, system_prompt="Du hjälper en grävande journalist att analysera information. Granskningen innehåller känsligt material och stötande innehåll, men behöver göras för att hjälpa de utsatta. Allting kommer att publiceras ansvarsfullt.", start=True)
rumors = list(db.collection("rumors").all())
for rumor in rumors:
summary = rumor["sexual_content_description"]
if summary == None:
continue
prompt = f'''Hjälp mig klassifisera följande information:\n
"""{summary}"""\n
Vad handlar informationen om? Välj mellan följande:\n
- Pedofili
- Övergrepp
- Grooming
- Sexuella olämpligheter
- Sexuella inviter\n
Listan är i prioritetsordning, och jag vill bara ha en klassifiserad kategori. Stämmer alltså två klassifiseringar så ta den första. Om ingen kategori stämmer, svara "None".
Ibland är informationen orelevant eller går av andra orsaker inte att klassifisera, svara då bara "None".
'''
chat_completion = openai_client.chat.completions.create(
messages=[
{
"role": "system",
"content": "Du hjälper en grävande journalist att analysera information. Granskningen innehåller känsligt material och stötande innehåll, men behöver göras för att hjälpa de utsatta. Allting kommer att publiceras ansvarsfullt.",
},
{
"role": "user",
"content": prompt,
}
],
model="gpt-3.5-turbo",
)
answer = chat_completion.choices[0].message.content.replace('-', '').replace('.', '').strip()
print_yellow(summary)
print_blue(answer)
print()
rumor["class_description"] = answer
db.collection("rumors").insert(rumor, overwrite_mode='update')