مقدمه
API AvalAI قابلیتهای قدرتمندی برای پردازش صفحات گسترده فایلهای اکسل (فایلهای XLS و XLSX) با استفاده از مدلهای زبانی پیشرفته ارائه میدهد. این راهنما نشان میدهد چگونه میتوانید از مدلهای OpenAI، Anthropic (Claude) و Gemini از طریق API سازگار AvalAI برای تحلیل، استخراج اطلاعات و تعامل با دادههای صفحات گسترده استفاده کنید. این قابلیتها به برنامهها امکان میدهد تا دادههای جدولی را درک و با آنها کار کنند، که آنها را برای تحلیل دادهها، استخراج اطلاعات و جریانهای کاری خودکار پردازش داده ایدهآل میسازد. این مقاله برداشتی از صفحه مستندات پلتفرم هوش مصنوعی AvalAI است.
ویژگیهای کلیدی
- درک دادههای جدولی – پردازش دادههای ساختاریافته در فرمتهای صفحات گسترده
- تحلیل نمودار و جدول – استخراج و تفسیر دادهها از جداول و نمودارها
- خلاصهسازی دادهها – تولید خلاصههای مختصر از محتوای صفحات گسترده
- استخراج اطلاعات – استخراج اطلاعات خاص از صفحات گسترده به فرمتهای ساختاریافته
- پاسخ به سؤالات – پرسیدن سؤالات درباره دادههای صفحات گسترده و دریافت پاسخهای دقیق
- تبدیل دادهها – تبدیل و دستکاری دادههای صفحات گسترده
- دسترسی یکپارچه به API – دسترسی به چندین ارائهدهنده مدل از طریق یک رابط سازگار
مدلهای موجود
مدل های زیر از پردازش فایلهای اکسل/صفحات گسترده از طریق API AvalAI پشتیبانی میکنند:
مدلهای OpenAI
- gpt-4o – مدل پیشرفته با قابلیتهای قوی درک دادهها
- gpt-4.1 مدل قدرتمند با قابلیتهای عالی تحلیل دادهها
- gpt-4o-mini – مدل کارآمدتر برای پردازش دادهها
Anthropic (Claude)
- anthropic.claude-3-5-sonnet-20240620-v1:0 – مدل پیشرفته با قابلیتهای قوی درک دادهها
- anthropic.claude-3-5-sonnet-20241022-v2:0 – جدیدترین نسخه با پردازش دادههای بهبود یافته
- anthropic.claude-3-5-haiku-20241022-v1:0 – مدل کارآمدتر برای پردازش دادهها
- anthropic.claude-3-7-sonnet-20250219-v1:0 – پیشرفتهترین مدل Claude با درک برتر دادهها
مدلهای Gemini
- gemini-1.5-pro – مدل قدرتمند برای پردازش دادهها با زمینه ۱ میلیون توکن
- gemini-1.5-flash – مدل کارآمد برای پردازش سریعتر دادهها
- gemini-2.0-pro – مدل پیشرفته با درک بهبود یافته دادهها
- gemini-2.0-flash – جدیدترین مدل کارآمد برای پردازش دادهها
- gemini-2.5-pro – پیشرفتهترین مدل با درک بهبود یافته دادهها
- gemini-2.5-flash – کارآمدترین مدل برای پردازش دادهها
استفاده پایه
دو رویکرد اصلی برای پردازش فایلهای اکسل با API AvalAI وجود دارد:
- رویکرد گردش کار ساده: تبدیل دادههای اکسل به متن و ارسال آن به مدل
- رویکرد عامل CSV Langchain: استفاده از عاملهای تخصصی برای تحلیل پیشرفتهتر دادهها
رویکرد گردش کار ساده
این رویکرد برای فایلهای کوچکتر که میتوانند در پنجره زمینه مدل قرار گیرند، بهترین است. شامل تبدیل فایل اکسل به یک نمایش متنی و ارسال آن به مدل میشود.
پردازش اکسل با کدگذاری base64
میتوانید فایلهای اکسل را مستقیماً به صورت base64 کدگذاری کرده و به API ارسال کنید:
راهنمای جامع برای توسعهدهندگان: این نمونه کدها تنها مقدمهای بر قابلیتهای API AvalAI در پردازش اسناد اکسل هستند. برای مشاهده نمونه کدهای تکمیلی در زبانهای برنامهنویسی دیگر نظیر Go، PHP و .NET، آشنایی با پارامترهای پیشرفته API، و بررسی تمام امکانات اتوماسیون پردازش اسناد با هوش مصنوعی، به مستندات رسمی و جامع ما در docs.avalai.ir مراجعه فرمایید.
مثال پایتون (Python)
مثال جاوااسکریپت (Javascript)
import { OpenAI } from "openai";
import fs from "fs";
// مقداردهی اولیه کلاینت با API AvalAI
const client = new OpenAI({
apiKey: process.env.AVALAI_API_KEY,
baseURL: "https://api.avalai.ir/v1",
});
// تابع دریافت فایل اکسل کدگذاری شده با base64
async function getBase64Excel() {
// از یک فایل محلی
const buffer = fs.readFileSync("path/to/your/spreadsheet.xlsx");
return `data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,${buffer.toString("base64")}`;
}
// تابع اصلی
async function processExcel() {
const base64Excel = await getBase64Excel();
// ایجاد درخواست با فایل کدگذاری شده با base64
const fileContent = [
{
type: "text",
text: "این صفحه گسترده را تحلیل کرده و بینشهای کلیدی ارائه دهید.",
},
{
type: "file",
file: {
file_data: base64Excel,
},
},
];
// ارسال درخواست به مدل
const response = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: fileContent }],
});
console.log(response.choices[0].message.content);
}
processExcel();
تبدیل DataFrame
برای کنترل بیشتر روی دادهها، میتوانید فایلهای اکسل را به یک DataFrame پانداس و سپس به یک نمایش متنی تبدیل کنید:
مثال پایتون (Python)
import { OpenAI } from "openai";
import * as XLSX from "xlsx";
// مقداردهی اولیه کلاینت با API AvalAI
const client = new OpenAI({
apiKey: process.env.AVALAI_API_KEY,
baseURL: "https://api.avalai.ir/v1",
});
// تابع تبدیل اکسل به نمایش متنی
function excelToText(filePath) {
// خواندن فایل اکسل
const workbook = XLSX.readFile(filePath);
// دریافت اولین کاربرگ
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
// تبدیل به JSON
const jsonData = XLSX.utils.sheet_to_json(worksheet);
// تبدیل به نمایش رشتهای
const headers = Object.keys(jsonData[0]);
let textRepresentation = headers.join("\t") + "\n";
jsonData.forEach((row) => {
textRepresentation +=
headers.map((header) => row[header]).join("\t") + "\n";
});
return textRepresentation;
}
async function analyzeExcel() {
// دریافت نمایش متنی فایل اکسل
const excelText = excelToText("path/to/your/spreadsheet.xlsx");
// ایجاد پرامپت با دادههای اکسل
const prompt = `
من دادههای صفحه گسترده زیر را دارم:
${excelText}
لطفاً این دادهها را تحلیل کرده و بینشهای کلیدی ارائه دهید.
`;
// ارسال درخواست به مدل
const response = await client.chat.completions.create({
model: "anthropic.claude-3-5-sonnet-20240620-v1:0",
messages: [{ role: "user", content: prompt }],
});
console.log(response.choices[0].message.content);
}
analyzeExcel();
رویکرد عامل CSV Langchain
برای تحلیل پیشرفتهتر، بهویژه با فایلهای بزرگتر، میتوانید از عامل CSV Langchain استفاده کنید. این رویکرد قابلیتهای تحلیل داده پیشرفتهتری را با اجازه دادن به مدل برای اجرای کد پایتون برای تحلیل دادهها فراهم میکند.
ایجاد عامل CSV
مثال پایتون (Python)
// پیادهسازی جاوااسکریپت با استفاده از LangChain.js
import { ChatOpenAI } from "@langchain/openai";
import { createCSVAgent } from "langchain/agents";
import dotenv from "dotenv";
// بارگذاری متغیرهای محیطی
dotenv.config();
// تنظیم کلید API شما
process.env.OPENAI_API_KEY = "your-avalai-api-key";
process.env.OPENAI_BASE_URL = "https://api.avalai.ir/v1";
// مقداردهی اولیه مدل زبانی
const llm = new ChatOpenAI({
modelName: "gpt-4o",
temperature: 0,
});
async function runCSVAgent() {
// ایجاد عامل CSV
const agentExecutor = await createCSVAgent({
llm,
path: "path/to/your/spreadsheet.xlsx", // با هر دو فایل CSV و اکسل کار میکند
agentType: "openai-tools",
verbose: true,
});
// پرسیدن سؤالات درباره دادهها
const response1 = await agentExecutor.invoke({
input: "۵ مقدار برتر در ستون فروش چیست؟",
});
console.log(response1.output);
// پرسیدن سؤال دیگر
const response2 = await agentExecutor.invoke({
input: "میانگین مقدار برای هر دسته را محاسبه کرده و خلاصهای ایجاد کنید.",
});
console.log(response2.output);
}
runCSVAgent();
ایجاد عامل DataFrame پانداس
برای تحلیل دادههای حتی پیشرفتهتر، میتوانید از عامل DataFrame پانداس استفاده کنید:
مثال پایتون (Python)
// پیادهسازی جاوااسکریپت با استفاده از LangChain.js
import { ChatOpenAI } from "@langchain/openai";
import { createPandasDataFrameAgent } from "langchain/agents";
import { readFile } from "fs/promises";
import * as XLSX from "xlsx";
import dotenv from "dotenv";
// بارگذاری متغیرهای محیطی
dotenv.config();
// تنظیم کلید API شما
process.env.OPENAI_API_KEY = "your-avalai-api-key";
process.env.OPENAI_BASE_URL = "https://api.avalai.ir/v1";
async function loadExcelAsDataFrame(filePath) {
// این یک نسخه ساده شده است - در یک پیادهسازی واقعی،
// شما باید دادههای اکسل را به فرمتی تبدیل کنید
// که عامل DataFrame بتواند با آن کار کند
const workbook = XLSX.readFile(filePath);
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const jsonData = XLSX.utils.sheet_to_json(worksheet);
return jsonData;
}
async function runPandasAgent() {
// بارگذاری فایل اکسل
const df = await loadExcelAsDataFrame("path/to/your/spreadsheet.xlsx");
// مقداردهی اولیه مدل زبانی
const llm = new ChatOpenAI({
modelName: "gpt-4o",
temperature: 0,
});
// ایجاد عامل DataFrame پانداس
const agentExecutor = await createPandasDataFrameAgent({
llm,
df,
agentType: "tool-calling",
verbose: true,
});
// پرسیدن سؤالات تحلیل داده پیچیده
const response1 = await agentExecutor.invoke({
input:
"خلاصهای از دادهها، شامل آمارهای کلیدی و هرگونه روند قابل توجه ایجاد کنید.",
});
console.log(response1.output);
// درخواست کد نمایش داده
const response2 = await agentExecutor.invoke({
input:
"کدی برای ایجاد نمودار میلهای از ۵ دسته برتر بر اساس درآمد تولید کنید.",
});
console.log(response2.output);
}
runPandasAgent();
استفاده از ارائهدهندگان مدل مختلف
میتوانید از هر یک از مدلهای پشتیبانی شده با تغییر پارامتر مدل در درخواستهای خود استفاده کنید:
مثال OpenAI
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
)
Anthropic (Claude)
response = client.chat.completions.create(
model="anthropic.claude-3-5-sonnet-20240620-v1:0",
messages=[{"role": "user", "content": prompt}],
)
مثال Gemini
response = client.chat.completions.create(
model="gemini-1.5-pro",
messages=[{"role": "user", "content": prompt}],
)
محدودیتهای خاص مدلها
مدلهای OpenAI
- حداکثر اندازه فایل: ۲۵ مگابایت در هر درخواست
- مصرف توکن: بسته به مدل متفاوت است، معمولاً ۱-۳ توکن به ازای هر سلول
- عناصر تصویری: میتواند نمودارها و عناصر تصویری در صفحات گسترده را تحلیل کند
- بهترین کاربرد برای: تحلیل داده عمومی، تشخیص الگو و خلاصهسازی
Anthropic (Claude)
- حداکثر اندازه فایل: ۳۲ مگابایت در هر درخواست
- مصرف توکن: معمولاً ۱-۲ توکن به ازای هر سلول بسته به محتوا
- عناصر تصویری: میتواند نمودارها و جداول در صفحات گسترده را تحلیل کند
- بهترین کاربرد برای: تحلیل داده دقیق، وظایف پیچیده درک سند
مدلهای Gemini
- حداکثر اندازه فایل: ۲۰ مگابایت برای آپلودهای مستقیم
- مصرف توکن: تقریباً ۱ توکن به ازای هر سلول
- عناصر تصویری: قابلیتهای قوی برای تحلیل محتوای تصویری در صفحات گسترده
- بهترین کاربرد برای: پردازش صفحات گسترده بزرگ، تحلیل محتوای تصویری
موارد استفاده
تحلیل داده
مثال پایتون (Python)
import { OpenAI } from "openai";
import * as XLSX from "xlsx";
const client = new OpenAI({
apiKey: process.env.AVALAI_API_KEY,
baseURL: "https://api.avalai.ir/v1",
});
// تابع تبدیل اکسل به نمایش متنی
function excelToText(filePath) {
const workbook = XLSX.readFile(filePath);
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const jsonData = XLSX.utils.sheet_to_json(worksheet);
// تبدیل به نمایش رشتهای
const headers = Object.keys(jsonData[0]);
let textRepresentation = headers.join("\t") + "\n";
jsonData.forEach((row) => {
textRepresentation +=
headers.map((header) => row[header]).join("\t") + "\n";
});
return textRepresentation;
}
async function analyzeSalesData() {
const excelText = excelToText("sales_data.xlsx");
const prompt = `
من دادههای فروش زیر را دارم:
${excelText}
لطفاً این دادهها را تحلیل کرده و موارد زیر را ارائه دهید:
1. روندهای فروش ماهانه
2. محصولات با عملکرد برتر
3. مناطق با بیشترین رشد
4. هرگونه ناهنجاری یا داده پرت
`;
const response = await client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: prompt }],
});
console.log(response.choices[0].message.content);
}
analyzeSalesData();
خلاصهسازی دادهها
مثال پایتون (Python)
import { OpenAI } from "openai";
import * as XLSX from "xlsx";
const client = new OpenAI({
apiKey: process.env.AVALAI_API_KEY,
baseURL: "https://api.avalai.ir/v1",
});
// تابع تبدیل اکسل به نمایش متنی
function excelToText(filePath) {
const workbook = XLSX.readFile(filePath);
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
const jsonData = XLSX.utils.sheet_to_json(worksheet);
// تبدیل به نمایش رشتهای
const headers = Object.keys(jsonData[0]);
let textRepresentation = headers.join("\t") + "\n";
jsonData.forEach((row) => {
textRepresentation +=
headers.map((header) => row[header]).join("\t") + "\n";
});
return textRepresentation;
}
async function summarizeFinancialReport() {
const excelText = excelToText("financial_report.xlsx");
const prompt = `
من دادههای مالی زیر را دارم:
${excelText}
لطفاً یک خلاصه اجرایی مختصر از این گزارش مالی ارائه دهید که موارد زیر را برجسته کند:
1. سلامت مالی کلی
2. معیارهای کلیدی و عملکرد آنها
3. حوزههای نگرانی
4. توصیههایی برای بهبود
`;
const response = await client.chat.completions.create({
model: "anthropic.claude-3-5-sonnet-20240620-v1:0",
messages: [{ role: "user", content: prompt }],
});
console.log(response.choices[0].message.content);
}
summarizeFinancialReport();
پاسخ به سؤالات
مثال پایتون (Python)
// پیادهسازی جاوااسکریپت با استفاده از LangChain.js
import { ChatOpenAI } from "@langchain/openai";
import { createCSVAgent } from "langchain/agents";
import dotenv from "dotenv";
// بارگذاری متغیرهای محیطی
dotenv.config();
// تنظیم کلید API شما
process.env.OPENAI_API_KEY = "your-avalai-api-key";
process.env.OPENAI_BASE_URL = "https://api.avalai.ir/v1";
async function askInventoryQuestions() {
// مقداردهی اولیه مدل زبانی
const llm = new ChatOpenAI({
modelName: "gemini-1.5-pro",
temperature: 0,
});
// ایجاد عامل CSV
const agentExecutor = await createCSVAgent({
llm,
path: "inventory_data.xlsx",
agentType: "openai-tools",
verbose: true,
});
// پرسیدن سؤالات خاص درباره موجودی
const questions = [
"چند واحد از محصول XYZ در حال حاضر در انبار موجود است؟",
"کدام انبار کمترین سطح موجودی را دارد؟",
"ارزش کل همه موجودی چقدر است؟",
"کدام محصولات به زودی نیاز به تجدید موجودی دارند (کمتر از ۱۰ واحد باقی مانده)؟",
"سطوح موجودی بین سهماهه اول و دوم را مقایسه کنید.",
];
for (const question of questions) {
const response = await agentExecutor.invoke({ input: question });
console.log(`سؤال: ${question}`);
console.log(`پاسخ: ${response.output}`);
console.log("---");
}
}
askInventoryQuestions();
بهترین شیوهها
هنگام کار با فایلهای اکسل و مدلهای زبانی بزرگ، این بهترین شیوهها را در نظر بگیرید:
- آمادهسازی دادهها
- دادههای خود را قبل از پردازش تمیز کنید (مقادیر گمشده را مدیریت کنید، مشکلات قالببندی را برطرف کنید)
- حذف ستونهای غیرضروری برای کاهش مصرف توکن را در نظر بگیرید
- برای فایلهای بزرگ، روی بخشهای مرتبطتر تمرکز کنید
- تقسیمبندی فایلهای بزرگ
- برای صفحات گستردهای که از محدودیتهای زمینه مدل فراتر میروند، آنها را به بخشهای منطقی تقسیم کنید
- در صورت کار با کتابهای کاری چند صفحهای، هر صفحه را جداگانه پردازش کنید
- تجمیع دادهها قبل از ارسال به مدل را در نظر بگیرید
- مهندسی پرامپت
- درباره تحلیلی که از دادهها میخواهید، دقیق باشید
- اگر نامهای ستونها مبهم هستند، توضیحات ستون را اضافه کنید
- فرمت خروجی مورد نظر خود را مشخص کنید (نکات گلولهای، جداول و غیره)
- انتخاب مدل
- از مدلهای OpenAI برای تحلیل داده عمومی و تشخیص الگو استفاده کنید
- از مدلهای Claude برای تحلیل دقیق دادههای پیچیده استفاده کنید
- از مدلهای Gemini برای صفحات گسترده با عناصر تصویری مانند نمودارها استفاده کنید
- انتخاب رویکرد
- از رویکرد گردش کار ساده برای تحلیل سریع مجموعه دادههای کوچکتر استفاده کنید.
- از عامل CSV Langchain برای تحلیل پیچیدهتر نیازمند محاسبات استفاده کنید.
- ترکیب رویکردها برای بهترین نتایج را در نظر بگیرید.
برگرفته از صفحه مستندات پلتفرم هوش مصنوعی AvalAI