reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
#database#Neo4j#Spring
💾
Graph Database : Neo4j with Spring Boot
NoSQL : Neo4j with Java and Spring Framework. Node, Relationship with CRUD Operations & AND, OR, IN Cypher Queries
🔗Link
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
#python#docker#fastapi#kbqa#kgqa#llms#neo4j#rag#vue
Yuxi-Know (语析) is a free, open-source platform built with LangGraph, Vue.js, FastAPI, and LightRAG to create smart agents using RAG knowledge bases and knowledge graphs. The latest v0.4.0-beta (Dec 2025) adds file uploads, multimodal image support, mind maps from files, evaluation tools, dark mode, and better graph visuals. It helps you quickly build and deploy custom AI agents for Q&A, analysis, and searches without starting from scratch, saving time and effort on development.
https://github.com/xerrors/Yuxi-Know
#rust#ai#ai_ocr#attention_mechanism#gnn#gnn_model#gnns#graph#graph_neural_networks#llm_inference#low_latency#mincut#neo4j#ocr#onnx#rust#vector#wasm
RuVector is a free, open-source vector database that gets smarter with every query. Unlike static databases, it learns from usage via GNN layers, runs LLMs locally with no cloud costs, supports graph queries like Neo4j, scales freely across nodes, and deploys as a single self-booting file (125ms startup). Run with `npx ruvector`. You benefit from faster, more accurate AI search that improves automatically, zero operating costs, full offline/privacy control, and easy scaling—perfect for RAG, agents, or edge apps without vendor lock-in.
https://github.com/ruvnet/ruvector
#python#ai#ai_agents#ai_memory#cognitive_architecture#cognitive_memory#contributions_welcome#good_first_issue#good_first_pr#graph_database#graph_rag#graphrag#help_wanted#knowledge#knowledge_graph#neo4j#open_source#openai#rag#vector_database
Cognee is an open-source AI memory engine that helps improve how AI systems understand and process data. It mimics human cognitive processes, creating "memories" from various data types like text and images. This enhances the accuracy of large language models (LLMs) and allows them to recall past interactions and documents. Cognee is scalable, cost-effective, and integrates easily with existing systems, making it a valuable tool for developers seeking to boost AI performance without relying on expensive APIs.
https://github.com/topoteretes/cognee