Skip to content

Instantly share code, notes, and snippets.

@perryism
perryism / chrome_finder.py
Created June 4, 2024 02:24
get matching chrome driver
import json
import sys
import os
import urllib.request
match = sys.argv[1]
filepath = "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json"#sys.argv[2]
def get_versions(filepath):
if os.path.exists(filepath):
@perryism
perryism / custom_model_garden_client.py
Last active February 20, 2024 20:19
custom model garden client
from langchain.callbacks.manager import AsyncCallbackManager
import os, logging
logger = logging.getLogger(__name__)
stream_manager = AsyncCallbackManager([])
from langchain_google_vertexai import VertexAIModelGarden
from typing import Any, List, Optional
"""
I found myself waiting for LLM model to give me result. My result is always the same since I am working on the lower level library.
Example
@memoize("test.pkl")
def sum(x, y):
return x + y
"""
@perryism
perryism / Dockerfile
Created February 10, 2024 19:58
cuda dockerfile for llm
FROM nvidia/cuda:11.2.2-runtime-ubuntu20.04
RUN apt-get update --yes --quiet
RUN apt install software-properties-common -y && add-apt-repository ppa:deadsnakes/ppa -y && \
apt-get install -y python3.10 \
pip \
python3.10-distutils \
curl
RUN curl -sS https://bootstrap.pypa.io/get-pip.py | python3.10
@perryism
perryism / gcp_token.py
Created January 11, 2024 18:01
Get GCP identity or access token programmatically
import google.auth
from google.auth.transport.requests import Request
import requests
def get_credentials() -> str:
credentials, _project_id = google.auth.default(scopes=['https://www.googleapis.com/auth/cloud-platform'])
request = Request()
credentials.refresh(request)
return credentials
@perryism
perryism / lora.py
Created November 15, 2023 18:44
Lora Low rank adaptation
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig, HfArgumentParser, TrainingArguments, pipeline, logging, TextStreamer
from peft import LoraConfig, PeftModel, prepare_model_for_kbit_training, get_peft_model
import os,torch, platform, warnings
from datasets import load_dataset
from trl import SFTTrainer
class Lora:
@classmethod
def prepare(cls, model_name):
"""
import unittest
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
import logging
import sys
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logger = logging.getLogger(__name__)
class Agent:
def __init__(self, role, objective):
@perryism
perryism / gist:a1391ccd1df8be462133cf41f82f8272
Last active September 22, 2023 23:37
This little class can help create command line toolbox easily.
import argparse
import logging
from enum import EnumMeta
logger = logging.getLogger(__name__)
class Blackmore:
def __init__(self, name, functions):
self.name = name
self.functions = dict([[f.__name__, f] for f in functions])
@perryism
perryism / gist:23e1aee4193e085fe67bcef2f1004aa1
Created July 28, 2023 23:31
Query bigquery on behave of an user
from google.oauth2.credentials import Credentials
from google.cloud import bigquery
import google.oauth2.credentials
import os
PROJECT = os.environ.get("PROJECT")
# gcloud auth print-access-token
ACCESS_TOKEN = os.environ.get("ACCESS_TOKEN")
@perryism
perryism / seuqential_chain.py
Created June 24, 2023 17:26
Simplied SequentialChain in LangChain
from langchain.chains import SequentialChain
from langchain.prompts import ChatPromptTemplate
from langchain.chains import LLMChain
from langchain.chat_models import ChatOpenAI
llm = ChatOpenAI(temperature=0.9)
class MyChain:
def __init__(self, llm=None, template_engine=None):
self.llm = llm