AI助力 三步實現電子發票發票號碼的提取

小伙伴們,大家好今天我們來利用ollama本地大模型,三步實現電子發票發票號碼的提取。? ? ? ? ??

步驟1:安裝Ollama

????訪問官網https://ollama.com/?下載相應的版本進行安裝,下載屬于自己平臺的ollama,根據安裝向導完成安裝。

Image

步驟2:安裝Llama 3.2-Vision模型

通過在終端運行以下命令

安裝Llama 3.2-Vision模型

ollama run llama3.2-vision

步驟3:利用python調用ollma llama3.2-vision 大模型獲取對應電子發票的發票號碼

? ? ? ? ??

1)添加提示詞:?? ?

Image

2)調用llama3.2-vision 大模型

Image

3)最終結果:查看了下,獲取的信息還是比較準確的。? ? ? ? ??

Image

Image

? ? ? ? ? ??

全部代碼展示:????

import?base64 ? ? ? ? ?
import?requests ? ? ? ? ?
import?json ? ? ? ? ?
import?streamingjson ? ? ? ? ?

SYSTEM_PROMPT =?"""作為OCR助手。分析提供的圖像并:? ? ? ? ?
1. 盡可能準確地識別圖像中所有可識別的文本。? ? ? ? ?
2.?盡可能保持文本的原始結構和格式。? ? ? ??
3. 請主要識別發票號碼后面的數字,并重點標識出來 ? ? ? ? ?
僅提供轉錄,不要有任何額外的評論。""" ? ? ? ? ?
def?encode_image_to_base64(image_path): ? ? ? ? ?
with?open(image_path,?"rb")?as?image_file: ? ? ? ? ?
return?base64.b64encode(image_file.read()).decode('utf-8') ? ? ? ? ?
def?perform_ocr(image_path): ? ? ? ? ?
base64_image = encode_image_to_base64(image_path) ? ? ? ? ?
response = requests.post( ? ? ? ? ?
"http://10.10.10.56:11434/api/chat",??# 確保此URL與你的Ollama服務端點匹配 ? ? ? ? ?
json={ ? ? ? ? ?
"model":?"llama3.2-vision", ? ? ? ? ?
"messages": [ ? ? ? ? ?
{ ? ? ? ? ?
"role":?"user", ? ? ? ? ?
"content": SYSTEM_PROMPT, ? ? ? ? ?
"images": [base64_image], ? ? ? ? ?
}, ? ? ? ? ?
], ? ? ? ? ?
} ? ? ? ? ?
) ? ? ? ? ?
if?response.status_code ==?200: ? ? ? ? ?
data_string = response.text ? ? ? ? ?
json_segment_a = data_string??? ? ??
lexer = streamingjson.Lexer() ? ? ? ? ?
lexer.append_string(json_segment_a) ? ? ? ? ?
completed_json = lexer.complete_json() ? ? ? ? ?
return?completed_json ? ? ? ? ?
else: ? ? ? ? ?
print("錯誤:",?response.status_code,?response.text) ? ? ? ? ?
return None ? ? ? ? ?
if?__name__ ==?"__main__": ? ? ? ? ?
image_path =?"發票.png"??# 替換為你的圖像路徑 ? ? ? ? ?
result = perform_ocr(image_path) ? ? ? ? ?? ??
with?open('result.txt',?'w')?as?file: ? ? ? ? ?
file.write(result) ? ? ? ? ?
ls=[] ? ? ? ? ?
with?open('result.txt',?'r')?as?file: ? ? ? ? ?
while True: ? ? ? ? ?
content = file.readline() ? ? ? ? ?
if not?content: ? ? ? ? ?
break ? ? ? ? ?
content_json=json.loads(content) ? ? ? ? ?
ls.append(content_json.get("message",?{}).get("content",?"")) ? ? ? ? ?
my_string =?' '.join(ls) ? ? ? ? ?
print(my_string)?? ?

感謝大家的支持,希望得到大家的關注與點贊,我們下期見。? ??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90360.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90360.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90360.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

告別下載中斷:深入解析Tomcat JSP中的“遠程主機強迫關閉連接”與“軟件中止連接”

在Web開發中,提供文件下載功能是一項常見需求。然而,當用戶在Tomcat JSP項目中嘗試下載文件時,有時會遭遇令人頭疼的錯誤提示:“遠程主機強迫關閉了一個現有鏈接”(Remote host closed connection unexpectedly)或“您的主機中的軟件中止了一個已建立的連接”(Software …

實戰演練—基于Transformers的NLP解決方案總結

實戰演練—基于Transformers的NLP解決方案總結 截至目前講解的基礎組件 以文本分類為例 Transformers顯存優化 截至目前講解的基礎組件 Pipeline 流水線,用于模型推理,封裝了完整的推理邏輯,包括數據預處理、模型預測及后處理 Tokenizer 分詞器,用于數據預處理,將原始文本…

Java 解析前端上傳 ZIP 壓縮包內 Excel 文件的完整實現方案

使用zip壓縮包上傳excel文件的優點1、體積更小,節約帶寬2、比excel直接讀取更方便攜帶參數及修改3、可以一次性批量導入Java代碼 ControllerPostMapping("/importData")ApiOperationSupport(order 3)ApiOperation(value "上傳")public R impo…

【shell腳本編程】day1 備份指定文件類型

文章目錄1、腳本要求2、腳本編寫3、腳本解釋4、腳本改進1、腳本要求 編寫一個腳本,遍歷/data/目錄下的.txt文件將這些txt文件做一個備份備份的文件名增加一個年月日的后綴,比如將aming.txt備份為aming.txt_20231001 2、腳本編寫 [rootlocalhost shell…

Gata 攜手 Walrus 構建 AI 的開放執行基礎設施

致力于開發去中心化大模型推理、訓練和數據技術的 Gata,現已整合 Walrus,作為其 AI 開放執行基礎設施的核心組件。Walrus 將為 Gata 的首款產品 DataAgent 提供關鍵的數據層,助力其全套應用,將去中心化 AI 的優勢直接帶給用戶&…

DNS及DNS域名解析流程

文章目錄什么是DNS域名解析DNS服務器DNS域名解析流程什么是DNS域名解析 我們首先要了解域名和IP地址的區別。IP地址是互聯網上計算機唯一的邏輯地址,通過IP地址實現不同計算機之間的相互通信,每臺聯網計算機都需要通過IP地址來互相聯系和分別。 但由于I…

用 STM32 的 SYSTICK 定時器與端口復用重映射玩轉嵌入式開發

目錄 1. SYSTICK 定時器的基本功:時間管理大師 1.1 SYSTICK 的核心寄存器與工作原理 1.2 配置 SYSTICK 的正確姿勢 1.3 實戰:用 SYSTICK 實現精準延時 1.4 小技巧:SYSTICK 的低功耗優化 2. SYSTICK 中斷:讓你的程序“活”起來 2.1 配置 SYSTICK 中斷 2.2 實戰:用 S…

Sa-Token:輕量級Java權限認證框架使用指南

一、Sa-Token簡介 Sa-Token 是一個專注于權限認證的輕量級 Java 框架,旨在簡化登錄認證、權限控制等功能的實現。其核心功能包括: 登錄認證:通過 Token 機制管理用戶會話,支持單點登錄(SSO)。權限認證&am…

動態 vs 靜態住宅代理,哪種更適合廣告投手?

在廣告投放行業,無論你是跑Facebook、Google Ads,還是做TikTok、原生廣告,代理IP幾乎是繞不開的話題。而選擇動態住宅代理還是靜態住宅代理,對廣告賬戶的穩定性、投放質量甚至生命周期都有直接影響。本篇文章將結合IPFoxy代理&…

命題是一種清晰、確定的表達。通過學習命題,來幫助你更清晰地表達自己的思想。

文章目錄 引言 I 命題的特點 可以判斷真偽 同一性 II 有效溝通的小技巧 多用陳述句,少用感嘆句和疑問句。 在表述意思時,多用名詞,少用代詞;多用具體的名詞,少用抽象的名詞,避免造成不必要的歧義。 正確找托詞 引言 要進行有效的邏輯推理,第一步是把我們的想法,我們要…

IPV6地址與IPV4有什么區別?

作為互聯網協議的迭代版本,IPV6(Internet Protocol Version 6)與IPV4(Internet Protocol Version 4)在設計理念和功能特性上存在顯著差異。本文將簡要解析兩者的核心區別,幫助讀者理解IPV6的優勢與必要性。…

python 什么時候應該用函數式編程,什么時候應該用面向對象?

在 Python 這個多范式語言中,選擇使用函數式編程(Functional Programming, FP)還是面向對象編程(OOP)并非一個非黑即白的選擇,而更像是在一個工具箱中為特定的任務挑選最合適的工具。 我們可以用一個比喻來…

【設計模式】迭代器模式 (游標(Cursor)模式)

迭代器模式(Iterator Pattern)詳解一、迭代器模式簡介 迭代器模式(Iterator Pattern) 是一種 行為型設計模式(對象行為型模式),它提供了一種方法來順序訪問一個聚合對象中的各個元素&#xff0c…

docker安裝 Elasticsearch、Kibana、IK 分詞器

Elasticsearch 1.拉去鏡像 docker pull elasticsearch:8.12.2 docker pull kibana:8.12.22.創建掛載目錄 mkdir /root/elasticsearch3.不掛載啟動 docker run -d \ --restartalways \ --name fusion_elasticsearch \ --network fusion_network \ -p 9200:9200 \ -p …

Java面試寶典:Spring專題二

一、介紹下Spring中的事務 1.Spring事務的本質與價值 Spring事務本質是基于AOP的聲明式事務封裝,通過代理機制在目標方法前后注入事務管理邏輯(開啟、提交/回滾)。其核心價值在于: 業務解耦:將事務控制從業務代碼剝離,通過配置或注解管理(如@Transactional)。 統一抽…

DGMR壓縮技術:讓大規模視覺Transformer模型體積減半而性能不減

Transformer架構展現出卓越的擴展特性,其性能隨模型容量增長而持續提升。大規模模型在獲得優異性能的同時,也帶來了顯著的計算和存儲開銷。深入分析主流Transformer架構發現,多層感知器(MLP)模塊占據了模型參數的主要部…

JavaWeb學習打卡14(JSP內置對象及作用域)

JSP 中9 大內置對象PageContext // 用來存東西Request // 用來存東西ResponseSession // 用來存東西Application (ServletContext) // 用來存東西config (ServletConfig)outpage…

濤思數據參與起草中國工業互聯網研究院《工業數據庫規范》全系列標準

最近,《工業數據庫規范》系列團體標準正式發布。該標準由中國工業互聯網研究院牽頭,中國移動通信聯合會發布,共分為三部分—— 第1部分:云數據庫第2部分:實時數據庫第3部分:時序數據庫 濤思數據作為三項標…

使用exceljs導出luckysheet表格 純前端 支持離線使用

一.技術 exceljs,luckysheet 二.實現 參考網上博文exceljs對導出lucksheet表格的實現,發現存在一些問題并給予修復: 1.字體顏色、字號,加粗等適配的問題. 2.單元格對齊方式不生效; 3.單元格邊框無法繪制; 4.單元格邊框顏色及線型錯亂; 5.單元格列…

從0到1學習c++ 命名空間

也是好久沒寫博客了,主播這半年一直在忙別的領域,在磁力驅動領域干了一年,最好發現自己對這個領域并不是很感興趣,做這個領域多半都是為了發文章,現在閑下來了,主播終于也是過上好日子了,主播又…