การทดลองแชทง่ายขึ้น
-
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!ในโน้ตบุ๊กข้อความจะสตรีมลงในเอาต์พุต markdown และฟังก์ชั่นอินพุตและเอาต์พุตเป็นจอแสดงผลที่สามารถยุบได้ดีเช่นกับปลั๊กอิน ChatGPT
TODO: รวม GIF/MP4 ของการดำเนินการนี้
pip install chatlab คุณจะต้องตั้งค่าตัวแปรสภาพแวดล้อม OPENAI_API_KEY ของคุณ คุณสามารถค้นหาคีย์ API ของคุณได้ในหน้าบัญชี OpenAI ของคุณ ฉันขอแนะนำให้ตั้งค่าในไฟล์ .env เมื่อทำงานในเครื่อง
ในสภาพแวดล้อมสมุดบันทึกที่โฮสต์ตั้งค่าไว้ในความลับของคุณเพื่อให้ปลอดภัยจากการแอบมองตา LLM
Chat จะช่วยให้ คุณ ทำอะไรได้บ้าง? Chat S Take It Next Level เป็นฟังก์ ชั่นการแชท คุณทำได้
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 สำหรับโมเดลในขณะที่สคีมามาจาก pydantic BaseModel เรียกว่า 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 เอาท์พุท Markdown จะแสดงการตอบสนองจาก 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 เพื่อให้สามารถใช้งานได้กับรูปแบบการแชท เอกสารของฟังก์ชั่นกลายเป็นคำอธิบายของฟังก์ชั่นในขณะที่สคีมานั้นได้มาจาก 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 " }โครงการนี้ใช้บทกวีสำหรับการจัดการการพึ่งพา ในการเริ่มต้นใช้งานโคลน repo และเรียกใช้
poetry install -E dev -E test เราใช้ ruff และ mypy
ยินดีต้อนรับคำขอดึง สำหรับการเปลี่ยนแปลงครั้งใหญ่โปรดเปิดปัญหาก่อนเพื่อหารือเกี่ยวกับสิ่งที่คุณต้องการเปลี่ยนแปลง