bugfix
This commit is contained in:
@@ -14,7 +14,7 @@ import csv
|
||||
|
||||
# ==================== KONFIGURATION ====================
|
||||
class Config:
|
||||
VERSION = "v1.3.13" # v1.3.13: Neuer Modus 8 integriert (Batch-Token-Zählung in Spalte AQ)
|
||||
VERSION = "v1.3.13" # v1.3.13: Neuer Modus 8 (Batch-Token-Zählung in Spalte AQ) & Modus 51 (nur Verifizierung)
|
||||
LANG = "de"
|
||||
CREDENTIALS_FILE = "service_account.json"
|
||||
SHEET_URL = "https://docs.google.com/spreadsheets/d/1u_gHr9JUfmV1-iviRzbSe3575QEp7KLhK5jFV_gJcgo"
|
||||
@@ -373,7 +373,7 @@ def search_linkedin_contact(company_name, website, position_query):
|
||||
except Exception as e:
|
||||
debug_print("Fehler beim Lesen des SerpAPI-Schlüssels: " + str(e))
|
||||
return None
|
||||
search_name = company_name
|
||||
search_name = company_name # Hier kannst du auch die Kurzform verwenden, falls vorhanden.
|
||||
query = f'site:linkedin.com/in "{position_query}" "{search_name}"'
|
||||
debug_print(f"Erstelle LinkedIn-Query: {query}")
|
||||
params = {
|
||||
@@ -446,16 +446,9 @@ def count_linkedin_contacts(company_name, website, position_query):
|
||||
debug_print(f"Fehler bei der SerpAPI-Suche (Count): {e}")
|
||||
return 0
|
||||
|
||||
# ==================== NEUER MODUS 51: VERIFIZIERUNG (Nur Wikipedia + Brancheneinordnung) ====================
|
||||
def process_verification_only():
|
||||
debug_print("Starte Verifizierungs-Modus (Modus 51)...")
|
||||
processor = DataProcessor()
|
||||
for i, row in enumerate(processor.sheet_handler.sheet_values[1:], start=2):
|
||||
if len(row) <= 25 or row[24].strip() == "":
|
||||
processor._process_verification_row(i, row)
|
||||
debug_print("Verifizierungs-Modus abgeschlossen.")
|
||||
|
||||
# ==================== NEUE FUNKTION: _process_verification_row ====================
|
||||
def _process_verification_row(self, row_num, row_data):
|
||||
# Verarbeitung nur bis Spalte Y (Begründung Abweichung Branche)
|
||||
company_name = row_data[1] if len(row_data) > 1 else ""
|
||||
website = row_data[3] if len(row_data) > 3 else ""
|
||||
current_dt = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||
@@ -505,7 +498,8 @@ def _process_verification_row(self, row_num, row_data):
|
||||
debug_print(f"Zeile {row_num} verifiziert: URL: {wiki_data.get('url', 'k.A.')}, Branche: {wiki_data.get('branche', 'k.A.')}")
|
||||
time.sleep(Config.RETRY_DELAY)
|
||||
|
||||
DataProcessor._process_verification_row = _process_verification_row
|
||||
# Nach Abschluss der DataProcessor-Klasse wird diese Methode zugewiesen:
|
||||
# (Siehe unten nach der Klassendefinition)
|
||||
|
||||
# ==================== NEUER MODUS 8: BATCH-PROZESSING MIT TOKEN-ZÄHLUNG ====================
|
||||
def process_batch_token_count(batch_size=10):
|
||||
@@ -520,29 +514,26 @@ def process_batch_token_count(batch_size=10):
|
||||
sh = gc.open_by_url(Config.SHEET_URL)
|
||||
main_sheet = sh.sheet1
|
||||
data = main_sheet.get_all_values()
|
||||
# Gehe in Schritten von batch_size Zeilen durch den Datensatz
|
||||
for i in range(2, len(data)+1, batch_size):
|
||||
batch_rows = data[i-1:i-1+batch_size]
|
||||
aggregated_prompt = ""
|
||||
for row in batch_rows:
|
||||
# Verwende Spalte B (Firmenname), C (Kurzform), D (Website), E (Ort), F (Beschreibung) und G (Aktuelle Branche)
|
||||
info = []
|
||||
if len(row) > 1:
|
||||
info.append(row[1])
|
||||
info.append(row[1]) # Firmenname
|
||||
if len(row) > 2:
|
||||
info.append(row[2])
|
||||
info.append(row[2]) # Kurzform
|
||||
if len(row) > 3:
|
||||
info.append(row[3])
|
||||
info.append(row[3]) # Website
|
||||
if len(row) > 4:
|
||||
info.append(row[4])
|
||||
info.append(row[4]) # Ort
|
||||
if len(row) > 5:
|
||||
info.append(row[5])
|
||||
info.append(row[5]) # Beschreibung
|
||||
if len(row) > 6:
|
||||
info.append(row[6])
|
||||
info.append(row[6]) # Aktuelle Branche
|
||||
aggregated_prompt += "; ".join(info) + "\n"
|
||||
token_count = count_tokens(aggregated_prompt)
|
||||
debug_print(f"Batch beginnend in Zeile {i}: {token_count} Tokens")
|
||||
# Aktualisiere Spalte AQ für alle Zeilen im Batch
|
||||
for j in range(i, min(i+batch_size, len(data)+1)):
|
||||
main_sheet.update(values=[[str(token_count)]], range_name=f"AQ{j}")
|
||||
time.sleep(Config.RETRY_DELAY)
|
||||
@@ -919,6 +910,9 @@ class DataProcessor:
|
||||
f"Servicetechniker-Schätzung: {st_estimate if 'st_estimate' in locals() else 'k.A.'}")
|
||||
time.sleep(Config.RETRY_DELAY)
|
||||
|
||||
# Hier wird _process_verification_row nach der Definition von DataProcessor zugewiesen.
|
||||
DataProcessor._process_verification_row = _process_verification_row
|
||||
|
||||
# ==================== NEUER MODUS 6: CONTACT RESEARCH (via SerpAPI) ====================
|
||||
def process_contact_research():
|
||||
debug_print("Starte Contact Research (Modus 6)...")
|
||||
|
||||
Reference in New Issue
Block a user