Pull to refresh
-22
Алексей Смирнов@pol_pot

User

Send message

С точки зрения опсосов ничего не поменяется, звонить люди будут всё равно через интернет, точнее чебурнет-мессенджеры. Один только негатив соберут. Заказчик тут явно не опсосы.

Если структура накапливаемой информации заранее известна непонятно тогда зачем вообще копить по 50 сообщений. А если неизвестна то ллм обязательно будет тупить (а кто не будет?).

Может лучше будет держать в памяти постоянный хвост из 10 последних запросов + отдельно структурированные накопления и инструкцию. Можно еще третий уровень памяти добавить, всё то что автоматически вытесняется из окна в 10 последних запросов сохранять в RAG и дергать оттуда когда ллмке покажется что это нужно.

В КНДР 25млн человек обитает. Есть из кого выбрать людей с нужными способностями и обучить. Говорят что даже сам Ким на учебу ездил в Британию.

В южной корее обитает всего 50млн человек. У южных собратьев есть контрацепция наверное, но это не точно, может дело просто в том что южные не могут прокормить детей и потому не хотя плодиться и размножаться, ты как думаешь?

А что не укладывается? Лидер в преступности. Народ на положении рабов, вынужден делать то что говорят делать бандиты под угрозой расправы. Вроде всё логично или должно быть как то иначе?

Это да, мы могли бы и сами отбить курскую область и добыть где-нибудь миллионы снарядов для фронта но раз уж есть такой добрый сосед рядом то почему бы и не принять от него безвозмездную помощь.

Ну да, просто совпадение. Еще говорят что эти ПВО защищали 100т илитных британских спецназовцев из САС и они все там погибли. Мы сейчас соловьиный помёт обсуждать будем?

Китай не настолько упорот и нуждается что бы продавать северокорейцам ядерное оружие или технологии.

Ллм же не умеет играть в шахматы и зрения у большинства нет. Странная затея. Если их будут дисквалифицировать за неверные ходы то большинство сольется за 5 минут.

Очень слабая попытка. Что бы сломалось достаточно просто повернуть лист с текстом боком и начинается бредятина как у гигачада.

Отдельного ocr как у мистраля для pdf у cohere нет. В доке предлагается вручную дербанить пдф и распознавать страницы отдельно, очень медленно и печально.

GPT-4.1 лучше на порядок, они явно из разных весовых категорий.

Ты хоть представляешь сколько стоит аренда сервера на котором крутится дешевая моделька gpt 4о? Там как минимум десяток видеокарт по 20т долларов стоит, в каждом сервере. Просто голое железо и электричество без учета всех остальных затрат.

А ведь ее еще создать и развивать надо, каждому крупному разработчику по 100млн отвалить чтоб его не перекупили конкуренты. И ты наверняка хочешь не голую ллм а с прикрученным к ней поиском от гугла(его запросы стоят еще больше), с виртуальной машиной для выполнеия кода, с другими нейронками в комплекте - распознавание образов, голосов, генерация картинок итп.

Себестоимость запросов к дешевым открытым моделям(+ небольшая маржа хостера) посмотри на https://openrouter.ai и потом рассказывай про жадность и вымогательство. Этим хостерам не надо тратится на разработку моделей, они просто взяли бесплатное и запустили на своем железе что бы заработать немного на аренде.

Те у кого заметно дешевле - запускают сильно порезанную квантованную версию
Те у кого заметно дешевле - запускают сильно порезанную квантованную версию

Достижения КНДР? Мороженное по 5 копеек? Эта ядреная ракета мне что то сильно напоминает, кажется я знаю в каком военторге ее могли купить.

Пробовал сегодня qwen3coder который гигантский. Он застрял на небольшом простом питоновском коде с glob.glob(). Пытался использовать сложную маску и плохо реагировал на попытки вытащить его из болота. Пришлось доделывать в gemini.

Эм, youtube-transcript.io? Попробовал там получить транскрипцию и получил обычные субтитры которые на ютубе бесплатно лежат. Они что, пытаются это продавать за 10 баксов?

Почти у всех видео на ютубе есть готовые субтитры. Чуть хуже чем то что делает виспер но для переваривания с помощью ллм - без разницы вообще.

Простых и незаблокированных мессенджеров много. Они очень низкого качества но точно лучше чем то что может сделать тебе гпт.

Скорее всего это гпт - хорошее распознавание картинок есть только у 2-3 компаний и тут оно есть.

Скорее всего это не гпт5 - обещали же что не будут больше делать неразмышляющие модели.

146% что это не опенсорс версия, такую хорошую модель в чужие руки они не отдадут.

Скорее всего это что то типа гпт 4.2, обновление для 4.1

Тут дают 20 часов в сутки на аккаунта виспер https://console.groq.com/settings/limits

Скорость x240.

Куски только резать надо по 25мб. И нет временных меток.

Бесплатно

Попросил гпт переделать с помощью mediainfo. Вроде работает, но это не точно, не очень понял зачем это нужно вообще.

$ mdurmi ~/tmp
Общая длительность: 00:07:36
 Файлов: 11

Длительность  Имя файла
----------  ---------
00:00:05    /home/ubuntu/tmp/1111/videos/IMG_4820.MP4
00:00:11    /home/ubuntu/tmp/1111/videos/IMG_4683.MP4
00:00:13    /home/ubuntu/tmp/1111/videos/m2-res_1280p (36).mp4
00:00:12    /home/ubuntu/tmp/1111/videos/IMG_7808.MOV
00:00:09    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-28.mp4
00:00:10    /home/ubuntu/tmp/1111/videos/123.flv
00:01:28    /home/ubuntu/tmp/1111/videos/Встретились два одиночества #скорая #скораяпомощь #первыекторядом #смп #03 #скорая помощь #103 [YgwvtN3bG_Q].webm
00:02:45    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-43.mp4
00:00:17    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-01.mp4
00:00:10    /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-05.mp4
00:01:56    /home/ubuntu/tmp/1111/videos/IMG_1385.MOV

$ mdurmi -v -f -s d ~/tmp
Найдено файлов: 11
Читаю: /home/ubuntu/tmp/1111/videos/IMG_4820.MP4
Читаю: /home/ubuntu/tmp/1111/videos/IMG_4683.MP4
Читаю: /home/ubuntu/tmp/1111/videos/m2-res_1280p (36).mp4
Читаю: /home/ubuntu/tmp/1111/videos/IMG_7808.MOV
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-28.mp4
Читаю: /home/ubuntu/tmp/1111/videos/123.flv
Читаю: /home/ubuntu/tmp/1111/videos/Встретились два одиночества #скорая #скораяпомощь #первыекторядом #смп #03 #скорая помощь #103 [YgwvtN3bG_Q].webm
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-43.mp4
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-01.mp4
Читаю: /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-05.mp4
Читаю: /home/ubuntu/tmp/1111/videos/IMG_1385.MOV
Общая длительность: 00:07:36
 Файлов: 11

Длительность  Формат  Имя файла
----------  ------        ---------
00:02:45    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-43.mp4
00:01:56    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_1385.MOV
00:01:28    WebM          /home/ubuntu/tmp/1111/videos/Встретились два одиночества #скорая #скораяпомощь #первыекторядом #смп #03 #скорая помощь #103 [YgwvtN3bG_Q].webm
00:00:17    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-01.mp4
00:00:13    MPEG-4        /home/ubuntu/tmp/1111/videos/m2-res_1280p (36).mp4
00:00:12    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_7808.MOV
00:00:11    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_4683.MP4
00:00:10    Flash Video   /home/ubuntu/tmp/1111/videos/123.flv
00:00:10    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-19-05.mp4
00:00:09    MPEG-4        /home/ubuntu/tmp/1111/videos/video_2025-08-01_11-18-28.mp4
00:00:05    MPEG-4        /home/ubuntu/tmp/1111/videos/IMG_4820.MP4
#!/usr/bin/env bash
set -uo pipefail

VERSION="0.7"
RECURSIVE=true
VERBOSE=false
SHOW_FORMAT=false
SORT_KEY=""
TYPES=""
MI_TIMEOUT="10s"

print_help() {
  cat <<EOF
mdurmi v$VERSION — суммирует длительность медиафайлов через mediainfo.

Использование:
  mdurmi [опции] [ПУТЬ]
Опции:
  -r    только текущая папка (без рекурсии)
  -s d  сортировка по длительности (desc)
  -t l  фильтр по расширениям: mp4,mov,mp3
  -f    показывать формат (контейнер)
  -v    подробный режим
  -h    помощь
EOF
}

seconds_to_hms() {
  local s=${1%.*}
  s=$((10#$s))
  local h=$((10#$s / 3600))
  local m=$(((10#$s % 3600) / 60))
  local c=$((10#$s % 60))
  printf "%02d:%02d:%02d" "$h" "$m" "$c"
}

require_tools() {
  if ! command -v mediainfo >/dev/null 2>&1; then
    echo "Ошибка: mediainfo не найден" >&2
    exit 127
  fi
}

TIMEOUT_CMD=""
if command -v timeout >/dev/null 2>&1; then
  TIMEOUT_CMD="timeout"
elif command -v gtimeout >/dev/null 2>&1; then
  TIMEOUT_CMD="gtimeout"
fi

run_mi() {
  # $1 = inform, $2 = file
  if [[ -n "$TIMEOUT_CMD" ]]; then
    "$TIMEOUT_CMD" "$MI_TIMEOUT" mediainfo --Inform="$1" "$2" 2>/dev/null | tr -d '\r'
  else
    mediainfo --Inform="$1" "$2" 2>/dev/null | tr -d '\r'
  fi
}

probe_file() {
  local file="$1"
  local dur_ms fmt

  dur_ms=$(run_mi "General;%Duration%" "$file" || true)
  if [[ -z "$dur_ms" || "$dur_ms" == "0" ]]; then
    dur_ms=$(run_mi "Video;%Duration%" "$file" || true)
    if [[ -z "$dur_ms" || "$dur_ms" == "0" ]]; then
      dur_ms=$(run_mi "Audio;%Duration%" "$file" || true)
    fi
  fi

  if $SHOW_FORMAT; then
    fmt=$(run_mi "General;%Format%" "$file" || true)
  else
    fmt=""
  fi

  if [[ -z "$dur_ms" ]] || ! [[ "$dur_ms" =~ ^[0-9]+([.][0-9]+)?$ ]] || [[ "$dur_ms" == "0" ]]; then
    $VERBOSE && echo "  Ошибка: нет валидной длительности: $file" >&2
    echo -e "ERR\t${fmt}\t${file}"
    return 1
  fi

  local dur_s
  dur_s=$(awk -v ms="$dur_ms" 'BEGIN{printf "%.0f", ms/1000}')
  echo -e "${dur_s}\t${fmt}\t${file}"
  return 0
}

while getopts ":rs:t:fvh" opt; do
  case "$opt" in
    r) RECURSIVE=false ;;
    s) SORT_KEY="$OPTARG" ;;
    t) TYPES="$OPTARG" ;;
    f) SHOW_FORMAT=true ;;
    v) VERBOSE=true ;;
    h) print_help; exit 0 ;;
    \?) echo "Неизвестная опция: -$OPTARG" >&2; exit 2 ;;
    :) echo "Опция -$OPTARG требует аргумент" >&2; exit 2 ;;
  esac
done
shift $((OPTIND-1))

TARGET="${1:-.}"
require_tools

# Дефолтные расширения
if [[ -z "$TYPES" ]]; then
  TYPES="mp4,mov,m4v,mkv,avi,flv,webm,mp3,flac,wav,aac,ogg,m4a"
fi

shopt -s nullglob dotglob
declare -a files
skip_suffix=".filepart"

collect_recursive() {
  IFS=, read -r -a exts <<<"$TYPES"
  find_expr=()
  for e in "${exts[@]}"; do
    e="${e#.}"
    find_expr+=(-iname "*.${e}")
    find_expr+=(-o)
  done
  unset 'find_expr[${#find_expr[@]}-1]' || true
  while IFS= read -r -d '' f; do
    [[ "$f" == *"$skip_suffix" ]] && continue
    files+=("$f")
  done < <(find "$TARGET" -type f \( "${find_expr[@]}" \) -print0)
}
collect_shallow() {
  if [[ -d "$TARGET" ]]; then
    IFS=, read -r -a exts <<<"$TYPES"
    for e in "${exts[@]}"; do
      e="${e#.}"
      for f in "$TARGET"/*."$e"; do
        [[ -e "$f" ]] || continue
        [[ "$f" == *"$skip_suffix" ]] && continue
        files+=("$f")
      done
    done
  else
    [[ "$TARGET" == *"$skip_suffix" ]] || files+=("$TARGET")
  fi
}

if $RECURSIVE; then
  collect_recursive
else
  collect_shallow
fi

total_sec=0
count=0
errors=0
results_file=$(mktemp)
trap 'rm -f "$results_file"' EXIT

$VERBOSE && echo "Найдено файлов: ${#files[@]}"

for file in "${files[@]}"; do
  [[ -f "$file" ]] || continue
  $VERBOSE && echo "Читаю: $file"

  line=""
  if ! line=$(probe_file "$file"); then
    ((errors++))
    continue
  fi

  dur_s=$(cut -f1 <<<"$line")
  fmt=$(cut -f2 <<<"$line")
  name=$(cut -f3- <<<"$line")

  total_sec=$((10#$total_sec + 10#$dur_s))
  ((count++))

  printf "%09d\t%s\t%s\n" "$dur_s" "${fmt:-}" "$name" >>"$results_file"
done

if [[ $count -eq 0 ]]; then
  echo "Общая длительность: 00:00:00"
  echo " Файлов: 0"
  [[ $errors -gt 0 ]] && echo " Ошибок: $errors (включи -v)"
  exit 0
fi

# Сортировка по первому числовому полю
if [[ "$SORT_KEY" == "d" ]]; then
  sort -k1,1nr "$results_file" > "$results_file.sorted" && mv "$results_file.sorted" "$results_file"
fi

echo "Общая длительность: $(seconds_to_hms "$total_sec")"
echo " Файлов: $count"
[[ $errors -gt 0 ]] && echo " Ошибок: $errors"

echo

if $SHOW_FORMAT; then
  printf "%-10s  %-12s  %s\n" "Длительность" "Формат" "Имя файла"
  printf "%-10s  %-12s  %s\n" "----------"   "------" "---------"
  while IFS=$'\t' read -r s fmt name; do
    hms=$(seconds_to_hms "$s")
    printf "%-10s  %-12s  %s\n" "$hms" "${fmt:-?}" "$name"
  done < "$results_file"
else
  printf "%-10s  %s\n" "Длительность" "Имя файла"
  printf "%-10s  %s\n" "----------" "---------"
  # читаем только 1-е и 3-е поле (имя), пропуская формат
  while IFS=$'\t' read -r s name; do
    hms=$(seconds_to_hms "$s")
    printf "%-10s  %s\n" "$hms" "$name"
  done < <(cut -f1,3- "$results_file")
fi

Главное не проверять что там этот виспер нарасшифровывал Ж)

-- Как понять что статья написана тупым роботом?

-- Он не умеет считать.

Information

Rating
7,305-th
Registered
Activity

Specialization

Менеджер технической поддержки
Старший
Git
SQL
Linux
MySQL
PHP
PostgreSQL
Docker