Это открытый прокси-сервер и кэш для Go Modules, который поможет вам:
⚡ Ускорить сборку в CI/CD за счёт локального кэша зависимостей.
🔒 Гарантировать доступность модулей, даже если исходный репозиторий пропал или временно недоступен.
🔐 Организовать безопасное хранилище приватных модулей для вашей компании.
☁️ Интегрироваться с любыми хранилищами: S3, GCS, Azure Blob, MongoDB, локальный диск и т.д.
Кратко о том, как запустить:
1. Скачайте и запустите Docker-образ:
docker run -p 3000:3000 gomods/athens:latest
2. Установите прокси в окружении:
export GOPROXY=http://localhost:3000
3. Работаем как обычно:
go get github.com/your/[email protected]
Athens полностью совместим с официальным протоколом загрузки модулей Go (v1.12+). Под капотом — адаптеры для Git, CDN и множество опций по хранению и авторизации.
Проект активно развивается:
- Более 200 участников на GitHub
- 4.5 тыс. звёзд ⭐
- Регулярные релизы (последний — v0.16.0)
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑💻 Godo — библиотека, предоставляющая простой и эффективный способ взаимодействия с DigitalOcean API v2 на языке Go. Она покрывает основные методы управления дроплетами, реестрами и другими сервисами DO, поддерживает пагинацию, автоматические повторы запросов и экспоненциальный бекофф.
Использование инструмента интуитивно понятно: создаёте клиент с токеном и работаете с API через готовые методы. Например, создание дроплета или получение списка репозиториев реализовано буквально в несколько строк.
🤖 GitHub
@golang_google
Использование инструмента интуитивно понятно: создаёте клиент с токеном и работаете с API через готовые методы. Например, создание дроплета или получение списка репозиториев реализовано буквально в несколько строк.
🤖 GitHub
@golang_google
Вы будете частью большой команды, которая занимается разработкой PaaS платформы: механикой сборки, тестированием и доставкой сервисов в разные окружения, а также runtime механикой по управлению сервисами в k8s кластерах.
Каждый из 4000+ сервисов Авито журналирует свою работу, а команда мониторинга сохраняет и обрабатывает этот огромный поток логов, метрик, находя за секунды из гигабайтов данных сломанный сервис/сценарий и сообщая релевантной команде.
С одной стороны команда помогает Авито полностью соответствовать требованиям регулятора, а с другой — предоставляет пользователям инновационные возможности применять предлагаемые государством сервисы для улучшения своего пользовательского опыта и повышения безопасности на площадке.
Команда Performance отвечает за скорость работы сервиса на всех платформах. Вам предстоит создавать инструменты тестирования, анализа и контроля за производительностью, помогать продуктовым командам делать Авито быстрым и надёжным, развивая культуру производительности в компании.
Вам предстоит поддерживать и развивать высоконагруженный сервис, выполнять задачи по улучшению пользовательского опыта, проектировать и реализовывать комплексные механики, а также развивать и поддерживать существующие системы, компоненты и библиотеки.
А ещё вас ждёт:
- прозрачная система премий и достойная зарплата, размер которой обсуждается на собеседовании
- возможность реализовать свои идеи в проекте с многомиллионной аудиторией
- талантливая команда, готовая поддержать ваши инициативы
- мощное железо, дополнительные мониторы и всё, что нужно для продуктивной работы
- личный бюджет на обучение, который можно тратить на книги, курсы и конференции
- забота о здоровье: с первого дня у вас будет ДМС со стоматологией, в офисе принимают терапевт и массажист
- удалённая работа и комфортный офис в двух минутах от метро «Белорусская»: панорамный вид на центр города, места для уединённой работы и зоны отдыха.
Откликайтесь по ссылкам и присоединяйтесь к одной из команд!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Machinelearning
This media is not supported in your browser
VIEW IN TELEGRAM
Представьте, что учите язык не по учебникам, а через ситуации, в которых оказываетесь каждый день. Именно эту идею воплотила команда Google в проекте Little Language Lessons— трех экспериментах на базе Gemini API, которые делают обучение живым и контекстным.
Первый эксперимент, Tiny Lesson, решает проблему «как сказать это сейчас?». Вы описываете ситуацию — например, «потерял паспорт» — и получаете словарь и фразы в формате JSON. Всё благодаря промптам, где Gemini генерирует структурированные данные: массив терминов с транскрипцией и переводом, а также советы по грамматике.
Например, если целевой язык — японский, модель сама определит, нужна ли транскрипция ромадзи, и подготовит материал за 2 API-запроса. Это не просто список слов, а готовый микрокурс под конкретный сценарий.
Второй, Slang Hang, убирает «учебникоговорение». Тут Gemini выступает как сценарист: создаёт диалоги на целевом языке с культурными нюансами и сленгом. Все генерируется одним запросом — от контекста сцены до реплик с пояснениями. Пример: диалог продавца и туриста может включать неформальные выражения, которые не найдешь в стандартных учебниках.
Правда, иногда модель ошибается или придумывает выражения, так что без проверки носителем не обойтись. Но сам подход — дать пользователю «уши» в реальных разговорах выглядит перспективно, особенно с интеграцией Cloud Translation для мгновенного перевода.
Третий, визуальный эксперимент — Word Cam. Наводите камеру на объект, и Gemini не только определяет его (bounding box), но и предлагает слова вроде «подоконник» или «жалюзи». Детекция работает через Gemini Vision, а дополнительные дескрипторы (цвет, материал, примеры употребления) подтягиваются отдельным запросом. Для изучения бытовой лексики почти идеально, хотя точность сильно зависит от качества снимка.
Во всех экспериментах задействован Text-to-Speech — озвучка слов и фраз. Но есть нюанс: для редких языков голоса зачастую звучат неестественно или не совпадают с диалектом. Например, выберете мексиканский испанский, а синтезатор выдаст акцент из Мадрида. Разработчики честно признают: это ограничение текущих API, и над ним еще работать.
Little Language Lessons — начало переосмысления процесса обучения языкам. Проекту пока не хватает тонкой настройки под лингвистическую специфику (идиомы или региональные диалекты), но основа уже заложена.
@ai_machinelearning_big_data
#AI #ML #LLM #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
GoPilot — это библиотека для Go, которая позволяет вызывать ваши функции с помощью естественного языка.
⚡️ С её помощью можно:
- Анализировать запросы на естественном языке
- Автоматически выбирать нужную функцию
- Преобразовывать динамические параметры в строго типизированные структуры
- Проверять обязательные поля и валидировать входные данные
- Управлять порядком выполнения и ответами
## Ключевые особенности
- Natural Language Processing
Обработка запросов пользователя без ручного парсинга текста.
- Automatic Function Routing
GoPilot сам сопоставляет запрос с зарегистрированной функцией.
- Type-Safe Parameter Mapping
Динамические вводимые данные конвертируются в структуры Go.
- Built-in Validation
Генерируемая схема параметров учитывает теги
required
, description
и др. - Easy Integration
Простое API: регистрируете функции и задаёте системный промпт.
- Flexible Response Handling
Поддержка разных форматов ответа и «режимов» выполнения.
## Быстрый старт
import (
"context"
"github.com/SadikSunbul/gopilot"
"github.com/SadikSunbul/gopilot/clients"
"github.com/SadikSunbul/gopilot/pkg/generator"
)
type WeatherParams struct {
City string `json:"city" description:"City name" required:"true"`
}
type WeatherResponse struct {
City string `json:"city"`
Temp int `json:"temp"`
Condition string `json:"condition"`
}
func GetWeather(p WeatherParams) (WeatherResponse, error) {
return WeatherResponse{City: p.City, Temp: 25, Condition: "sunny"}, nil
}
func main() {
client, _ := clients.NewGeminiClient(context.Background(), "API_KEY", "gemini-2.0-flash")
gp, _ := gopilot.NewGopilot(client)
weatherFn := &gopilot.Function[WeatherParams, WeatherResponse]{
Name: "weather-agent",
Description: "Get weather by city",
Parameters: generator.GenerateParameterSchema(WeatherParams{}),
Execute: GetWeather,
}
gp.FunctionRegister(weatherFn)
gp.SetSystemPrompt(nil)
// Генерация + выполнение за один вызов
result, _ := gp.GenerateAndExecute("Какая погода в Москве?")
fmt.Printf("%+v\n", result)
}
▪ Github
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
«Дифференциальное покрытие» — это приём, который помогает быстро находить проблемные участки в коде, сравнивая покрытие не‐упавших и упавших тестов.
📌 Зачем это нужно
- В больших кодовых базах вручную отслеживать, где именно тест упал — долго и сложно.
- Сравнивая два профиля покрытия (успешного и провального), можно автоматически выделить только те участки, которые запустились при падении теста и не запускались ранее.
🚀 Как применить на Go-проекте
1. Собираем профиль «успешного» запуска (пропускаем проблемный тест):
go test -coverprofile=c1.prof -skip='TestAddSub$'
Выделяем строки, уникальные для упавшего теста:
(head -1 c1.prof; diff c[12].prof | sed -n 's/^> //p') > c3.prof
head -1 сохраняет шапку профиля
diff… | sed отбирает только новые строки
Открываем результат в браузере:
```bash
go tool cover -html=c3.prof
🔍 Интерпретация отчёта
Зелёным подсвечены участки, которые запустились только в упавшем тесте.
Красным — код, который обычно выполняется, но не был затронут падением теста (может натолкнуть на дополнительные вопросы).
Именно зелёные строки стоят изучить в первую очередь — там, скорее всего, спрятана ошибка.
Пример из math/big
В примере теста TestAddSub падение происходило из-за пропущенного za.neg = false в ветке else.
Из более чем 15 000 строк кода дифференциальное покрытие сузило поиск до 10 строк — двух из них было достаточно, чтобы диагностировать баг.
⚠️ Ограничения
Если баг зависит от специфичных данных или тест не чувствителен к ошибке, покрытие может не указать на проблемный код.
Тем не менее, в большинстве случаев «дифф-покрытие» даёт мгновенный фокус на действительно важных местах.
Используйте дифференциальное покрытие при отладке любых модулей Go (и не только!) — это дешёвый и высокоэффективный способ быстро найти виновника падения теста.
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Cache-Control
. Простота настройки делает Reload удобным инструментом для ускорения разработки и тестирования. Она идеально подходит для разработчиков, которые хотят минимизировать рутинные задачи и сосредоточиться на создании функционального и качественного кода.@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
May the 4th be with you: 4 мая — неофициальный день «Звёздных войн».
ASCII Movie - это проект с открытым исходным кодом, который будет «транслировать» оригинальный фильм «Звёздные войны» (эпизод IV) в виде ASCII-графики прямо в ваш терминал, используя протоколы SSH или Telnet.
Сервис реализован на языке Go и снабжён простым текстовым интерфейсом с поддержкой клавиатуры и мыши, а также доступен в виде Docker-контейнера.
sudo docker run --rm -it ghcr.io/gabe565/ascii-movie play
#MayThe4th
http://github.com/gabe565/ascii-movie
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
МТС приглашает разработчиков на масштабную ИТ-конференцию True Tech Day 6 июня. Участие бесплатно
Ключевая тема конференции в этом году — искусственный интеллект. Тебя ждут доклады ученых, выступления зарубежных спикеров по AI и экспертов крупных ИТ-компаний.
В программе:
— 4 трека и больше 40 докладов.
— Выступления зарубежных спикеров с индексом Хирша более 50.
— Концентрация практических кейсов: как создаются большие ML-проекты.
— Доклады по архитектуре, бэкенд-разработке и построению ИТ-платформ.
— AI-интерактивы и технологические квесты.
— Пространство для нетворкинга,
…а еще after-party со звездным лайн-апом.
Когда: 6 июня
Где: Москва, МТС Live Холл и онлайн
Участие бесплатно. Регистрация по ссылке.
Ключевая тема конференции в этом году — искусственный интеллект. Тебя ждут доклады ученых, выступления зарубежных спикеров по AI и экспертов крупных ИТ-компаний.
В программе:
— 4 трека и больше 40 докладов.
— Выступления зарубежных спикеров с индексом Хирша более 50.
— Концентрация практических кейсов: как создаются большие ML-проекты.
— Доклады по архитектуре, бэкенд-разработке и построению ИТ-платформ.
— AI-интерактивы и технологические квесты.
— Пространство для нетворкинга,
Когда: 6 июня
Где: Москва, МТС Live Холл и онлайн
Участие бесплатно. Регистрация по ссылке.
🚥 Вредоносные Go‑модули распространяют DiskRanger
1) Обнаружены несколько вредоносных Go‑модулей, которые загружали malware DiskRanger.
2) Модули маскировались под HTTP и logging библиотеки.
3) Malware активировался через init‑функции и хуки компиляции.
4) Цель — supply chain атака на разработчиков и CI/CD.
⚠️ Рекомендации:
● аудит зависимостей
● избегать auto update неизвестных пакетов
● следить за CVE и делетом модулей
📍 Судя по всему, supply chain‑атаки становятся всё чаще, даже опытные Go‑разработчики попадаются на них.
✅ Статья полностью
@golang_google
1) Обнаружены несколько вредоносных Go‑модулей, которые загружали malware DiskRanger.
2) Модули маскировались под HTTP и logging библиотеки.
3) Malware активировался через init‑функции и хуки компиляции.
4) Цель — supply chain атака на разработчиков и CI/CD.
⚠️ Рекомендации:
● аудит зависимостей
● избегать auto update неизвестных пакетов
● следить за CVE и делетом модулей
📍 Судя по всему, supply chain‑атаки становятся всё чаще, даже опытные Go‑разработчики попадаются на них.
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Бесплатный вебинар от Слёрма «Траблшутинг K8s: инструменты и лайфхаки для разработчиков».
На вебинаре:
- начнём с kubectl,
- посмотрим сайдкар контейнеры и узнаем, зачем их использовать,
- разберемся с сетевыми проблемами,
- научимся использовать strace для сложных случаев
Спикер: Виталий Лихачев, SRE в крупном нидерландском тревелтехе.
Дата: 14 мая 19:00
👉 Занять место — через бота.
В конце вебинара — подарок 🎁
Вебинар проходит в рамках курса «Kubernetes для разработчиков»
Реклама ООО «Слёрм» ИНН 3652901451
На вебинаре:
- начнём с kubectl,
- посмотрим сайдкар контейнеры и узнаем, зачем их использовать,
- разберемся с сетевыми проблемами,
- научимся использовать strace для сложных случаев
Спикер: Виталий Лихачев, SRE в крупном нидерландском тревелтехе.
Дата: 14 мая 19:00
👉 Занять место — через бота.
В конце вебинара — подарок 🎁
Вебинар проходит в рамках курса «Kubernetes для разработчиков»
Реклама ООО «Слёрм» ИНН 3652901451
📝 Как составить резюме, чтобы попасть в Magnificent 7: анализ кейса
Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).
Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.
Разберём, что сделало его резюме успешным и чему можно научиться.
📌 Главные выводы из резюме:
1. Фокус на достижениях, а не обязанностях.
Многие кандидаты в резюме просто перечисляют, *что они делали*, например:
- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”
⚠️ Это описывает обязанности, но не показывает ценность или результат работы.
В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:
✅ “Разработал API, который сократил время обработки данных на 30%”
✅ “Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
✅ “Автоматизировал процесс деплоя, снизив количество ошибок на 15%”
Такой подход показывает, как конкретно ваша работа помогла команде или бизнесу.
Работодатель видит результаты, которые вы приносите, а не просто описание того, что вы делали.
💡 Почему это важно?
Big Tech-компании ищут инженеров, которые:
- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат
Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”
2. Лаконичность и компактность.
✅ 1 страница
✅ Чёткая структура: “Опыт”, “Навыки”, “Образование”
✅ Без фото, графиков, цветных рамок — чистый текст
3. Цифры везде, где это возможно.
Любое достижение сопровождается конкретной метрикой: улучшение производительности, сокращение времени, рост количества пользователей.
Даже небольшие улучшения указаны численно.
4. Поддержка через проекты с открытым кодом.
Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.
5. Навыки — только релевантные вакансии.
В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).
6. Интерншипы и стажировки — это опыт.
Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.
---
🎯 Что важно для Big Tech:
✅ Результаты > Задачи.
✅ Цифры.
✅ 1 страница.
✅ GitHub/портфолио.
✅ Релевантные навыки.
---
🔥 Совет:
Ваше резюме — это реклама вас как продукта.
Покажите пользу, которую вы можете принести, а не просто список обязанностей.
➡️ Статья
@golang_google
Недавно инженер поделился своим резюме, которое помогло ему получить предложение работы от одной из rjvgfybb Magnificent 7 (Apple, Microsoft, Google, Amazon, Meta, Nvidia, Tesla).
Magnificent 7 (в переводе — «Великолепная семёрка») — это современное неофициальное название семи крупнейших и самых влиятельных технологических компаний США, которые лидируют на фондовом рынке, в инновациях и в масштабе бизнеса.
Разберём, что сделало его резюме успешным и чему можно научиться.
📌 Главные выводы из резюме:
1. Фокус на достижениях, а не обязанностях.
Многие кандидаты в резюме просто перечисляют, *что они делали*, например:
- “Разрабатывал API”
- “Поддерживал базу данных”
- “Писал скрипты для автоматизации”
⚠️ Это описывает обязанности, но не показывает ценность или результат работы.
В успешном резюме инженер вместо этого написал, чего он достиг благодаря своей работе:
✅ “Разработал API, который сократил время обработки данных на 30%”
✅ “Оптимизировал запросы к базе данных, уменьшив среднее время ответа с 2 секунд до 0.5 секунд”
✅ “Автоматизировал процесс деплоя, снизив количество ошибок на 15%”
Такой подход показывает, как конкретно ваша работа помогла команде или бизнесу.
Работодатель видит результаты, которые вы приносите, а не просто описание того, что вы делали.
💡 Почему это важно?
Big Tech-компании ищут инженеров, которые:
- Умеют оценивать влияние своей работы
- Думают о метриках успеха
- Приносят измеримый результат
Если в резюме нет цифр, улучшений или влияния на процесс — работодатель сам должен это додумывать.
А успешное резюме снимает вопросы и сразу показывает: “Вот что я сделал, вот как я улучшил продукт/процесс/результат.”
2. Лаконичность и компактность.
✅ 1 страница
✅ Чёткая структура: “Опыт”, “Навыки”, “Образование”
✅ Без фото, графиков, цветных рамок — чистый текст
3. Цифры везде, где это возможно.
Любое достижение сопровождается конкретной метрикой: улучшение производительности, сокращение времени, рост количества пользователей.
Даже небольшие улучшения указаны численно.
4. Поддержка через проекты с открытым кодом.
Инженер приложил ссылку на GitHub с реальными проектами — это усилило доверие к нему Как с специалисту.
5. Навыки — только релевантные вакансии.
В разделе Skills нет «MS Word» или «PowerPoint».
Только языки, технологии, инструменты, которые нужны для позиции (Python, Kubernetes, CI/CD, etc.).
6. Интерншипы и стажировки — это опыт.
Каждый опыт, даже в рамках стажировки, описан с результатами.
Вакансии в топ-компаниях ценят любую практику в реальной команде.
---
🎯 Что важно для Big Tech:
✅ Результаты > Задачи.
✅ Цифры.
✅ 1 страница.
✅ GitHub/портфолио.
✅ Релевантные навыки.
---
🔥 Совет:
Ваше резюме — это реклама вас как продукта.
Покажите пользу, которую вы можете принести, а не просто список обязанностей.
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔒 Безопасность: Включает исправление безопасности для os (CVE-2025-22873).
📢 Анонс: https://groups.google.com/g/golang-announce/c/UZoIkUT367A/m/5WDxKizJAQAJ
📦 Скачать: https://go.dev/dl/#go1.24.3
#golang #release
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
❓Как прекратить бесконечные споры на код-ревью?
С 12 по 16 мая пройдёт Podlodka Go Crew — онлайн-конференция для Go-разработчиков. Тема недели: «Стандарты разработки».
Говорим про линтеры, архитектуру, code-style и то, как договориться один раз — и больше не возвращаться к этому.
Что в программе:
🔍 Разберём, как эволюционировала валидация Go-кода — вместе с Максимом Коноваловым из VK Tech. Какие подходы стали индустриальным стандартом, а какие остались нишевыми?
⚖️ В рулетке кейсов с Сергеем Петровым и Олегом Сидоренковым обсудим реальные конфликты: когда можно автоматизировать, а когда стоит договариваться.
🏗 Илья Цыганов из Т-Банка поделится архитектурным подходом: как CQS, Ports & Adapters и DDD помогают поддерживать зрелый продукт.
📌 Подходы, которые уже работают в проде — без теории и воды.
👉 Программа и билеты: https://podlodka.io/gocrew
С 12 по 16 мая пройдёт Podlodka Go Crew — онлайн-конференция для Go-разработчиков. Тема недели: «Стандарты разработки».
Говорим про линтеры, архитектуру, code-style и то, как договориться один раз — и больше не возвращаться к этому.
Что в программе:
🔍 Разберём, как эволюционировала валидация Go-кода — вместе с Максимом Коноваловым из VK Tech. Какие подходы стали индустриальным стандартом, а какие остались нишевыми?
⚖️ В рулетке кейсов с Сергеем Петровым и Олегом Сидоренковым обсудим реальные конфликты: когда можно автоматизировать, а когда стоит договариваться.
🏗 Илья Цыганов из Т-Банка поделится архитектурным подходом: как CQS, Ports & Adapters и DDD помогают поддерживать зрелый продукт.
📌 Подходы, которые уже работают в проде — без теории и воды.
👉 Программа и билеты: https://podlodka.io/gocrew
🚀 Zinx — легковесный фреймворк для игровых серверов на Golang. В отличие от универсальных решений вроде gRPC, этот фреймворк заточен именно под long-lived соединения с поддержкой маршрутизации сообщений и пула воркеров.
Проект изначально создавался как обучающий — его документация буквально ведёт разработчика шаг за шагом от простого эхо-сервера до полноценного кластера. Сейчас Zinx используют в продакшене, включая китайские игровые студии.
🤖 GitHub
@golang_google
Проект изначально создавался как обучающий — его документация буквально ведёт разработчика шаг за шагом от простого эхо-сервера до полноценного кластера. Сейчас Zinx используют в продакшене, включая китайские игровые студии.
🤖 GitHub
@golang_google
@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Avo — это библиотека и CLI-инструменты, которые позволяют писать ассемблерный код прямо на Go-коде и автоматически генерировать `.s`-файлы + Go-стабы* для вызова этих функций.
Этот необычный инструмент превращает написание высокопроизводительного ассемблера x86 в процесс, похожий на обычную Go-разработку.
Вместо управления регистрами вручную, вы описываете логику на Go-подобном синтаксисе а Avo генерирует оптимизированный ассемблерный код с правильными префиксами.
Проект особенно полезен для криптографии и низкоуровневых оптимизаций.
asm.go:
*Go-стабы: это Go-файл, который объявляет функцию без реализации, но с правильной сигнатурой, чтобы компилятор понимал, как с ней работать.
▪ GitHub
@golang_google
Этот необычный инструмент превращает написание высокопроизводительного ассемблера x86 в процесс, похожий на обычную Go-разработку.
Вместо управления регистрами вручную, вы описываете логику на Go-подобном синтаксисе а Avo генерирует оптимизированный ассемблерный код с правильными префиксами.
Проект особенно полезен для криптографии и низкоуровневых оптимизаций.
asm.go:
package main
import . "github.com/mmcloughlin/avo/build"
func main() {
TEXT("Add", NOSPLIT, "func(x, y uint64) uint64")
x := Load(Param("x"), GP64())
y := Load(Param("y"), GP64())
ADDQ(x, y)
Store(y, ReturnIndex(0))
RET()
Generate()
}
*Go-стабы: это Go-файл, который объявляет функцию без реализации, но с правильной сигнатурой, чтобы компилятор понимал, как с ней работать.
▪ GitHub
@golang_google
🧠 LangChainGo и MongoDB: создание RAG-приложений на Go
🚀 Основная идея
MongoDB интегрировалась с LangChainGo — портом популярного фреймворка LangChain для языка Go. Это позволяет разработчикам на Go создавать приложения с поддержкой больших языковых моделей (LLM), используя возможности MongoDB для векторного поиска и хранения данных.
🔧 Что такое LangChainGo?
• LangChainGo — это сообщественно-разрабатываемый порт фреймворка LangChain для языка Go.
• Позволяет интегрировать LLM в Go-приложения, используя такие сервисы, как OpenAI, Ollama, Mistral и другие.
• Поддерживает различные хранилища векторов, включая MongoDB.
🗄 Роль MongoDB как операционной и векторной базы данных
• MongoDB Atlas предоставляет встроенные возможности векторного поиска, упрощая разработку AI-приложений.
• Объединяет семантический поиск с фильтрами по метаданным, графовыми запросами, агрегациями и геопространственным поиском.
• Распределённая архитектура обеспечивает масштабируемость и изоляцию нагрузок.
• Обеспечивает корпоративный уровень безопасности и доступности.
🤖 MongoDB, Go и AI/ML
• Go становится всё более популярным в AI/ML благодаря своей простоте, масштабируемости и безопасности во время выполнения.
• Интеграция MongoDB с LangChainGo позволяет разработчикам на Go создавать приложения с поддержкой RAG (Retrieval-Augmented Generation) и AI-агентов.
• MongoDB Go Driver поддерживает векторный поиск и упрощает взаимодействие с MongoDB из Go-приложений.
🏁 Начало работы с MongoDB и LangChainGo
• MongoDB добавлена как хранилище векторов в версии LangChainGo v0.1.13 под названием
• Пример использования: [mongovector-vectorstore-example](https://github.com/tmc/langchaingo/tree/main/examples/mongovector-vectorstore-example).
• Полезные руководства:
- [Начало работы с интеграцией LangChainGo](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [RAG с Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [Локальная реализация RAG с Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [Начало работы с Atlas Vector Search (Go)](https://www.mongodb.com/docs/atlas/atlas-vector-search/)
Эта интеграция открывает новые возможности для разработчиков на Go, позволяя эффективно использовать MongoDB для создания современных AI-приложений.
👉 Источник
@golang_google
🚀 Основная идея
MongoDB интегрировалась с LangChainGo — портом популярного фреймворка LangChain для языка Go. Это позволяет разработчикам на Go создавать приложения с поддержкой больших языковых моделей (LLM), используя возможности MongoDB для векторного поиска и хранения данных.
🔧 Что такое LangChainGo?
• LangChainGo — это сообщественно-разрабатываемый порт фреймворка LangChain для языка Go.
• Позволяет интегрировать LLM в Go-приложения, используя такие сервисы, как OpenAI, Ollama, Mistral и другие.
• Поддерживает различные хранилища векторов, включая MongoDB.
🗄 Роль MongoDB как операционной и векторной базы данных
• MongoDB Atlas предоставляет встроенные возможности векторного поиска, упрощая разработку AI-приложений.
• Объединяет семантический поиск с фильтрами по метаданным, графовыми запросами, агрегациями и геопространственным поиском.
• Распределённая архитектура обеспечивает масштабируемость и изоляцию нагрузок.
• Обеспечивает корпоративный уровень безопасности и доступности.
🤖 MongoDB, Go и AI/ML
• Go становится всё более популярным в AI/ML благодаря своей простоте, масштабируемости и безопасности во время выполнения.
• Интеграция MongoDB с LangChainGo позволяет разработчикам на Go создавать приложения с поддержкой RAG (Retrieval-Augmented Generation) и AI-агентов.
• MongoDB Go Driver поддерживает векторный поиск и упрощает взаимодействие с MongoDB из Go-приложений.
🏁 Начало работы с MongoDB и LangChainGo
• MongoDB добавлена как хранилище векторов в версии LangChainGo v0.1.13 под названием
mongovector
. • Пример использования: [mongovector-vectorstore-example](https://github.com/tmc/langchaingo/tree/main/examples/mongovector-vectorstore-example).
• Полезные руководства:
- [Начало работы с интеграцией LangChainGo](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [RAG с Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [Локальная реализация RAG с Atlas Vector Search](https://www.mongodb.com/docs/atlas/atlas-vector-search/langchain-go/)
- [Начало работы с Atlas Vector Search (Go)](https://www.mongodb.com/docs/atlas/atlas-vector-search/)
Эта интеграция открывает новые возможности для разработчиков на Go, позволяя эффективно использовать MongoDB для создания современных AI-приложений.
👉 Источник
@golang_google