summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Sesti <sestinj@gmail.com>2023-08-28 12:46:53 -0700
committerNate Sesti <sestinj@gmail.com>2023-08-28 12:46:53 -0700
commit042bc5ac76800ee66e603ef23b2bb857fafe053e (patch)
treebc36ac739a42ce9d9938c07cf3f2ec0a41e67e81
parent972f38d7255af08ca5819751db69160933b78a4b (diff)
downloadsncontinue-042bc5ac76800ee66e603ef23b2bb857fafe053e.tar.gz
sncontinue-042bc5ac76800ee66e603ef23b2bb857fafe053e.tar.bz2
sncontinue-042bc5ac76800ee66e603ef23b2bb857fafe053e.zip
fix: :bug: fix telemetry bug
-rw-r--r--continuedev/src/continuedev/core/autopilot.py1
-rw-r--r--continuedev/src/continuedev/libs/llm/hf_inference_api.py5
-rw-r--r--continuedev/src/continuedev/libs/util/telemetry.py22
3 files changed, 21 insertions, 7 deletions
diff --git a/continuedev/src/continuedev/core/autopilot.py b/continuedev/src/continuedev/core/autopilot.py
index 5d8e7f4e..bae82739 100644
--- a/continuedev/src/continuedev/core/autopilot.py
+++ b/continuedev/src/continuedev/core/autopilot.py
@@ -285,6 +285,7 @@ class Autopilot(ContinueBaseModel):
async def edit_step_at_index(self, user_input: str, index: int):
step_to_rerun = self.history.timeline[index].step.copy()
step_to_rerun.user_input = user_input
+ step_to_rerun.description = user_input
# Halt the agent's currently running jobs (delete them)
while len(self.history.timeline) > index:
diff --git a/continuedev/src/continuedev/libs/llm/hf_inference_api.py b/continuedev/src/continuedev/libs/llm/hf_inference_api.py
index 7abd268d..4b78a247 100644
--- a/continuedev/src/continuedev/libs/llm/hf_inference_api.py
+++ b/continuedev/src/continuedev/libs/llm/hf_inference_api.py
@@ -13,6 +13,7 @@ DEFAULT_MAX_TIME = 120.0
class HuggingFaceInferenceAPI(LLM):
model: str
hf_token: str
+ self_hosted_url: str = None
max_context_length: int = 2048
verify_ssl: Optional[bool] = None
@@ -49,7 +50,9 @@ class HuggingFaceInferenceAPI(LLM):
self, prompt: str, with_history: List[ChatMessage] = None, **kwargs
):
"""Return the completion of the text with the given temperature."""
- API_URL = f"https://api-inference.huggingface.co/models/{self.model}"
+ API_URL = (
+ self.base_url or f"https://api-inference.huggingface.co/models/{self.model}"
+ )
headers = {"Authorization": f"Bearer {self.hf_token}"}
response = requests.post(
diff --git a/continuedev/src/continuedev/libs/util/telemetry.py b/continuedev/src/continuedev/libs/util/telemetry.py
index 92f77927..de28b07e 100644
--- a/continuedev/src/continuedev/libs/util/telemetry.py
+++ b/continuedev/src/continuedev/libs/util/telemetry.py
@@ -15,22 +15,28 @@ POSTHOG_API_KEY = "phc_JS6XFROuNbhJtVCEdTSYk6gl5ArRrTNMpCcguAXlSPs"
class PostHogLogger:
unique_id: str = "NO_UNIQUE_ID"
- allow_anonymous_telemetry: bool = True
+ allow_anonymous_telemetry: bool = False
+ posthog: Posthog = None
def __init__(self, api_key: str):
self.api_key = api_key
- # The personal API key is necessary only if you want to use local evaluation of feature flags.
- self.posthog = Posthog(self.api_key, host="https://app.posthog.com")
-
def setup(self, unique_id: str, allow_anonymous_telemetry: bool):
self.unique_id = unique_id or "NO_UNIQUE_ID"
- self.allow_anonymous_telemetry = allow_anonymous_telemetry or True
+ self.allow_anonymous_telemetry = allow_anonymous_telemetry or False
# Capture initial event
self.capture_event("session_start", {"os": os.name})
def capture_event(self, event_name: str, event_properties: Any):
+ """Safely capture event. Telemetry should never be the reason Continue doesn't work"""
+ try:
+ self._capture_event(event_name, event_properties)
+ except Exception as e:
+ print(f"Failed to capture event: {e}")
+ pass
+
+ def _capture_event(self, event_name: str, event_properties: Any):
# logger.debug(
# f"Logging to PostHog: {event_name} ({self.unique_id}, {self.allow_anonymous_telemetry}): {event_properties}")
telemetry_path = os.path.expanduser("~/.continue/telemetry.log")
@@ -60,11 +66,15 @@ class PostHogLogger:
if os.path.exists(server_version_file):
with open(server_version_file, "r") as f:
event_properties["server_version"] = f.read()
-
+
# Add operating system
event_properties["os"] = os.name
# Send event to PostHog
+ if self.posthog is None:
+ # The personal API key is necessary only if you want to use local evaluation of feature flags.
+ self.posthog = Posthog(self.api_key, host="https://app.posthog.com")
+
self.posthog.capture(self.unique_id, event_name, event_properties)