Skip to content

Instantly share code, notes, and snippets.

View tazarov's full-sized avatar

Trayan Azarov tazarov

View GitHub Profile
kubectl get pods --all-namespaces -o jsonpath="{.items[*].spec.containers[*].image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c

This is a one-liner command to list and add a user as a reviewer to all pull requests in a github repo.

for pr in $(gh pr list --json number -q '.[].number'); do gh pr edit $pr --add-reviewer <user_id>; done

Note: The above works only in bash

Simplifying the process of utilizing OpenAI models' function calling capabilities, a new approach involves creating a meticulously structured JSON list. Consider the following example:

{
        "name": "get_current_weather",
        "description": "Get the current weather",
        "parameters": {
            "type": "object",
 "properties": {
@tazarov
tazarov / chroma-openapi.yaml
Last active August 6, 2023 08:29
OpenAPI 3.0 spec for Chroma vector databaseThis could be useful in generating clients for chroma
openapi: 3.0.2
info:
title: FastAPI
version: 0.1.0
paths:
/api/v1:
get:
summary: Root
operationId: root
responses:
@tazarov
tazarov / test_chunking_chroma.py
Last active June 24, 2024 13:56
An example of how one can chunk texts from large documents in chroma using langchain.
import uuid
from chromadb.utils import embedding_functions
from langchain.schema import Document
from langchain.text_splitter import RecursiveCharacterTextSplitter
long_text = """
The Downsides of LLMs (Logical Language Models)
In the age of artificial intelligence, Logical Language Models (LLMs) represent a significant leap forward in the field of natural language processing. These models are capable of comprehending, generating, and reasoning about human languages in a way that mimics human-like understanding. While the benefits of LLMs are numerous, it's essential to also recognize the downsides that accompany these advancements. This essay will explore the negative aspects of LLMs in terms of ethics, job displacement, security, and potential biases.
@tazarov
tazarov / chroma_no_docs.py
Created August 15, 2023 13:43
This gist illustrates how to store vectors of your documents in chroma without providing your actual text documents:
import uuid
from chromadb.utils import embedding_functions
import chromadb
ef = embedding_functions.DefaultEmbeddingFunction()
docs = ["Article by john", "Article by Jack", "Article by Jill"]
client = chromadb.Client()
embeddings = ef(docs)
collection = client.get_or_create_collection("test-where-list")
@tazarov
tazarov / chroma_no_docs.py
Created August 15, 2023 13:44
This gist illustrates how to store vectors of your documents in chroma without providing your actual text documents. Useful if your docs contain sensitive info or you are mindful of the storage.
import uuid
from chromadb.utils import embedding_functions
import chromadb
ef = embedding_functions.DefaultEmbeddingFunction()
docs = ["Article by john", "Article by Jack", "Article by Jill"]
client = chromadb.Client()
embeddings = ef(docs)
collection = client.get_or_create_collection("test-where-list")
@tazarov
tazarov / cq_batching_with_lc.ipynb
Created September 20, 2023 14:15
Chroma Batching with Langchain
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@tazarov
tazarov / keyword_search.py
Created November 24, 2023 12:55
Keyword Search in Chroma
import chromadb
from chromadb.config import Settings
client = chromadb.PersistentClient(path="test", settings=Settings(allow_reset=True))
client.reset()
col = client.get_or_create_collection("test")
col.add(ids=["1", "2", "3"], documents=["He is a technology freak and he loves AI topics", "AI technology are advancing at a fast pace", "Innovation in LLMs is a hot topic"])
col.query(query_texts=["technology"], where_document={"$or":[{"$contains":"technology"}, {"$contains":"freak"}]})