Commit cc2f09b9 authored by Yesil's avatar Yesil
Browse files

Upload New File

parent f3a48be8
import os
import openai
import PyPDF2
import tiktoken
API_KEY = "" # meinen API-Schlüssel habe ich entfernt.
PDF_FOLDER = "." # Ordner, in dem die PDF-Dateien liegen (im gleichen Verzeichnis wie das Skript)
PROMPTS = [
# Titelbereich
"Du bist Forschender an einer Hochschule im Bereich Geoinformatik. Auf Grundlage, der zur Verfügung stehenden Forschungsprojektdaten, erstellst du für ein Forschungsposter den Titelbereich. Dieser beinhaltet den Titel des Projekts, sämtliche Autoren und Autorinnen, die Institution und den Zeitraum.",
# Einleitungsbereich
"Du bist Forschender an einer Hochschule im Bereich Geoinformatik. Auf Grundlage, der zur Verfügung stehenden Forschungsprojektdaten, erstellst du für ein Forschungsposter die Einleitung. Diese soll in maximal drei Sätzen verfasst sein und die Relevanz des Forschungsthemas, die Problemstellung sowie den gesellschaftlichen und technischen Kontext darstellen.",
# Zielsetzungsbereich
"Du bist Forschender an einer Hochschule im Bereich Geoinformatik. Auf Grundlage, der zur Verfügung stehenden Forschungsprojektdaten, erstellst du für ein Forschungsposter die Zielsetzung. Eine konkrete Zielsetzung ist in den Forschungsprojektdaten enthalten. Analysiere die Forschungsdaten und extrahiere das Ziel des Forschungsprojekts.",
# Methodikbereich
"Du bist Forschender an einer Hochschule im Bereich Geoinformatik. Auf Grundlage, der zur Verfügung stehenden Forschungsprojektdaten, erstellst du für ein Forschungsposter die Methodik. Analysiere die Forschungsprojektdaten und gebe die verwendeten Methoden, Technologien und Systeme kurz und verständlich wieder.",
# Ergebnisbereich
"Du bist Forschender an einer Hochschule im Bereich Geoinformatik. Auf Grundlage, der zur Verfügung stehenden Forschungsprojektdaten, erstellst du für ein Forschungsposter die Ergebnisse. Fasse das zentrale Ergebnis des Forschungsprojektes zusammen und gib es klar und verständliche wieder.",
# Fazitbereich
"Du bist Forschender an einer Hochschule im Bereich Geoinformatik. Auf Grundlage, der zur Verfügung stehenden Forschungsprojektdaten, erstellst du für ein Forschungsposter das Fazit. Fasse die zentrale Aussage des Forschungsprojekts zusammen und gibt einen Ausblick auf zukünftige Arbeiten und offene Fragen."
]
OUTPUT_FILE = "KI_output.txt"
# OpenAI Zugriff
openai.api_key = API_KEY
def extract_text_from_pdf(pdf_path):
with open(pdf_path, "rb") as f:
reader = PyPDF2.PdfReader(f)
text = ""
for page in reader.pages:
text += page.extract_text() or ""
return text
# Alle PDF-Dateien im angegebenen Ordner finden
pdf_files = [os.path.join(PDF_FOLDER, f) for f in os.listdir(PDF_FOLDER) if f.lower().endswith('.pdf')]
# Alle PDF-Inhalte in einem String zusammenfassen
all_pdf_text = ""
for pdf_file in pdf_files:
all_pdf_text += f"\n--- {os.path.basename(pdf_file)} ---\n"
all_pdf_text += extract_text_from_pdf(pdf_file)
# Kombiniere alle PDF-Inhalte in einer Textdatei
concatenated_file_path = "all_pdfs_concatenated.txt"
with open(concatenated_file_path, "w", encoding="utf-8") as f:
f.write(all_pdf_text)
print(f"Concatenated PDF text saved to {concatenated_file_path}")
# Lese den Inhalt der kombinierten Textdatei
with open(concatenated_file_path, "r", encoding="utf-8") as f:
concatenated_text = f.read()
# Sende die Anfragen an OpenAI für alle Prompts
results = []
for prompt in PROMPTS:
print(f"Sending prompt: {prompt} for concatenated text")
response = openai.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "Du bist Forschender an einer Hochschule."},
{"role": "user", "content": f"{prompt}\n\nDocuments:\n{concatenated_text}"}
],
max_tokens=1024,
temperature=0.2
)
answer = response.choices[0].message.content.strip()
results.append(f"Prompt: {prompt}\nResponse:\n{answer}\n{'-'*40}\n")
# Speichere die Ergebnisse in einer Textdatei
with open(OUTPUT_FILE, "w", encoding="utf-8") as f:
f.writelines(results)
print(f"All responses saved to {OUTPUT_FILE}")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment