Skip to content

Instantly share code, notes, and snippets.

@romiras
romiras / langchain_sql1.py
Created April 7, 2024 21:17
Querying SQLite using LangChain
"""
This demo program outputs raw SQL query by analyzing table, which is run by agent executer, via SQL adapter.
"""
import os
import sqlite3
from langchain.agents import *
from langchain.sql_database import SQLDatabase
from langchain.chains import create_sql_query_chain
from langchain_community.llms import OpenAI
@romiras
romiras / ru-talk-c-family.txt
Created December 26, 2023 22:17
Разговор о C, C++ и C#
Я:
расскажи про проблемы языков программирования C, C++, C# в стиле хайку
ИИ:
Конечно, в стиле хайку:
C и C++: Память - дикая, Утечки, ошибки, страх. Указатели власть.
C#: Графика, сети, Управляй, безопасность. .NET, удобство.
@romiras
romiras / docker-compose.yml
Created August 22, 2023 21:06
Docker Compose for OpenSearch 2.x single node
version: "3"
services:
opensearch:
image: opensearchproject/opensearch:${OPENSEARCH_VERSION}
restart: "${OPENSEARCH_RESTART:-unless-stopped}"
environment:
- cluster.name=opensearch-cluster
- node.name=opensearch-node1
- discovery.type=single-node
@romiras
romiras / gist:77eaad109fed0555339fdaaff08677ba
Created February 26, 2023 14:56
Replace shebang line in place in all files in Ruby `bin`directory from version 2.7.6 to 2.7.7 on MacOS
# using ripgrep on macos
for f in $(rg --files-with-matches -F '2.7.6/'); do sed -i '' 's/\/2\.7\.6\//\/2\.7\.7\//' $f; done
@romiras
romiras / !resque_async_drainer.rb
Last active May 28, 2022 09:11
Asynchronously drain Resque queue with concurrent workers in Ruby
require_relative './logging'
require_relative './async_consumer'
def drain(data_store, queue_name, output_filename)
json_store = File.open(output_filename, 'a')
executor = lambda do |class_name, args|
Logging.logger.info "class_name: #{class_name}, args: #{args}"
json_store.write("#{ { class: class_name, args: args }.to_json }\n")
@romiras
romiras / async_queue_consumer.rb
Created May 27, 2022 18:08
Demo async queue consumer with concurrent N workers in Ruby
require 'concurrent'
require 'benchmark'
require 'logger'
module Logging # Credits: https://stackoverflow.com/a/6768164/10118318
# This is the magical bit that gets mixed into your classes
def logger
Logging.logger
end
@romiras
romiras / concurrent_workers_batch_test.rb
Last active January 25, 2022 07:40
Concurrently classify items by type and batch them with multiple workers
# Concurrently classify items by type and batch them with multiple workers
require 'logger'
NUM_WORKERS = 10
NUM_ITEMS = 12
NUM_ITERATIONS = 5000
Item = Struct.new(:id, :type)
@romiras
romiras / es_bulk_upload.sh
Last active December 8, 2021 16:43
Script for uploading 30 K dataset into ES
split --verbose -l1000 dataset-bulk-30k.ndjson bulk.
for f in bulk.??; do echo $f; curl -i -X POST localhost:9200/_bulk -H "Content-Type: application/x-ndjson" --data-binary @$f; done
@romiras
romiras / es_ndjson_split.rb
Last active November 11, 2021 10:57
A script for transforming .jsonl file into file ready for bulk import to ES.
# Reads .jsonl file and transforms it into file ready for bulk import to ES.
require 'json'
File.open(ARGV[1], 'wb') {|f|
ARGF.each_line { |line|
a = JSON.parse(line)
out = {
index: {
"_id": a["_id"],
@romiras
romiras / concurrent_workers_demo.rb
Last active November 4, 2021 08:06
Workers with Concurrent::Future in Ruby
require 'concurrent'
require 'benchmark'
max = 20 # number of tasks to process
n_workers = 4 # number of concurrent workers
results = [] #
lambda = -> (iter, i) { results << ('%04d' % i); d = rand(0.005)+0.001; puts("Iteration #{iter}. sleep %.3f" % d); sleep(d) }
workers = Array.new(n_workers, lambda)
iter = 0