Model loaded!
Extracting text from data/history-roman-empire.pdf...
Processing 17 chunks (512 chars each)...
Chunk 1/17: Extracting ~1 objects...
check a
LLM Error: exception: access violation reading 0x000001FA4455E098
Chunk 2/17: Extracting ~1 objects...
check a
Я знаю, что второй блок пытается использовать поврежденное состояние llm, и поэтому происходит сбой. Но я не уверен, что является причиной ошибки LLM или как ее исправить (GPT не может этого сделать, выкупите себя за переполнение стека).
Я также понимаю, что если вы не имеете ни малейшего представления, что, черт возьми, происходит, я вынужден использовать LLM в этом проекте для uni и действительно CBA с этим модулем. Будем надеяться, что преподаватели не увидят этот пост: если вы мой профессор, то меня взломали.
def _extract_text(self, pdf_path): print(f"Extracting text from {pdf_path}...") try: with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages: t = page.extract_text() if t: self.text += t + "\n" return self.text except FileNotFoundError: print("Error: PDF file not found.") return ""
def _build_prompt(self, num_objects, text_chunk): avoid_list = ", ".join(list(self.extracted_names)[-20:]) return f""" Extract {num_objects} UNIQUE SINGULAR historical objects from the text that can be picked up and held.
STRICTLY AVOID: - Coins, tablets, manuscripts, or anything with inscriptions/text - Abstract items (concepts, ideas, events) - Architectural elements (floors, pavements, columns, walls, buildings) - Large immovable objects (statues over human size, altars, monuments) - Natural objects (rocks, plants, terrain features)
Each object MUST be a singular item that a person could carry. ALREADY EXTRACTED (DO NOT REPEAT): {avoid_list}
Return VALID JSON only: {{ "objects": [ {{ "name": "Object Name", "context": "Place here a brief historical context of the object, usage and any interesting facts, do not hallucinate." }} ] }}
if "objects" in batch_results: for obj in batch_results["objects"]: if obj["name"].lower() not in self.extracted_names: self.results["objects"].append(obj) self.extracted_names.add(obj["name"].lower()) print(f"Extracted: {obj['name']}")
return self.results
def _save_results(self, path="extraction_results.json"): with open(path, "w", encoding="utf8") as f: json.dump(self.results, f, indent=2) print(f"Successfully saved {len(self.results['objects'])} objects to {path}")
def extract(self, num_objects=10, pdf_path=""): text = self._extract_text(pdf_path) if text: self._extract_objects(num_objects) self._save_results() return self.results
if __name__ == "__main__": extractor = Extractor() extractor.extract(num_objects=10, pdf_path="data/history-roman-empire.pdf") [/code] Не могу лгать, я почти уверен, что часть этого беспорядка закодирована небрежно. При запуске файла Python происходит следующий вывод: [code]Model loaded! Extracting text from data/history-roman-empire.pdf... Processing 17 chunks (512 chars each)... Chunk 1/17: Extracting ~1 objects... check a LLM Error: exception: access violation reading 0x000001FA4455E098 Chunk 2/17: Extracting ~1 objects... check a [/code] Я знаю, что второй блок пытается использовать поврежденное состояние llm, и поэтому происходит сбой. Но я не уверен, что является причиной ошибки LLM или как ее исправить (GPT не может этого сделать, выкупите себя за переполнение стека). Я также понимаю, что если вы не имеете ни малейшего представления, что, черт возьми, происходит, я вынужден использовать LLM в этом проекте для uni и действительно CBA с этим модулем. Будем надеяться, что преподаватели не увидят этот пост: если вы мой профессор, то меня взломали.