دستکاری متن با استفاده از OpenAI
موسسه پایاپروژه به عنوان متصدی پروژه های پایتون وظیفه ی خود می داند که در راستای آموزش نرم افزار پایتون گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی پایتون مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.

Open AI یک سازمان پیشرو در زمینه هوش مصنوعی و یادگیری ماشین است، آنها به توسعه دهندگان نوآوری های پیشرفته مانند ChatGPT، WhisperAI، DALL-E و بسیاری دیگر را برای کار بر روی داده های بدون ساختار گسترده در دسترس ارائه کرده اند.
برای دستکاری متن، OpenAI یک مدل Completions گردآوری کرده است که به شما کمک می کند داده های متنی جدید تولید کنید، ماسک ها را در رشته ها پر کنید، مکالمات را حمل کنید، ترجمه کنید و خلاصه کنید.
ماژول تکمیل از قدرت GPT-3 برای انجام این وظایف و ارائه نتایج شگفت انگیز استفاده می کند. در مقاله امروز، این ماژول Completions را مرور خواهیم کرد و خواهیم دید که چگونه می توان از آن در پایتون استفاده کرد.
مراحل انجام دستکاری متن با استفاده از OpenAI در پروژه پایتون
اکنون بیایید بررسی کنیم که چگونه می توان در انجام پروژه پایتون از GPT-3 برای دستکاری داده های متنی استفاده کرد.
1. باز کردن Openai
کتابخانه Openai را در محیط پایتون خود نصب کنید
!pip install openai
2. وارد کردن کتابخانه openai و کلید API
در پروژه پایتون خود کتابخانه openai را وارد کنید و کلید API را به محیط openai اختصاص دهید
import the library#
import openai
assign the API key to the environment by replacing#
API_KEY with your generated key#
“openai.api_key = “API_KEY
اگر کلید API ندارید، پس از ایجاد حساب OpenAI خود وارد شوید. پس از ورود به سیستم، از منوی بالا سمت راست گزینه Personal را انتخاب کنید و سپس View API keysرا انتخاب کنید.
صفحه ای حاوی کلیدهای API نمایش داده می شود و دکمه Create new secret key قابل مشاهده است. وقتی روی آن کلیک میکنید، آن را کپی کرده و در جای دیگری ذخیره میکنید، زیرا در این مراحل از پروژه پایتون به آن نیاز خواهید داشت.
3. تعریف یک تابع دستکاری متن در پروژه پایتون
یک تابع برای انجام دستکاری متن با استفاده از OpenAI API در پایتون تعریف کنید
function that takes in string argument as parameter#
:def comp(PROMPT, MaxToken=50, outputs=3)
using OpenAI’s Completion module that helps perform#
text manipulations#
( response = openai.Completion.create
model name used here is text-davinci-003 #
# there are many other models available under the #
umbrella of GPT-3 #
,” model=”text-davinci-003
passing the user input #
, prompt=PROMPT
generated output can have “max_tokens” number of tokens #
,max_tokens=MaxToken
number of outputs generated in one call#
n=outputs
(
creating a list to store all the outputs#
() output = list
:for k in response[‘choices’]
output.append(k[‘text’].strip())
return output
در اینجا، ما از ماژول Completions از کتابخانه OpenAI استفاده کردهایم و متنی را برای درخواست کاربر ایجاد میکنیم. در اینجا پارامترهای مهم مربوط به ماژول Completions در پروژه پایتون آمده است:
Model [لازم]: شناسه مدل مورد استفاده می تواند با استفاده از دستور زیر openai.Model.list().data که در آن مقدارid نشان دهنده نام مدلی است، که پیدا می کند. ما باید یک مدل مناسب را با توجه به استفاده خود انتخاب کنیم.
:prompt اعلان (های) برای ایجاد تکمیل برای، کدگذاری شده به صورت رشته، آرایه رشته ها، آرایه نشانه ها یا آرایه آرایه های نشانه توجه داشته باشید که <| endoftext |> جداکننده سندی است که مدل در طول آموزش مشاهده میکند، بنابراین اگر یک اعلان مشخص نشده باشد، مدل مانند از ابتدای یک سند جدید تولید میکند.
:max_tokens حداکثر تعداد توکن هایی که در تکمیل تولید می شوند. مقدار پیش فرض 16 است.
temperature: محدوده درجه نمونه برداری بین 0 تا 2 است. مقادیر بالاتر مانند 0.8 خروجی را تصادفی تر می کند، در حالی که مقادیر پایین تر مانند 0.2 آن را متمرکزتر و قطعی تر می کند.
n: تعداد تکمیلهایی است که برای هر درخواست ایجاد میشود.
مثال برای دستکاری متن
اکنون بیایید برخی از دستورات را با ماژول تکمیل امتحان کنیم و نتایج آنها را ببینیم.
درخواست 1: تولید متن
.p = “””Tell me whether the tweet is positive, neutral, or negative
! Tweet: I don’t like tomato
“‘”:Sentiment
comp(p, outputs=1)
خروجی:
[‘Negative’]
درخواست 2: تکمیل متن
“””——–p = “””hey doctor
comp(p,outputs=5)
خروجی:
,’?What seems to be the problem’]
‘Good morning! How can I help you today’
‘What seems to be the trouble’
‘Good to see you! How can I help you today’
[‘?What seems to be the problem’
درخواست 3: تولید متن
“p = “Write a tagline for my shoe company
Output = comp(p,outputs=3)
print(Output[0])
print(Output[1])
print(Output[2])
خروجی:
“!Walk in Comfort, Walk with Us”
“Walking in Style, Step by Step”
“!Walk in style with our designer shoes”
درخواست 4: تکمیل متن
:p = “””What is the sentiment of these tweets
- “GFG has the best DSA course”
- “Got late for work and got fired for that”
- “!!!Can’t wait for Diwali”
- “?What do you have in mind”
- “I hate strawberry”
“”‘:Tweet sentiment ratings
print(comp(p, outputs=1)[0])
خروجی:
1. Positive
2. Negative
3. Positive
4. Neutral
5. Negative
درخواست 6: ترجمه
“””=p
:Translate this sentence in hindi, german and japanese:
‘.I am learning from GeeksforGeeks’
“””
Output = comp(p,MaxToken=500,outputs=2)
print(Output[0])
print(‘\n’,Output[1])
خروجی:
Hindi: मैं GeeksforGeeks से सीख रहा हूँ।
.German: Ich lerne von GeeksforGeeks
Japanese: 私はGeeksforGeeksから学んでいます
Hindi: मैं GeeksforGeeks से सीख रहा हूँ।
.German: Ich lerne von GeeksforGeeks
Japanese: 私はGeeksforGeeksから学んでいます
