Scanner de cartes de visite
Ce guide montre comment utiliser la vision et les variables d’image pour scanner les informations des cartes de visite dans un format structuré.
Modèle de vision
Section intitulée « Modèle de vision »Vous aurez besoin d’un accès à un déploiement du modèle de vision d’OpenAI. Dans cet exemple, il est identifié par gpt-4o
.
Réglez également le maxTokens
à 4000 pour vous assurer que le modèle peut traiter l’intégralité de la carte de visite.
script({ ... model: "openai:gpt-4o", maxTokens: 4000,})
defImage
Section intitulée « defImage »La fonction defImage peut être utilisée pour entrer plusieurs fichiers dans le script.
Les fichiers non-image seront automatiquement ignorés, vous pouvez donc généralement passer env.files directement à defImages
.
defImages(env.files)
Production de CSV
Section intitulée « Production de CSV »Dans son ensemble, le script ressemble à ceci :
script({ description: "Given an image of business card, extract the details to a csv file", group: "vision", model: "vision", maxTokens: 4000,})defImages(env.files)
const outputName = path.join(path.dirname(env.files[0].filename), "card.csv")
$`You are a helpful assistant. You are given an image of a businesscard. Extract the following information in ${outputName}:
Name, Address, Phone, Email, Company, Title, Website, Category of Business
If you can't infer the category, mark it as "Unknown"`
Utilisation d’un schéma
Section intitulée « Utilisation d’un schéma »Nous pouvons ajouter une validation du format des données en ajoutant un schéma pour les lignes de données d’entreprise.
const schema = defSchema("EXPENSE", { type: "array", items: { type: "object", properties: { Date: { type: "string" }, Location: { type: "string" }, Total: { type: "number" }, Tax: { type: "number" }, Item: { type: "string" }, ExpenseCategory: { type: "string" }, Quantity: { type: "number" }, }, required: ["Date", "Location", "Total", "Tax", "Item", "Quantity"], },})
Et le script ci-dessus est adapté pour utiliser le schéma au lieu de la description CSV.
script({ description: "Given an image of a receipt, extract a csv of the receipt data", group: "vision", model: "vision", maxTokens: 4000,})defImages(env.files)const schema = defSchema("EXPENSE", { type: "array", items: { type: "object", properties: { Date: { type: "string" }, Location: { type: "string" }, Total: { type: "number" }, Tax: { type: "number" }, Item: { type: "string" }, ExpenseCategory: { type: "string" }, Quantity: { type: "number" }, }, required: ["Date", "Location", "Total", "Tax", "Item", "Quantity"], },})
const outputName = path.join(path.dirname(env.files[0].filename), "items.csv")
$`You are a helpful assistant that is an expert in filing expense reports.You have information from a receipt in RECEIPT and you need to put the datain ${outputName} using the ${schema} schema.`