Clean up notebook merge request
This commit is contained in:
parent
7c015e525d
commit
e0e93ae379
4 changed files with 53 additions and 107 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -5,7 +5,7 @@
|
||||||
cognee/.data/
|
cognee/.data/
|
||||||
|
|
||||||
*.lance/
|
*.lance/
|
||||||
|
.DS_Store
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
*.py[cod]
|
*.py[cod]
|
||||||
|
|
|
||||||
90
poetry.lock
generated
90
poetry.lock
generated
|
|
@ -1,4 +1,4 @@
|
||||||
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "aiofiles"
|
name = "aiofiles"
|
||||||
|
|
@ -3215,6 +3215,54 @@ docs = ["mkdocs", "mkdocs-jupyter", "mkdocs-material", "mkdocstrings[python]"]
|
||||||
embeddings = ["awscli (>=1.29.57)", "boto3 (>=1.28.57)", "botocore (>=1.31.57)", "cohere", "google-generativeai", "huggingface-hub", "ibm-watsonx-ai (>=1.1.2)", "instructorembedding", "ollama", "open-clip-torch", "openai (>=1.6.1)", "pillow", "sentence-transformers", "torch"]
|
embeddings = ["awscli (>=1.29.57)", "boto3 (>=1.28.57)", "botocore (>=1.31.57)", "cohere", "google-generativeai", "huggingface-hub", "ibm-watsonx-ai (>=1.1.2)", "instructorembedding", "ollama", "open-clip-torch", "openai (>=1.6.1)", "pillow", "sentence-transformers", "torch"]
|
||||||
tests = ["aiohttp", "boto3", "duckdb", "pandas (>=1.4)", "polars (>=0.19,<=1.3.0)", "pytest", "pytest-asyncio", "pytest-mock", "pytz", "tantivy"]
|
tests = ["aiohttp", "boto3", "duckdb", "pandas (>=1.4)", "polars (>=0.19,<=1.3.0)", "pytest", "pytest-asyncio", "pytest-mock", "pytz", "tantivy"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "langchain-core"
|
||||||
|
version = "0.3.15"
|
||||||
|
description = "Building applications with LLMs through composability"
|
||||||
|
optional = false
|
||||||
|
python-versions = "<4.0,>=3.9"
|
||||||
|
files = [
|
||||||
|
{file = "langchain_core-0.3.15-py3-none-any.whl", hash = "sha256:3d4ca6dbb8ed396a6ee061063832a2451b0ce8c345570f7b086ffa7288e4fa29"},
|
||||||
|
{file = "langchain_core-0.3.15.tar.gz", hash = "sha256:b1a29787a4ffb7ec2103b4e97d435287201da7809b369740dd1e32f176325aba"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
jsonpatch = ">=1.33,<2.0"
|
||||||
|
langsmith = ">=0.1.125,<0.2.0"
|
||||||
|
packaging = ">=23.2,<25"
|
||||||
|
pydantic = {version = ">=2.5.2,<3.0.0", markers = "python_full_version < \"3.12.4\""}
|
||||||
|
PyYAML = ">=5.3"
|
||||||
|
tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<10.0.0"
|
||||||
|
typing-extensions = ">=4.7"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "langchain-text-splitters"
|
||||||
|
version = "0.3.2"
|
||||||
|
description = "LangChain text splitting utilities"
|
||||||
|
optional = false
|
||||||
|
python-versions = "<4.0,>=3.9"
|
||||||
|
files = [
|
||||||
|
{file = "langchain_text_splitters-0.3.2-py3-none-any.whl", hash = "sha256:0db28c53f41d1bc024cdb3b1646741f6d46d5371e90f31e7e7c9fbe75d01c726"},
|
||||||
|
{file = "langchain_text_splitters-0.3.2.tar.gz", hash = "sha256:81e6515d9901d6dd8e35fb31ccd4f30f76d44b771890c789dc835ef9f16204df"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
langchain-core = ">=0.3.15,<0.4.0"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "langdetect"
|
||||||
|
version = "1.0.9"
|
||||||
|
description = "Language detection library ported from Google's language-detection."
|
||||||
|
optional = false
|
||||||
|
python-versions = "*"
|
||||||
|
files = [
|
||||||
|
{file = "langdetect-1.0.9-py2-none-any.whl", hash = "sha256:7cbc0746252f19e76f77c0b1690aadf01963be835ef0cd4b56dddf2a8f1dfc2a"},
|
||||||
|
{file = "langdetect-1.0.9.tar.gz", hash = "sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
six = "*"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "langfuse"
|
name = "langfuse"
|
||||||
version = "2.53.9"
|
version = "2.53.9"
|
||||||
|
|
@ -3681,24 +3729,6 @@ htmlmin2 = ">=0.1.13"
|
||||||
jsmin = ">=3.0.1"
|
jsmin = ">=3.0.1"
|
||||||
mkdocs = ">=1.4.1"
|
mkdocs = ">=1.4.1"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "mkdocs-redirects"
|
|
||||||
version = "1.2.1"
|
|
||||||
description = "A MkDocs plugin for dynamic page redirects to prevent broken links."
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.6"
|
|
||||||
files = [
|
|
||||||
{file = "mkdocs-redirects-1.2.1.tar.gz", hash = "sha256:9420066d70e2a6bb357adf86e67023dcdca1857f97f07c7fe450f8f1fb42f861"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
mkdocs = ">=1.1.1"
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
dev = ["autoflake", "black", "isort", "pytest", "twine (>=1.13.0)"]
|
|
||||||
release = ["twine (>=1.13.0)"]
|
|
||||||
test = ["autoflake", "black", "isort", "pytest"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mkdocstrings"
|
name = "mkdocstrings"
|
||||||
version = "0.26.2"
|
version = "0.26.2"
|
||||||
|
|
@ -5035,8 +5065,8 @@ argon2-cffi = {version = ">=23.1.0,<24", optional = true, markers = "extra == \"
|
||||||
bcrypt = {version = ">=4.1.2,<5", optional = true, markers = "extra == \"bcrypt\""}
|
bcrypt = {version = ">=4.1.2,<5", optional = true, markers = "extra == \"bcrypt\""}
|
||||||
|
|
||||||
[package.extras]
|
[package.extras]
|
||||||
argon2 = ["argon2-cffi (==23.1.0)"]
|
argon2 = ["argon2-cffi (>=23.1.0,<24)"]
|
||||||
bcrypt = ["bcrypt (==4.1.2)"]
|
bcrypt = ["bcrypt (>=4.1.2,<5)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pyarrow"
|
name = "pyarrow"
|
||||||
|
|
@ -5769,24 +5799,6 @@ async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\
|
||||||
hiredis = ["hiredis (>=3.0.0)"]
|
hiredis = ["hiredis (>=3.0.0)"]
|
||||||
ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)"]
|
ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)"]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "redis"
|
|
||||||
version = "5.1.1"
|
|
||||||
description = "Python client for Redis database and key-value store"
|
|
||||||
optional = false
|
|
||||||
python-versions = ">=3.8"
|
|
||||||
files = [
|
|
||||||
{file = "redis-5.1.1-py3-none-any.whl", hash = "sha256:f8ea06b7482a668c6475ae202ed8d9bcaa409f6e87fb77ed1043d912afd62e24"},
|
|
||||||
{file = "redis-5.1.1.tar.gz", hash = "sha256:f6c997521fedbae53387307c5d0bf784d9acc28d9f1d058abeac566ec4dbed72"},
|
|
||||||
]
|
|
||||||
|
|
||||||
[package.dependencies]
|
|
||||||
async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""}
|
|
||||||
|
|
||||||
[package.extras]
|
|
||||||
hiredis = ["hiredis (>=3.0.0)"]
|
|
||||||
ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==23.2.1)", "requests (>=2.31.0)"]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "referencing"
|
name = "referencing"
|
||||||
version = "0.35.1"
|
version = "0.35.1"
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ langsmith = "0.1.139"
|
||||||
langdetect = "1.0.9"
|
langdetect = "1.0.9"
|
||||||
posthog = "^3.5.0"
|
posthog = "^3.5.0"
|
||||||
lancedb = "0.15.0"
|
lancedb = "0.15.0"
|
||||||
litellm = "1.38.10"
|
litellm = "1.49.1"
|
||||||
groq = "0.8.0"
|
groq = "0.8.0"
|
||||||
langfuse = "^2.32.0"
|
langfuse = "^2.32.0"
|
||||||
pydantic-settings = "^2.2.1"
|
pydantic-settings = "^2.2.1"
|
||||||
|
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
import tweepy
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
from datetime import datetime, timezone
|
|
||||||
|
|
||||||
# Twitter API credentials from GitHub Secrets
|
|
||||||
API_KEY = '${{ secrets.TWITTER_API_KEY }}'
|
|
||||||
API_SECRET = '${{ secrets.TWITTER_API_SECRET }}'
|
|
||||||
ACCESS_TOKEN = '${{ secrets.TWITTER_ACCESS_TOKEN }}'
|
|
||||||
ACCESS_SECRET = '${{ secrets.TWITTER_ACCESS_SECRET }}'
|
|
||||||
USERNAME = '${{ secrets.TWITTER_USERNAME }}'
|
|
||||||
SEGMENT_WRITE_KEY = '${{ secrets.SEGMENT_WRITE_KEY }}'
|
|
||||||
|
|
||||||
# Initialize Tweepy API
|
|
||||||
auth = tweepy.OAuthHandler(API_KEY, API_SECRET)
|
|
||||||
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
|
|
||||||
twitter_api = tweepy.API(auth)
|
|
||||||
|
|
||||||
# Segment endpoint
|
|
||||||
SEGMENT_ENDPOINT = 'https://api.segment.io/v1/track'
|
|
||||||
|
|
||||||
|
|
||||||
def get_follower_count(username):
|
|
||||||
try:
|
|
||||||
user = twitter_api.get_user(screen_name=username)
|
|
||||||
return user.followers_count
|
|
||||||
except tweepy.TweepError as e:
|
|
||||||
print(f'Error fetching follower count: {e}')
|
|
||||||
return None
|
|
||||||
|
|
||||||
|
|
||||||
def send_data_to_segment(username, follower_count):
|
|
||||||
current_time = datetime.now(timezone.utc).isoformat()
|
|
||||||
|
|
||||||
data = {
|
|
||||||
'userId': username,
|
|
||||||
'event': 'Follower Count Update',
|
|
||||||
'properties': {
|
|
||||||
'username': username,
|
|
||||||
'follower_count': follower_count,
|
|
||||||
'timestamp': current_time
|
|
||||||
},
|
|
||||||
'timestamp': current_time
|
|
||||||
}
|
|
||||||
|
|
||||||
headers = {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'Authorization': f'Basic {SEGMENT_WRITE_KEY.encode("utf-8").decode("utf-8")}'
|
|
||||||
}
|
|
||||||
|
|
||||||
try:
|
|
||||||
response = requests.post(SEGMENT_ENDPOINT, headers=headers, data=json.dumps(data))
|
|
||||||
|
|
||||||
if response.status_code == 200:
|
|
||||||
print(f'Successfully sent data to Segment for {username}')
|
|
||||||
else:
|
|
||||||
print(f'Failed to send data to Segment. Status code: {response.status_code}, Response: {response.text}')
|
|
||||||
except requests.exceptions.RequestException as e:
|
|
||||||
print(f'Error sending data to Segment: {e}')
|
|
||||||
|
|
||||||
|
|
||||||
follower_count = get_follower_count(USERNAME)
|
|
||||||
if follower_count is not None:
|
|
||||||
send_data_to_segment(USERNAME, follower_count)
|
|
||||||
else:
|
|
||||||
print('Failed to retrieve follower count.')
|
|
||||||
Loading…
Add table
Reference in a new issue