try ai
This commit is contained in:
27
groq.sh
Normal file
27
groq.sh
Normal file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Determine the script's base directory
|
||||
BASEDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
# Load environment variables from .env file
|
||||
if [ -f "$BASEDIR/.env" ]; then
|
||||
source "$BASEDIR/.env"
|
||||
fi
|
||||
|
||||
# Ensure GROQ_API_KEY is set
|
||||
if [ -z "$GROQ_API_KEY" ]; then
|
||||
echo "Error: GROQ_API_KEY is not set. Please define it in $BASEDIR/.env"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validate input argument
|
||||
if [ -z "$1" ] || [ ! -f "$BASEDIR/rpc/$1.yml" ]; then
|
||||
echo "Error: Either no argument provided or $BASEDIR/rpc/$1.yml does not exist."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Build the container
|
||||
docker build -t rpc_sync_checker "$BASEDIR/groq"
|
||||
|
||||
# Run logs.sh and feed logs into the sync checker container
|
||||
"$BASEDIR/logs.sh" "$1" | docker run --rm -i -e GROQ_API_KEY="$GROQ_API_KEY" rpc_sync_checker
|
||||
8
groq/Dockerfile
Normal file
8
groq/Dockerfile
Normal file
@@ -0,0 +1,8 @@
|
||||
FROM python:3.11
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY rpc_sync_checker.py /app/
|
||||
RUN pip install groq
|
||||
|
||||
CMD ["python", "/app/rpc_sync_checker.py"]
|
||||
21
groq/rpc_sync_checker.py
Normal file
21
groq/rpc_sync_checker.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import os
|
||||
import sys
|
||||
from groq import Groq
|
||||
|
||||
def check_sync_progress(logs):
|
||||
client = Groq(api_key=os.environ.get("GROQ_API_KEY"))
|
||||
|
||||
response = client.chat.completions.create(
|
||||
messages=[
|
||||
{"role": "system", "content": "You are an assistant trained to analyze blockchain RPC logs."},
|
||||
{"role": "user", "content": f"Based on the following logs, is the RPC node progressing in its sync? Answer only '0' for yes and '1' for no.\n\n{logs}"}
|
||||
],
|
||||
model="llama-3.3-70b-versatile",
|
||||
)
|
||||
|
||||
return response.choices[0].message.content.strip()
|
||||
|
||||
if __name__ == "__main__":
|
||||
logs = sys.stdin.read() # Read input from STDIN
|
||||
result = check_sync_progress(logs)
|
||||
print(result)
|
||||
Reference in New Issue
Block a user