تجارب الدردشة ، مبسطة
؟
Chatlab هي حزمة Python التي تجعل من السهل تجربة نماذج الدردشة في Openai. يوفر واجهة بسيطة للدردشة مع النماذج وطريقة لتسجيل الوظائف التي يمكن استدعاؤها من نموذج الدردشة.
الأفضل حتى الآن ، إنه تفاعلي في دفتر الملاحظات!
import chatlab
import random
def flip_a_coin ():
'''Returns heads or tails'''
return random . choice ([ 'heads' , 'tails' ])
chat = chatlab . Chat ()
chat . register ( flip_a_coin )
await chat ( "Please flip a coin for me" )مدخل:
{}الإخراج:
" tails " It landed on tails!في دفتر الملاحظات ، سيتم بث النص في إخراج مُخوض وإدخال وظائف ومخرجات هي عرض جميل قابلة للطي ، كما هو الحال مع مكونات chatgpt.
TODO: قم بتضمين GIF/MP4 من هذا في العمل
pip install chatlab ستحتاج إلى تعيين متغير بيئة OPENAI_API_KEY . يمكنك العثور على مفتاح API الخاص بك على صفحة حساب Openai الخاصة بك. أوصي بإعداده في ملف .env عند العمل محليًا.
في بيئات دفاتر الملاحظات المستضافة ، قم بتعيينها في أسرارك للحفاظ عليها في مأمن من عيون Merry LLM.
Chat من القيام بها؟ حيث تأخذ Chat في المستوى التالي مع وظائف الدردشة . أنت تستطيع
Chat الخاصة بكقد تتذكر هذا النوع من السلوك من ملحقات ChatGpt. الآن ، يمكنك أن تأخذ هذا إلى أبعد من ذلك باستخدام الرمز المخصص الخاص بك.
على سبيل المثال ، دعنا نعطي نماذج اللغة الكبيرة القدرة على معرفة الوقت.
from datetime import datetime
from pytz import timezone , all_timezones , utc
from typing import Optional
from pydantic import BaseModel
def what_time ( tz : Optional [ str ] = None ):
'''Current time, defaulting to UTC'''
if tz is None :
pass
elif tz in all_timezones :
tz = timezone ( tz )
else :
return 'Invalid timezone'
return datetime . now ( tz ). strftime ( '%I:%M %p' )
class WhatTime ( BaseModel ):
tz : Optional [ str ] = Noneدعونا نقسم هذا.
what_time هي الوظيفة التي سنوفرها للوصول إليها. تشكل المستندات description للنموذج بينما يأتي المخطط من مشكل BaseModel Pydantic يسمى WhatTime .
import chatlab
chat = chatlab . Chat ()
# Register our function
chat . register ( what_time , WhatTime ) بعد ذلك ، يمكننا الاتصال chat مع السلاسل المباشرة (التي يتم تحويلها إلى رسائل مستخدم) أو استخدام صانعي الرسائل البسيطة من chatlab المسمى user system .
await chat ( "What time is it?" )مدخل:
{}الإخراج:
" 11:19 AM " The current time is 11:19 AM. تصدير حزمة chatlab
Chat فئة Chat هي الطريقة الرئيسية للدردشة باستخدام نماذج Openai. إنه يحافظ على تاريخ الدردشة في Chat.messages .
Chat.submit submit هو كيف ترسل جميع الرسائل المبنية حاليًا إلى Openai. سيعرض إخراج تخفيض الاستجابات من assistant .
await chat . submit ( 'What would a parent who says "I have to play zone defense" mean? ' )
# Markdown response inline
chat . messages [ { 'role' : 'user' ,
'content' : 'What does a parent of three kids mean by "I have to play zone defense"?' } ,
{ 'role' : 'assistant' ,
'content' : 'When a parent of three kids says "I have to play zone defense," it means that they...Chat.register يمكنك تسجيل وظائف مع Chat.register لجعلها متاحة لنموذج الدردشة. يصبح docstring للوظيفة وصف الوظيفة بينما يتم اشتقاق المخطط من pydantic.BaseModel تم تمريره.
from pydantic import BaseModel
class WhatTime ( BaseModel ):
tz : Optional [ str ] = None
def what_time ( tz : Optional [ str ] = None ):
'''Current time, defaulting to UTC'''
if tz is None :
pass
elif tz in all_timezones :
tz = timezone ( tz )
else :
return 'Invalid timezone'
return datetime . now ( tz ). strftime ( '%I:%M %p' )
chat . register ( what_time , WhatTime )Chat.messagesالرسائل الأولية المرسلة والمستلمة إلى Openai. إذا وصلت إلى حد رمز ، يمكنك إزالة الرسائل القديمة من القائمة لإفساح المجال للمزيد.
chat . messages = chat . messages [ - 100 :]human / userتقوم هذه الوظائف بإنشاء رسالة من المستخدم إلى نموذج الدردشة.
from chatlab import human
human ( "How are you?" ){ "role" : " user " , "content" : " How are you? " }narrate / system تسمح لك رسائل system ، التي تسمى أيضًا narrate in chatlab ، بتوجيه النموذج في الاتجاه. يمكنك استخدام هذه لتوفير السياق دون أن يرى المستخدم. أحد الاستخدامات الشائعة هو تضمينه كسياق أولي للمحادثة.
from chatlab import narrate
narrate ( "You are a large bird" ){ "role" : " system " , "content" : " You are a large bird " }يستخدم هذا المشروع الشعر لإدارة التبعية. للبدء ، استنساخ الريبو والركض
poetry install -E dev -E test نستخدم ruff و mypy .
طلبات السحب موضع ترحيب. للتغييرات الرئيسية ، يرجى فتح مشكلة أولاً لمناقشة ما تريد تغييره.