[db0274]: / experiment / ocr_gemini.ipynb

Download this file

135 lines (134 with data), 3.4 kB

{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C:\\Users\\hoang\\OneDrive\\Desktop\\nghich_prj\\Prescription-Text-Extraction-Pharmacy-Information-Retrieval\n"
     ]
    }
   ],
   "source": [
    "%cd C:\\Users\\hoang\\OneDrive\\Desktop\\nghich_prj\\Prescription-Text-Extraction-Pharmacy-Information-Retrieval"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "import google.generativeai as genai\n",
    "import os\n",
    "from dotenv import load_dotenv\n",
    "from PIL import Image\n",
    "\n",
    "\n",
    "load_dotenv()\n",
    "genai.configure(api_key=os.environ[\"GEMINI_API_KEY\"])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "model = genai.GenerativeModel(\"gemini-1.5-flash\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "PROMPT= \"\"\"\n",
    "Extract information for all medications and instructions listed in the given prescription in the following format:\n",
    "[\n",
    "    {\n",
    "        name: \"medication name\",\n",
    "        \"amount\": \"dosage\",\n",
    "        \"guide\": \"usage instructions, e.g., 1 tablet in the morning\",\n",
    "        \"note\": \"additional instructions\"\n",
    "    }\n",
    "]\n",
    "\n",
    "Just return the desired format.\n",
    "\"\"\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "img = genai.upload_file(path=r\"C:\\Users\\hoang\\OneDrive\\Desktop\\nghich_prj\\Prescription-Text-Extraction-Pharmacy-Information-Retrieval\\assets\\ocr_sample\\bo-y-te-lui-lo-trinh-bat-buoc-benh-vien-hang-3-tro-len-phai-bo-ke-don-thuoc-viet-tay-202424227.jpg\", display_name=\"Prescription\")\n",
    "res = model.generate_content([img, PROMPT])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[\n",
      "  {\n",
      "    \"name\": \"Bitex beules\",\n",
      "    \"amount\": \"800mg\",\n",
      "    \"guide\": \"4 viên/ ngày\",\n",
      "    \"note\": \"sáng 2 viên, tối 2 viên\"\n",
      "  },\n",
      "  {\n",
      "    \"name\": \"Keralian\",\n",
      "    \"amount\": \"600\",\n",
      "    \"guide\": \"4 viên/ ngày\",\n",
      "    \"note\": \"sáng 2 viên, tối 2 viên\"\n",
      "  },\n",
      "  {\n",
      "    \"name\": \"Debelecol\",\n",
      "    \"amount\": \"600mg\",\n",
      "    \"guide\": \"15 ml\",\n",
      "    \"note\": \"trước bữa sáng\"\n",
      "  }\n",
      "]\n"
     ]
    }
   ],
   "source": [
    "print(res.text)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}