Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions .github/workflows/issue-solver.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@

name: Entelligence-AI
permissions:
contents: read
issues: write
on:
issues:
types: [opened, edited]
jobs:
handle_issues:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js 20
uses: actions/setup-node@v4
with:
node-version: '20'

- name: Extract Repository and Username
id: extract-repo-info
run: |
repo_name=$(basename $GITHUB_REPOSITORY)
username=$(dirname $GITHUB_REPOSITORY | cut -d'/' -f1)
echo "REPO_NAME=$repo_name" >> $GITHUB_ENV
echo "USERNAME=$username" >> $GITHUB_ENV

- name: Sanitize Issue Body
id: sanitize-body
run: |
sanitized_body=$(echo "${{ github.event.issue.body }}" | tr -d '\r' | tr '\n' ' ')
echo "SANITIZED_BODY=${sanitized_body}" >> $GITHUB_ENV

- name: Debug Sanitized Body
run: |
echo "Sanitized Body: ${{ env.SANITIZED_BODY }}"

- name: Call API
id: call-api
env:
API_URL: ${{ secrets.ENTELLIGENCE_AI_ISSUE_API }}
ISSUE_TITLE: ${{ github.event.issue.title }}
ISSUE_BODY: ${{ env.SANITIZED_BODY }}
REPO_NAME: ${{ env.REPO_NAME }}
USERNAME: ${{ env.USERNAME }}
run: |
set +e
response=$(curl -s -X POST ${{env.API_URL}} \
-H "Content-Type: application/json" \
-d "{\"vectorDBUrl\": \"${{env.USERNAME}}&${{env.REPO_NAME}}\", \"title\": \"${{env.ISSUE_TITLE}}\", \"summary\": \"${{env.ISSUE_BODY}}\", \"repoName\": \"${{env.USERNAME}}/${{env.REPO_NAME}}\"}")
body=$(echo "$response" | sed '$d')
echo "$response"
echo "API_RESPONSE<<EOF" >> $GITHUB_ENV
echo $(printf "%s" "$body" | base64) >> $GITHUB_ENV
echo "EOF" >> $GITHUB_ENV
set -e

- name: Post Comment on Issue
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const issueNumber = context.issue.number;
const apiResponse = Buffer.from(process.env.API_RESPONSE, 'base64').toString('utf-8');

github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issueNumber,
body: apiResponse
});
235 changes: 230 additions & 5 deletions README.md

Large diffs are not rendered by default.

27 changes: 27 additions & 0 deletions data/knowledge_base/smernice_crp.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Název: Klinické doporučení pro interpretaci C-reaktivního proteinu (CRP)

Datum vydání: 2024-01-15
Verze: 1.1

Úvod:
C-reaktivní protein (CRP) je protein akutní fáze zánětu, syntetizovaný v játrech. Jeho hladina v krvi stoupá v reakci na zánět, infekci nebo tkáňové poškození.

Referenční hodnoty:
- Dospělí: < 5 mg/L
- Novorozenci: < 10 mg/L (může být fyziologicky vyšší)

Interpretace zvýšených hodnot:
- Mírné zvýšení (5 - 10 mg/L): Může být přítomno u mírných lokálních zánětů, virových infekcí, po fyzické námaze, v těhotenství nebo u kuřáků. Vyžaduje zvážení klinického stavu.
- Střední zvýšení (10 - 50 mg/L): Často doprovází bakteriální infekce (např. bronchitida, cystitida), aktivní autoimunitní onemocnění, nebo pooperační stavy.
- Výrazné zvýšení (50 - 200 mg/L): Typické pro závažné bakteriální infekce (např. pneumonie, pyelonefritida), rozsáhlé trauma, popáleniny, akutní infarkt myokardu.
- Extrémní zvýšení (> 200 mg/L): Může signalizovat sepsi, závažné systémové infekce nebo rozsáhlé popáleniny. Vyžaduje urgentní řešení.

Dynamika CRP:
Hladina CRP stoupá rychle (během 6-8 hodin od začátku podnětu) a také rychle klesá po odeznění příčiny (poločas cca 19 hodin). Sledování dynamiky CRP je užitečné pro monitorování průběhu onemocnění a odpovědi na léčbu.

Upozornění:
- Izolované mírné zvýšení CRP bez klinických příznaků by mělo být hodnoceno s opatrností.
- Chronicky mírně zvýšené CRP (hs-CRP) je spojováno se zvýšeným kardiovaskulárním rizikem.

Doporučení:
Interpretace CRP musí vždy probíhat v kontextu klinického stavu pacienta, anamnézy a dalších laboratorních nálezů. V případě nejasností nebo výrazně zvýšených hodnot je indikováno další došetření.
38 changes: 38 additions & 0 deletions data/knowledge_base/smernice_psa.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
Název: Doporučení pro interpretaci Prostatického Specifického Antigenu (PSA)

Datum vydání: 2023-11-20
Verze: 1.0

Úvod:
Prostatický specifický antigen (PSA) je glykoprotein produkovaný epiteliálními buňkami prostaty. Jeho hladina v séru se využívá jako tumorový marker pro karcinom prostaty, ale může být zvýšena i u nezhoubných stavů.

Referenční hodnoty a věková specifika:
Referenční rozmezí pro PSA se liší v závislosti na věku:
- Muži 40-49 let: obvykle do 2.5 µg/L (ng/mL)
- Muži 50-59 let: obvykle do 3.5 µg/L
- Muži 60-69 let: obvykle do 4.5 µg/L
- Muži >70 let: obvykle do 6.5 µg/L
Je důležité používat věkově specifické referenční meze poskytované konkrétní laboratoří.

Příčiny zvýšené hladiny PSA:
1. Karcinom prostaty: PSA je klíčovým markerem, ale ne všechny karcinomy prostaty produkují vysoké hladiny PSA.
2. Benigní hyperplazie prostaty (BHP): Častá příčina zvýšení PSA u starších mužů. Zvětšená prostata produkuje více PSA.
3. Prostatitida (zánět prostaty): Akutní i chronický zánět může vést k výraznému zvýšení PSA.
4. Mechanické podráždění prostaty: Např. po digitálním rektálním vyšetření, cystoskopii, biopsii prostaty, katetrizaci nebo ejakulaci. Doporučuje se odběr krve na PSA před těmito výkony nebo s odstupem.
5. Ischemie nebo infarkt prostaty.

Interpretace a doplňující faktory:
- Rychlost PSA (PSA velocity): Změna hladiny PSA v čase. Rychlý nárůst může být podezřelý i při hodnotách v referenčním rozmezí.
- Poměr volného a celkového PSA (f/t PSA ratio): Užitečné při hodnotách PSA v tzv. "šedé zóně" (např. 4-10 µg/L). Nižší poměr (<0.15 nebo <15%) zvyšuje podezření na karcinom.
- Hustota PSA (PSA density): Hladina PSA vztažená k objemu prostaty.
- Anamnéza pacienta: Rodinná zátěž karcinomem prostaty, symptomy dolních močových cest, předchozí operace prostaty, probíhající léčba.
- Léky: Některé léky (např. inhibitory 5-alfa-reduktázy jako finasterid, dutasterid) mohou snižovat hladinu PSA.

Doporučení:
- Zvýšená hladina PSA by měla být vždy hodnocena urologem.
- Samotná hodnota PSA není diagnostická pro karcinom prostaty. Je nutné komplexní posouzení zahrnující anamnézu, fyzikální vyšetření (včetně digitálního rektálního vyšetření) a případně další zobrazovací metody (např. transrektální ultrasonografie, MRI prostaty) a biopsii prostaty.
- U pacientů s diagnostikovaným karcinomem prostaty se PSA používá k monitorování úspěšnosti léčby a detekci recidivy.
- Screening PSA u asymptomatických mužů je kontroverzní téma a měl by být diskutován individuálně s lékařem s ohledem na potenciální přínosy a rizika.

Kumulativní hodnocení:
Při hodnocení aktuální hodnoty PSA je klíčové srovnání s předchozími hodnotami pacienta (pokud jsou dostupné) pro posouzení trendu. AI systém by měl mít přístup k historickým datům PSA pro daného pacienta, pokud je to možné.
14 changes: 14 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
langchain
langchain-openai
langchain-community
openai
fastapi
uvicorn[standard]
azure-search-documents
azure-identity
python-dotenv
pypdf
requests
tiktoken
# Pro testování PDF generace v document_loader.py, pokud by bylo odkomentováno:
# reportlab
1 change: 1 addition & 0 deletions src/ai_engine/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# src/ai_engine/__init__.py
1 change: 1 addition & 0 deletions src/ai_engine/core/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# src/ai_engine/core/__init__.py
Loading