Skip to content

Instantly share code, notes, and snippets.

View czue's full-sized avatar

Cory Zue czue

View GitHub Profile
@czue
czue / uv.lock
Created November 29, 2024 13:21
uv.lock file
version = 1
requires-python = ">=3.12"
[[package]]
name = "asgiref"
version = "3.8.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/29/38/b3395cc9ad1b56d2ddac9970bc8f4141312dbaec28bc7c218b0dfafd0f42/asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590", size = 35186 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/39/e3/893e8757be2612e6c266d9bb58ad2e3651524b5b40cf56761e985a28b13e/asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47", size = 23828 },
@czue
czue / tests.py
Created November 20, 2024 14:18
assertNumQueries example
from django.test import TransactionTestCase
from .services import my_function_that_hits_the_db
class MyTest(TransactionTestCase):
def test_db_performance(self):
# called directly
self.assertNumQueries(7, my_function_that_hits_the_db)
# used as a context manager
@czue
czue / flowbite.patch
Created June 21, 2024 09:22
Patch to add flowbite + datepicker to a SaaS pegasus Project
diff --git a/assets/javascript/site.js b/assets/javascript/site.js
index a34accb4..32ded7dc 100644
--- a/assets/javascript/site.js
+++ b/assets/javascript/site.js
@@ -3,3 +3,5 @@
import 'htmx.org';
import './htmx';
import './alpine';
+import 'flowbite';
+import 'flowbite/dist/datepicker';
@czue
czue / chatgpt-channels.patch
Created April 9, 2024 06:33
Patch for a streaming ChatGPT app with Django, Channels, and HTMX
diff --git a/apps/chat/consumers.py b/apps/chat/consumers.py
index cf792d9e..a4963491 100644
--- a/apps/chat/consumers.py
+++ b/apps/chat/consumers.py
@@ -1,4 +1,5 @@
import json
+import uuid
from channels.generic.websocket import WebsocketConsumer
from django.conf import settings
@czue
czue / llm_translator.py
Created April 2, 2024 07:20
Translations with OpenAI
# this is the core translation code from https://www.youtube.com/watch?v=2ItlnKhe37U
# It uses the OpenAI API to translate messages from one language to another.
import dataclasses
from typing import List
from django.conf import settings
from openai import OpenAI
from apps.translations.models import InputText, Language
@czue
czue / json_cleaner.py
Created September 21, 2023 11:25
OpenAI JSON Cleaner
def clean_and_parse_json_with_ai(json_string: str, openai_key: str):
clean_json_fn = {
"name": "clean_json",
"description": "Cleans JSON.",
"parameters": {
"type": "object",
"properties": {
"clean_json": {
"type": "string",
"description": "The cleaned JSON.",
@czue
czue / function.js
Created August 25, 2023 16:45
OpenAI function for Source Citations in a RAG architecture
{
"name": "answer_and_sources",
"description": "Gets an answer and cites the relevant sources used to provide the answer.",
"parameters": {
"type": "object",
"properties": {
"answer": {
"type": "string",
"description": "The answer to the user's question.",
},
@czue
czue / langchain_qa_chatgpt_bot.py
Last active November 5, 2024 15:32
sample code for chatgpt / gpt4 langchain Q&A
# see https://www.youtube.com/watch?v=CsFpVdgEXCU for details of what this does
from typing import List
from langchain import ConversationChain
from langchain.chat_models import ChatOpenAI
from langchain.indexes.vectorstore import VectorStoreIndexWrapper
from langchain.memory import ConversationBufferMemory
from langchain.prompts import (
ChatPromptTemplate,
@czue
czue / subscription.py
Created December 17, 2020 06:42
subscriptions
{% extends "portal_base.html" %}
{% load staticfiles %}
{% block title %} Payment {% endblock %}
{% block content %}
<div class="dashboard-interactions">
<div class="interactions-wrap full-width">
<div class="interactions-panel">
@czue
czue / ratatat-el-pico.rb
Created January 3, 2020 10:57
SonicPi code for the first few bars of Ratatat's El Pico
use_bpm 95
# main guitar riff
mini_riff_1 = [:b4, :e4, :g4, :b4]
mini_riff_2 = [:g4, :b3, :e4, :g4]
mini_riff_3 = [:a4, :c4, :gb4, :a4]
mini_riff_4 = [:gb4, :b3, :d4, :gb4]
mini_riff_5 = [:c5, :gb4, :a4, :c5]