Pull to refresh
-6
0

DevOps

Send message

ChatGPT для разработчиков: API, лимиты, как втягивать в него базу знаний, что нельзя сделать, что лучше делать осторожно

Reading time12 min
Views22K
image

Мы с командой вернулись тут с Хайлоада, и там даже CTO крупных компаний задают много вопросов про разработку с LLM. Наша компания занимается прикладной разработкой всего того, что касается GPT/LLM.

Расскажу про очевидные вещи, о которых у меня там спрашивали CTO и разработчики.

Самый частый вопрос: можно ли подключать свою базу документов и можно ли по ней нормально работать?

Можно. Для этого нужно две вещи:

  1. OpenAI может работать с вашей базой, например, вики техподдержки, но её надо векторизовать. Получится, что модель только ищет по ней и может отвечать фрагментом исходника, но может его обрабатывать как текст (то есть сравнивать, анализировать и тому подобное).
  2. Дальше можно использовать подход QA Retrieval Chain для работы с векторной базой. Работает это так: задаём вопрос, LLM формируют запрос к векторной базе, мы вынимаем из неё данные, подкладываем их в вопрос как контекст и передаём в LLM, а они формируют ответ.

Но давайте начнём сначала. Основное:

  1. Какого размера промпты могут быть, сколько, какие лимиты, как их частично обходить.
  2. Как подключается база, как закидывать реально большие документы, как эмбеддится вектор, на каких языках это происходит и тому подобное.
  3. Разные API.
  4. Агентная модель GPT Engineer и АutoGPT.
  5. Фреймворк лангчейн (построение цепочек запросов и разбиение макрозапроса на сотни).

Поехали!
Читать дальше →
Total votes 13: ↑12 and ↓1+16
Comments13

Как сделать поиск в интернет-магазине

Level of difficultyMedium
Reading time17 min
Views4.7K

Привет, Хабр! Меня зовут Степан Родионов, я из Х5 Digital. Сегодня расскажу о поиске в интернет-магазине — типовой задаче для e-commerce, которая в теории имеет типовое решение, но на практике оказывается сложнее.

Я запускал около десятка e-commerce проектов, и в каждом из них делал поиск. Этот опыт постарался обобщить в инструкцию по созданию подобного рода систем.

Рассказывать буду на примере проекта Vprok.ru — это мой текущий, самый крупный проект. Он входит в Х5 Digital и занимает на российском рынке третье место: 10 регионов присутствия, более 72 тысяч товаров, примерно 300 RPS на товарные запросы и около 700 тысяч комбинаций товар+склад.

Найдется все
Total votes 9: ↑7 and ↓2+9
Comments8

Как «воспитать ламу» и ускорить ML-эксперименты

Reading time8 min
Views6.7K
https://image.mel.fm/i/1/1Ud7AReU87/1210.jpg

Часто проведение ML-экспериментов сводится к долгому поиску и загрузке нужных датасетов и моделей, скрупулезной настройке гиперпараметров с целью проверки гипотез. Но что делать, когда времени мало, а за ночь нужно зафайнтюнить ламу? Давайте это и узнаем.

Статья написана по мотивам доклада Ефима Головина, MLOps-инженера в отделе Data- и ML-продуктов Selectel.

Читать дальше →
Total votes 27: ↑26 and ↓1+35
Comments7

Кейпад для управления умным домом — проект выходного дня

Level of difficultyEasy
Reading time8 min
Views19K

После апгрейда обычного дома до «полуумного» появилась очень простая, но неочевидная проблема в виде удобства управления домом. У тебя может быть самый крутой в мире дашборд с кучей кнопок, датчиков и остальных интересных элементов, но управлять всем этим с телефона банально неудобно, так как требует воспроизвести целый список действий (найти его, взять, разблокировать, открыть приложение дома и т. д.). Но недавно мне попался интересный проект настольного макрокейпада, который, как мне кажется, идеально подходит для быстрого управления некоторыми функциями дома.

О сборке и настройке макрокейпада можно почитать далее в статье.
Читать дальше →
Total votes 38: ↑37 and ↓1+51
Comments59

Самодельные звукоизлучатели

Level of difficultyEasy
Reading time14 min
Views18K
Картинка Upklyak, Freepik

Если посмотреть в сети, то многие самодельщики обходят стороной такую любопытную сферу приложения усилий, как самодельные звукоизлучатели. Тем не менее понимание этой области позволит создавать свои собственные звукоизлучающие устройства, практически из подножного материала, что само по себе может быть весьма занятным и полезным. Например, можно создать звуковую колонку из листа бумаги, которая будет очень дешёвой и её не страшно будет оставлять без присмотра (например, на даче). Эта же простота и понимание устройства, позволяет и попробовать создать колонку любого размера. Или же, собрать альтернативу широко известным типам звукоизлучающих устройств — электростатическую колонку (как заявляют очевидцы, обладающую поразительно кристальным звучанием). А если вы захотите получить простой и дешёвый источник громкого звука, чтобы отпугивать вредителей (например, птиц) или просто собрать сторожевую систему из электродвигателя — то сирена ваш выбор! Обо всём этом и не только — в этой статье.
Читать дальше →
Total votes 61: ↑59 and ↓2+80
Comments21

Создание минимального Docker-контейнера для Go-приложений

Reading time4 min
Views49K
Привет, Хабр! Предлагаю вашему вниманию перевод статьи основателя сервиса Meetspaceapp Nick Gauthier «Building Minimal Docker Containers for Go Applications».

Время чтения: 6 минут

Существует множество, как официальных, так и поддерживаемых сообществом контейнеров для различных языков программирования (включая Go). Но эти контейнеры могут быть довольно большими. Давайте сперва сравним стандартные методы создания контейнеров для Go-приложений, а затем я покажу способ создания крайне маленьких статических контейнерезированных Go-приложений

Часть 1: Наше «приложение»


Для тестирования нам потребуется какое-нибудь маленькое приложение. Давайте будем фетчить google.com и выводить размер HTML.

package main

import (
    "fmt"
    "io/ioutil"
    "net/http"
    "os"
)

func main() {
    resp, err := http.Get("https://google.com")
    check(err)
    body, err := ioutil.ReadAll(resp.Body)
    check(err)
    fmt.Println(len(body))
}

func check(err error) {
    if err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

Если мы запустимся, то получим только какое-то число. У меня вышло около 17К. Я целенаправленно решил использовать SSL, но причину объясню позднее.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments10

Как добиться эталонного качества передачи голоса через интернет

Level of difficultyMedium
Reading time10 min
Views8K

Голосовая связь с нами давно: первые телефоны изобрели ещё в конце 19-го века, а мобильные — в середине 20-го. В начале 2000-х начал набирать популярность ещё один способ связи — интернет-звонки. Идея по сути та же — общаться на расстоянии, только ещё проще и дешевле. Плюс онлайн-звонки дают много дополнительных функций: от возможности видеть собеседников по видеосвязи до формата, когда вы вместе смотрите кино, находясь в разных точках планеты. Технологии идут вперёд, и тем не менее мы снова и снова переспрашиваем: «Слышно меня?».

Разберёмся в статье с вопросами качества передачи голоса в звонках. Например, почему может быть плохо слышно того, кто звонит из автомобиля? В чём особенность использования динамиков вместо наушников? Что происходит со звуком участника звонка, если у него плохой интернет? Можно ли измерить качество звука в цифрах? Ответы под катом.

Читать далее
Total votes 29: ↑27 and ↓2+38
Comments7

Механизм автопилота мозга управляет сознанием

Reading time17 min
Views12K
Представления Фрейда о темном, либидном бессознательном устарело. Новая теория утверждает, что мозг производит непрерывный поток бессознательных предсказаний.


Иллюзия треугольника Каницца свидетельствует о том, что восприятие основано на неявных выводах. Зрительная система конструирует воображаемый треугольник как способ “объяснить” расположение окружностей. Источник: Scientific American

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

Согласно теории “предсказательного разума” сознательный опыт возникает только тогда, когда скрытые ожидания мозга не оправдываются.

Высокоуровневая когнитивная обработка в коре головного мозга может происходить без возникновения сознательного опыта. Сознательное внимание направляют области мозга ответственные за эмоции и мотивацию, а не кора головного мозга.
Читать дальше →
Total votes 20: ↑18 and ↓2+20
Comments25

Неограниченный доступ к знаниям: библиотека Стандартных Шаблонных Конструкций

Level of difficultyMedium
Reading time9 min
Views23K

Есть много причин почему доступ научным статьям и книгам должен быть свободным:

Во-первых, это прекрасно

Во-вторых...
Total votes 54: ↑54 and ↓0+54
Comments9

OpenStreetMap, как получить координаты адреса, часть простая

Reading time4 min
Views39K


Последнее время наблюдаю тенденцию, что всё больше и больше людей сталкиваются с проблемами в отсутствии геоданных. Вернее даже не так, в их закрытости. Если ещё вчера всех устраивали возможности картографических сервисов по расстановке маркеров, то теперь пользователь хочет большего: подсветить улицу, показать дома на ней, посчитать протяжённости рек и т.д. И тут их ожидает сюрприз, казалось бы на карте они всё это видят, но сделать ни чего не могут — это просто картинки. Развитие, что Google.Maps, что Яндекс.Карт остановилось на показе картинок, геокодинге, да навигации.

Читать дальше →
Total votes 34: ↑34 and ↓0+34
Comments24

Как я делал бюджетное устройство мониторинга качества среды и что из этого вышло

Level of difficultyEasy
Reading time8 min
Views13K
image

В начале немного предыстории.

Однажды я был в гостях у своего товарища, который как и я, активно занимается домашней автоматизацией. Я увидел у него смонтированную систему приточной вентиляции и поинтересовался, как он реализовал автоматизацию этой системы. В ответ услышал, что он её включает вручную, так как у него нет устройства, которое анализирует качество воздуха, а готовые решения имеют зачастую слишком неоправданную цену для систем бытового применения. Недолго думая, я предложил ему своё решение, о котором далее и пойдет речь.
Читать дальше →
Total votes 25: ↑24 and ↓1+33
Comments27

10 рекомендаций по VS Code для повышения продуктивности

Level of difficultyEasy
Reading time7 min
Views51K
Visual Studio Code остаётся наиболее предпочтительной IDE среди разработчиков. Причём этот редактор всё чаще используют именно начинающие программисты. Источник: survey.stackoverflow.co/2023

А вы знали, что 73% разработчиков по всему миру используют один редактор кода? Так и есть. Результаты проведённого в 2023 году опроса Stack Overflow показали, что VS Code является самой популярной средой разработки.

И мы все знаем почему — он очень крут!

Но в полной ли мере мы задействуем его потенциал? Текущая статья будет посвящена знакомству с некоторыми интересными возможностями VS Code, способными повысить продуктивность работы. К ним, помимо прочих, относятся локальный контроль исходного кода, анимация курсора и быстрое удаление строк. Использование этих возможностей поможет ускорить реализацию проектов разработки.
Читать дальше →
Total votes 77: ↑69 and ↓8+87
Comments83

SwiftUI по полочкам

Reading time24 min
Views89K
Каждый раз, когда в языке программирования появляется новый Фреймворк, рано или поздно, появляются люди, которые изучают язык именно с него. Вероятно так было и в IOS разработке во времена появления Swift: поначалу он рассматривался как дополнение к Objective-C — но я этого уже не застал. Сейчас, если начинаешь с нуля, выбор языка уже не стоит. Swift вне конкуренции.

То же самое, но в меньшем масштабе, происходит и с фреймворками. Появление SwiftUI — не исключение. Вероятно, я — представитель первого поколения разработчиков, кто стартовал с изучения SwiftUI, проигнорировав UIKit. У этого есть своя цена — обучающих материалов и примеров работающего кода пока очень мало. Да, в сети уже есть некоторое количество статей, рассказывающих о той или иной особенности, том или ином инструменте. На том же www.hackingwithswift.com уже довольно много примеров кода с объяснениями. Однако, они слабо помогают тем, кто решил изучать SwiftUI с нуля, как я. Большинство материалов в сети — это ответы на конкретные, сформулированные вопросы. Опытный разработчик легко разберется, как все устроено, почему именно так, и зачем это нужно применять. Новичку же, сначала нужно понять, какой вопрос задать, и только тогда он сможет добраться до этих статей.



Под катом я попробую систематизировать и разложить по полочкам то, что сам успел усвоить на текущий момент. Формат статьи — почти гайд, хотя скорее, шпаргалка, составленная мной в том виде, в котором я сам бы хотел ее прочитать в начале своего пути. Для опытных разработчиков, еще не вникавшим глубоко в SwiftUI, тоже найдется пара интересных примеров кода, а текстовые пояснения можно читать по-диагонали.

Надеюсь статья поможет вам сэкономить некоторое время, когда вы тоже захотите ощутить немного магии.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments30

Как устроено распределение памяти

Level of difficultyMedium
Reading time11 min
Views25K

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

В этом посте я познакомлю вас с основами распределения памяти (memory allocation). Распределители памяти существуют, потому что иметь доступную память недостаточно, необходимо ещё и эффективно её использовать. Мы наглядно изучим, как работают простые распределители. Мы рассмотрим некоторые из задач, которые им необходимо решать, а также некоторые из методик, которыми они их решают. Прочитав этот пост, вы узнаете всё, что необходимо для написания собственного распределителя.
Читать дальше →
Total votes 56: ↑54 and ↓2+73
Comments6

Stable Diffusion: text-to-person

Level of difficultyEasy
Reading time35 min
Views31K

Многие из вас сталкивались со Stable Diffusion и знают, что с помощью этой нейросети можно генерировать разнообразные изображения. Однако не всем интересно создавать случайные картинки с кошкодевочками, пускай даже и красивыми, и всем прочим. Согласитесь, было бы гораздо интереснее, если бы можно было обучить нейросеть создавать изображения... нас самих? Или наших любимых актёров и музыкантов? Или наших почивших родственников? Конкретных людей, в общем, а не какие-то собирательные образы из того, что было заложено при обучении нейросети. И для достижения этой цели нам потребуется обучить некую модель. Этим мы и займёмся, пытаясь определить наиболее оптимальный воркфлоу и максимально его автоматизировать.

Читать далее
Total votes 30: ↑30 and ↓0+30
Comments29

Как сделать эффект Parallax с помощью CSS

Level of difficultyEasy
Reading time15 min
Views14K


Параллакс-скроллинг может улучшить восприятие сайта, сделав его более запоминающимся, динамичным и иммерсивным. Техника параллакс-скроллинга создает эффект трехмерности, что придает веб-странице большую глубину. Однако здесь есть свои нюансы, о которых мы и поговорим.

В этой статье мы рассмотрим, в каких ситуациях оправдано использование параллакс-скроллинга, разберем, как реализовать его с помощью CSS, и почему для этого стоит использовать именно CSS, а не JavaScript. Приведем несколько примеров CSS-параллакса, варианты его использования и лучшие практики.
Читать далее
Total votes 17: ↑14 and ↓3+13
Comments1

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

Level of difficultyMedium
Reading time21 min
Views14K

Привет, Хабр! Меня все еще зовут Ефим, и я все еще MLOps-инженер в отделе Data- и ML-продуктов Selectel. В предыдущей статье я кратко рассказал про основные ресурсы, которые могут помочь начинающему специалисту ворваться в бурлящий котел Data Science. Но после выхода материала я понял, что задача систематизации знаний гораздо сложнее, чем казалось. Настолько, что проиллюстрировать ее можно только табличкой ниже:


В этом тексте хочу исправиться: разбить знания по Data Science и машинному обучению на несколько теоретических блоков и дать больше полезных материалов. Подробности под катом!
Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments9

От желания управлять газовым котлом удалённо до полной автоматизации отопления дома

Level of difficultyMedium
Reading time6 min
Views38K

В статье расскажу про свой путь разработки DIY железок для работы с Home Assistant с целью автоматизации отопления в частном доме.

Глава 0: предыстория

Захотелось построить дом. Дом построили, встал вопрос с отоплением и управлением, а так как в доме иногда отсутствовали по несколько месяцев, то переплачивать за газ не очень-то и хотелось. Газа ведь магистрального нет, но «мы скоро проведем». До этого «скоро» закопали газгольдер, а газ там в +-10 раз дороже магистрального. Пытливый ум решил: будем поддерживать в доме температуру 15 градусов, когда там никого нет. Как это сделать? Повесить контроллер/термостат для котла.

Читать далее
Total votes 31: ↑30 and ↓1+40
Comments112

Как я делала мониторинг качества воздуха в Армении

Level of difficultyEasy
Reading time8 min
Views18K

Или как я превратила самодельную штуку в реальный проект. Часть 1.

В мае 2022 я релоцировалась переехала в Армению. Повод, кстати, заслуживает отдельной статьи «Как я представляла Россию в конкурсе Lexus Design Award 2022 и выиграла грант в 25 000$”. В разгар санкций получить эти деньги было не так-то просто, и я отправилась в Ереван...

Читать далее
Total votes 140: ↑136 and ↓4+167
Comments112

Лучший regexp для Go. Benchmark c другими ЯП. Сравнение библиотек

Level of difficultyMedium
Reading time9 min
Views4.1K

"Не используйте регулярки - иначе вместо 1 проблемы, у вас их станет 2!" - как то так говорят знатоки... А что остается делать непослушным, желающим эффективный поиск по большому количеству шаблонов?

Да, для такой довольно специфичной проблемы существуют крутые решения вроде Ragel или re2c. Тем не менее, для своего проекта мне показалось нецелесообразным пока осваивать эти прекрасные технологии.

В этой статье мы рассмотрим альтернативы стандартной библиотеке для регулярных выражений в Go, проведем их бенчмарк по скорости и потребляемой памяти. А также с практической точки зрения рассмотрим различия между ними.

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments8

Information

Rating
Does not participate
Location
Черновцы, Черновицкая обл., Украина
Registered
Activity