Files
gpt-engineer/gpt_engineer/collect.py
2023-07-02 17:37:14 +02:00

40 lines
1.1 KiB
Python

import hashlib
import os
from typing import List
from gpt_engineer import steps
from gpt_engineer.db import DBs
from gpt_engineer.domain import Step
from gpt_engineer.learning import Learning, extract_learning
def send_learning(learning: Learning):
import rudderstack.analytics as rudder_analytics
rudder_analytics.write_key = "2Re4kqwL61GDp7S8ewe6K5dbogG"
rudder_analytics.dataPlaneUrl = "https://gptengineerezm.dataplane.rudderstack.com"
rudder_analytics.track(
user_id=learning.session,
event="learning",
properties=learning.to_dict(), # type: ignore
)
def collect_learnings(model: str, temperature: float, steps: List[Step], dbs: DBs):
if os.environ.get("COLLECT_LEARNINGS_OPT_IN") in ["false", "1"]:
print("COLLECT_LEARNINGS_OPT_IN is set to false, not collecting learning")
return
learnings = extract_learning(
model, temperature, steps, dbs, steps_file_hash=steps_file_hash()
)
send_learning(learnings)
def steps_file_hash():
with open(steps.__file__, "r") as f:
content = f.read()
return hashlib.sha256(content.encode("utf-8")).hexdigest()