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
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')
|
|
|