ใช้ VIM เป็นเครื่องมือสำหรับการออกแบบและเรียกใช้อย่างมีประสิทธิภาพดีบักและบันทึกโมเดลภาษาขนาดใหญ่ของคุณ (LLMS)
Prompter.vim แปลง VIM Editor เป็นสภาพแวดล้อมทางวิศวกรรมที่มีประสิทธิภาพเปลี่ยนอย่างมีประสิทธิภาพแทนที่ LLM ผู้ให้บริการที่เป็นกรรมสิทธิ์เว็บสนามเด็กเล่นเช่น: Azure Openai Service Playground หรือ OpenAi Playground
จากเวอร์ชัน 0.2 ปลั๊กอินใช้ Litellm เป็นเลเยอร์ Abstraction ผู้ให้บริการ LLM
Litellm เรียก LLM APIs ทั้งหมดโดยใช้รูปแบบ OpenAI: Bedrock, Azure, Openai, Cohere, Anthropic, Ollama, Sagemaker, HuggingFace, ทำซ้ำ (100+ LLM) ดังนั้นคุณสามารถใช้ prompter.VIM ด้วยรายชื่อผู้ให้บริการ LLM ที่แตกต่างกันมากมาย!
<F9> (คีย์ลัดสำหรับ :PrompterSetup )<F12> (คีย์ทางลัดสำหรับ :PrompterGenerate ) เพื่อให้ LLM เสร็จสมบูรณ์myexperiment.prompt ) ![]() |
|---|
| prompter.vim ในการดำเนินการ: การแก้ไข/โต้ตอบกับพรอมต์ที่จำลองการสนทนาทางโทรศัพท์ (ด้วยเทคนิคด้านล่างที่อธิบายว่าเป็น "บทสนทนาเป็นส่วนหนึ่งของข้อความแจ้งข้อความ")) |
prompter.vim ไม่ได้รับการออกแบบเป็นหลักเป็นเครื่องมือที่สมบูรณ์ของรหัสแม้ว่าคุณสามารถใช้มันเพื่อจุดประสงค์นั้น
แต่ปลั๊กอินนี้มีจุดมุ่งหมายเพื่อทดแทนวัตถุประสงค์ทั่วไปสำหรับสนามเด็กเล่นที่ทำข้อความให้เสร็จสมบูรณ์สำหรับวิศวกรที่ต้องการทดสอบและดีบักภาษาธรรมชาติ
ความคิดที่เกิดขึ้นในฤดูใบไม้ผลิปี 2023 ในขณะที่ฉันกำลังเขียนคำแนะนำ LLM และทดลองใช้เทคนิควิศวกรรมที่รวดเร็ว ฉันใช้วิธีการ "เสร็จสมบูรณ์ข้อความ" ที่ตรงไปตรงมาซึ่งคุณป้อนคลังข้อมูลข้อความของคุณและขอให้เสร็จสิ้นจากรูปแบบภาษาขนาดใหญ่ (LLM)
วิธีการเริ่มต้นของฉันคือการใช้สนามเด็กเล่นเว็บที่เสนอโดยผู้ให้บริการ LLM อย่างไรก็ตามฉันพบปัญหามากมายโดยเฉพาะอย่างยิ่งในขณะที่มีปฏิสัมพันธ์กับสนามเด็กเล่นเว็บ Azure Openai
ด้วยเหตุผลที่ฉันยังไม่เข้าใจการโต้ตอบทางเว็บของสนามเด็กเล่นเว็บ Azure ช้าลงอย่างมากหลังจากจุดหนึ่ง ฉันสงสัยว่ามีข้อผิดพลาดภายในกล่องเสร็จสิ้น นอกจากนี้ฉันไม่ชอบเว็บอินเตอร์เฟส Azure สำหรับโหมด "CHAT COMPLIEN" ยุ่งเหยิงทั้งหมด! แต่สนามเด็กเล่น OpenAi ดั้งเดิมนั้นดีกว่าและฉันไม่พบปัญหาดังกล่าว
อย่างไรก็ตามสนามเด็กเล่นทั้งเว็บที่กล่าวถึงอนุญาตให้มีการแจ้งเตือนเพียงครั้งเดียวต่อแท็บเบราว์เซอร์ ดังนั้นเมื่อจัดการกับพรอมต์ที่ใช้งานอยู่หลายครั้ง (การพัฒนาแอปพลิเคชันคอมโพสิตที่ประกอบด้วยพรอมต์แม่แบบซ้อน/ถูกล่ามโซ่) คุณต้องรักษาสนามเด็กเล่นหลายสนามไว้ในแท็บที่แตกต่างกัน เมื่อคุณได้รับผลลัพธ์ที่สำคัญ (ระดับกลาง) ที่แน่นอนคุณต้องคัดลอกกล่องข้อความทั้งหมดและบันทึกไว้ในไฟล์เวอร์ชัน
การดำเนินการทั้งหมดนี้ด้วยสนามเด็กเล่นเว็บเป็นกระบวนการที่ยุ่งยากและผิดพลาดได้ง่าย ความคิดสุดท้ายคือ: ถ้าฉันสามารถดำเนินการเสร็จสิ้นโดยตรงในบรรณาธิการ VIM ของฉัน?
text หรือ chat เสร็จสิ้น?มีสอง "โหมดเสร็จสมบูรณ์" คาดการณ์ล่วงหน้าใน OpenAI หรือ LLMS ปัจจุบันที่คล้ายกัน:
text เสร็จสิ้น
โหมดเสร็จสิ้นตั้งค่าเป็น text หมายความว่า LLM เสร็จสิ้นข้อความพรอมต์ของหน้าต่างบริบทที่กำหนดพร้อมข้อความที่เสร็จสมบูรณ์ (ข้อความใน -> ข้อความออก) ตัวอย่างของการตั้งค่าโมเดลดังกล่าวคือโมเดล text-da-vinci-003 OpenAI ในการใช้โหมดการทำข้อความให้เสร็จสมบูรณ์รุ่นจะต้องรองรับโหมดนั้นผ่าน API เฉพาะ
┌────────────────────────┐
┌─ │ │ ─┐
context │ │ bla bla bla │ │
window │ │ bla bla │ │
= │ │ bla bla bla bla │ │ prompt
prompt │ │ bla │ │
+ │ │ bla bla │ │
completion │ │ │ ─┘
│ └────────────────────────┘
│ |
│ LLM generation
│ |
│ v
│ ┌────────────────────────┐
│ │ │ ─┐
│ │ bla bla │ │
│ │ bla bla bla │ │ text completion
│ │ bla │ │
└─ │ │ ─┘
└────────────────────────┘
chat เสร็จสิ้น
โหมดเสร็จสิ้นการตั้งค่าเป็น chat หมายถึงการปรับแต่งของ LLM สำหรับการแชท "บทบาท" (ผู้ใช้บอกว่าผู้ช่วยพูด ... ) รายละเอียดก่อนโปรดอ่านสิ่งนี้ จริง ๆ แล้วพรอมต์หน้าต่างบริบทนั้นทำโดย
gpt3.5-turbo OpenAI ในการใช้โหมดการแชทให้เสร็จสมบูรณ์รุ่นจะต้องรองรับโหมดนั้น API เฉพาะ Trough ┌────────────────────────┐
┌─ │ bla bla bla bla │ ─┐
│ │ bla bla bla │ │
│ │ bla bla │ │ system
│ │ bla bla bla bla │ │ prompt
context │ │ bla │ │
window │ │ bla bla │ ─┘
= │ └────────────────────────┘
system prompt │ ┌────────────────────────┐
+ │ │ user: blablabla │ ─┐
chat │ ├────────────────────────┤ │
+ │ │ assistant: bla bla bla │ │
completion │ ├────────────────────────┤ │ chat
│ │ user: bla bla bla │ │ prompt
│ ├────────────────────────┤ │
│ │ assistant: blabla bla │ │
│ ├────────────────────────┤ │
│ │ user: blabla bla │ ─┘
│ └────────────────────────┘
│ |
│ LLM generation
│ |
│ v
│ ┌────────────────────────┐
│ │ │ ─┐
└─ │ assistant: bla bla bla │ │ chat completion
│ │ ─┘
└────────────────────────┘
ปลั๊กอิน Prompter.Vim นั้นทำงานเป็นสนามเด็กเล่นที่ทำข้อความให้เสร็จสมบูรณ์อย่างรวดเร็วหลีกเลี่ยงภาวะแทรกซ้อนของบทบาทการแชท
ดังนั้นหากใช้โมเดลที่ใช้งานได้เฉพาะในโหมด แชท (เช่น OpenAI GPT3.5-Turbo ) ที่อยู่เบื้องหลัง (ผ่านวิธี Litellm text_completion() ) เนื้อหาข้อความตัวแก้ไข (พรอมต์) จะถูกแทรกเป็นพรอมต์บทบาท "ระบบ" ดูเพิ่มเติมที่: การสนทนา
ฉันทราบว่าการใช้โมเดลที่ใช้การแชทเป็นแบบจำลองข้อความตามที่อธิบายไว้ข้างต้นไม่ใช่การใช้งานที่ดีที่สุด แต่เป็นการประนีประนอมระหว่างความเรียบง่ายของการมีสนามเด็กเล่นข้อความเดียวและความซับซ้อนของการจัดการบทบาทการแชท
ปลั๊กอินนี้ทำใน Python3 ตรวจสอบว่าการสนับสนุนการติดตั้ง VIM ของคุณ Python3:
vim --version | grep " +python3 " | awk ' {print $3} ' ในกรณีของฉันฉันได้ +python3 นั่นคือข้อกำหนดเบื้องต้นหลัก
ตรวจสอบว่าเป็นเวอร์ชัน Python ที่รวบรวม VIM แยกรุ่น Python ที่แม่นยำด้วยคำสั่ง:
vim --version | grep -o -P ' (?<=/python)[0-9]+.[0-9]+ ' ในกรณีของฉันฉันได้ 3.8
โปรดทราบว่า VIM สามารถใช้เวอร์ชัน Python (และแพ็คเกจที่เกี่ยวข้อง) ซึ่งรวบรวมไว้ ตัวอย่างหากระบบ Python ปัจจุบันของคุณ (
python3 --version==Python 3.11.6) แตกต่างจากเวอร์ชัน Vim Python, พูดว่าPython 3.8, จำไว้ว่า Vim จะเห็นแพ็คเกจPython 3.8เท่านั้น ในการใช้แพ็คเกจPython 3.11.6คุณต้องคอมไพล์อีกครั้ง
ติดตั้งแพ็คเกจ Python litellm คุณต้องติดตั้ง litellm โดยใช้ pip ของรุ่น Python ที่เกี่ยวข้องเช่น pip3.8
pip3.8 install -U litellm ติดตั้งปลั๊กอินโดยใช้ปลั๊กอินตัวจัดการที่คุณต้องการเช่นการใช้ VIM-plug plug-in manager แทรกในไฟล์ .vimrc ของคุณ:
Plug ' solyarisoftware/prompter.vim ' # PROVIDER DEPENDENT SETTINGS USING LiteLLM CONFIGURATION
# https://docs.litellm.ai/docs/providers
# https://docs.litellm.ai/docs/providers/azure
# LLM PROVIDER MANDATORY SETTINGS
export AZURE_API_VERSION=2023-09-01-preview
export AZURE_API_BASE= " https://XXXXXXXXXXXXXXX.openai.azure.com/ "
export AZURE_API_KEY= " YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY "
export MODEL= " azure/your_deployment-name "
# LLM PARAMETERS OPTIONAL SETTINGS
# translated OpenAI model parameters
# https://docs.litellm.ai/docs/completion/input#translated-openai-params
export TEMPERATURE=0.3
export MAX_TOKENS=3000
export OPENAI_STOP= " " ความคิดที่ดีคือการแก้ไขและเก็บตัวแปรทั้งหมดไว้ข้างบนในไฟล์ที่ซ่อนอยู่เช่น vi ~/.prompter_azure.vim และดำเนินการกับ source ~/.prompter_azure.vim
คุณสามารถเรียกใช้คำสั่งในโหมดคำสั่ง VIM ( : หรือคีย์ที่เกี่ยวข้อง:
| สั่งการ | สำคัญ | การกระทำ |
|---|---|---|
:PrompterSetup | <F9> | การตั้งค่าแบบจำลองและการกำหนดค่าเริ่มต้น |
:PrompterGenerate | <F12> | เรียกใช้การกรอกข้อความ LLM |
:PrompterInfo | <F10> | รายงานการกำหนดค่าปัจจุบัน |
:PrompterSetupเมื่อคุณป้อน VIM เพื่อเปิดใช้งานสภาพแวดล้อมสนามเด็กเล่น Prompter ก่อนอื่นให้ทำงานในโหมดคำสั่ง:
:PrompterSetupหลังจากการตั้งค่าสภาพแวดล้อมหากสำเร็จคำสั่งจะพิมพ์ในบรรทัดสถานะการกำหนดค่าโมเดล:
Model: azure/gpt-35-turbo completion mode: chat temperature: 0.7 max_tokens: 100
คำอธิบายของค่าในรายงานบรรทัดสถานะ:
temperature preset value ───────────────────────────┐
│
max_tokens preset value ──────────┐ │
│ │
┌─────┐ ┌────────────┐ ┌────┐ ┌─┴─┐ ┌─┴─┐
Model:│azure│/│gpt-35-turbo│ completion mode:│chat│ temperature:│0.7│ max_tokens:│100│
└──┬──┘ └─────┬──────┘ └──┬─┘ └───┘ └───┘
│ │ │
│ │ └─ chat or text, depending on the model
│ │
│ └── name of the Azure deployment
│
└───────────── name of the LLM provider
:PrompterGenerateแก้ไขพรอมต์ของคุณบนหน้าต่าง vim และเพื่อเรียกใช้ LLM เสร็จสิ้นเพียงแค่
:PrompterGenerateบรรทัดสถานะรายงานสถิติบางอย่าง:
Latency: 1480ms (1.5s) Tokens: 228 (prompt: 167 completion: 61) Throughput: 154 Words: 28 Chars: 176, Lines: 7
คำอธิบายของค่าในรายงานบรรทัดสถานะ:
┌─ latency in milliseconds and seconds
│
│ ┌───────────────────────────────── total nr. of tokens
│ │
│ │ ┌──────────────────── nr. of tokens in prompt
│ │ │
│ │ │ ┌──── nr. of tokens in completion
│ │ │ │
┌─┴───────────┐ ┌─┴─┐ ┌─┴─┐ ┌─┴┐ ┌───┐ ┌──┐ ┌───┐ ┌─┐
Latency:│1480ms (1.5s)│Tokens:│228│(prompt:│167│completion:│61│) Throughput:│154│Words:│28│Chars:│176│ Lines:│7│
└─────────────┘ └───┘ └───┘ └──┘ └─┬─┘ └─┬┘ └─┬─┘ └┬┘
│ │ │ │
│ │ │ │
Latency / Tokens ───────────────────────┘ │ │ │
│ │ │
nr. of words ───────────┘ │ │
│ │
nr. of characters ─────────────────────┘ │
│
nr. of lines ────────────────────────────────┘
สถิติรายงานตัวชี้วัดเหล่านี้:
| ตัวชี้วัด | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| ความหน่วงแฝง | บอทในมิลลิวินาทีและการประมาณครั้งที่สอง | 1480ms (1.5s) |
| โทเค็น | จำนวนโทเค็นรวมผลรวมย่อยและผลรวมย่อยที่สมบูรณ์ | 228 |
| ปริมาณงาน | เสร็จสิ้นอัตราส่วนโทเค็น / แฝง (ในไม่กี่วินาที) ดูการอภิปรายเกี่ยวกับแนวคิดของปริมาณงานที่นี่ | 154 |
| คำ | จำนวนคำที่สร้างขึ้นในการเสร็จสิ้น | 28 |
| ถ่าน | จำนวนอักขระที่สมบูรณ์ | 176 |
| เส้น | จำนวนบรรทัดที่สร้างขึ้นในการเสร็จสิ้น | 7 |
โดยค่าเริ่มต้นคำสั่งถูกกำหนดให้กับคีย์ฟังก์ชัน
F12ในลักษณะที่คุณสามารถเรียกใช้ความสำเร็จเพียงแค่กดปุ่มกดเดี่ยวF12
:PrompterInfoรายงานเวอร์ชันปลั๊กอินปัจจุบันรายการคำสั่งปลั๊กอินการตั้งค่ารุ่นปัจจุบัน
:PrompterInfoคำสั่งพิมพ์ข้อมูลเหล่านี้:
Version:
prompter.vim, by [email protected], version 0.2 (November 28, 2023)
Model:
Model: azure/gpt-35-turbo completion mode: chat temperature: 0.5 max_tokens: 1500
Commands:
PrompterGenerate <F12>
PrompterInfo <F10>
PrompterSetup <F9>
รับและตั้งค่าพื้นหลังความสมบูรณ์และสีเบื้องหน้า:
echo g: prompter_completion_ctermbg
echo g: prompter_completion_ctermfg
let g: prompter_completion_ctermbg = 3
let g: prompter_completion_ctermfg = 0หากคุณไม่ชอบสีไฮไลต์เริ่มต้นคุณสามารถแทนที่ค่า
ctermbgและctermfgโดยใช้ชุดย่อยของ CTERT/XTERM 256 สี ในการแสดงสีทั้งหมดที่มีอยู่คุณสามารถใช้คำสั่ง:HighlightColorsส่วนหนึ่งของปลั๊กอินของฉัน: ไฮไลต์
เพื่อปรับเปลี่ยนค่าอุณหภูมิ
let g: temperature = 0.2เพื่อปรับเปลี่ยนค่าโทเค็นสูงสุด
let g: max_tokens = 2000
เพื่อแก้ไขลำดับหยุด (s)
let g: stop = [ ' x: ' , ' y: ' , ' z: ' ]คำสั่งเชื่อมโยงกับคีย์ฟังก์ชันกับการตั้งค่าเริ่มต้นนี้:
let g: prompter_setup_keystroke = ' <F9> '
let g: prompter_info_keystroke = ' <F10> '
let g: prompter_generate_keystroke = ' <F12> '
let g: prompter_regenerate_keystroke = ' <F8> ' แม้ว่าใน VIM คุณสามารถกำหนดคำสั่งให้กับการแมปคีย์ของการตั้งค่าของคุณโดยตัวอย่าง: map <F2> :PrompterGenerate<CR> และคุณสามารถดูว่าการแมปสำหรับคีย์เฉพาะเช่น F2 คุณสามารถใช้คำสั่ง vim :PrompterSetup map <F12> วิธีที่แนะนำ
ใช้ (vim-included) checker
เมื่อคุณเขียนพรอมต์ LLM มันสำคัญมากที่จะหลีกเลี่ยงการพิมพ์ผิด! ฉันมีประสบการณ์หลายครั้งที่ LLM เสร็จสิ้นเลวร้ายที่สุดถ้าคุณเข้าใจผิดเพียงแค่คำกริยา
สิ่งที่เลวร้ายที่สุดถ้าคุณกำลังเขียนพรอมต์ในมากกว่าหนึ่งภาษา โดยส่วนตัวแล้วฉันมักจะเขียนพรอมต์การสนทนาเป็นภาษาอังกฤษด้วยเหตุผลบางอย่างที่อธิบายไว้ในบทความของฉันภาษาที่ไม่ใช่ภาษาอังกฤษการแลกเปลี่ยนวิศวกรรมที่รวดเร็ว แต่ภาษาเป้าหมายของพรอมต์แชทคือภาษาพื้นเมืองของฉัน: อิตาลี ทั้งหมดในทั้งหมดมีข้อความทั้งในภาษาอังกฤษและอิตาลี ในกรณีนี้ฉันใช้ฟังก์ชัน Vimscript ขนาดเล็กนี้:
function ! Spell ()
set spelllang = en_us,it
setlocal spell
echom " Spell check set for Italian and English languages "
endfunction
com ! SPELL call Spell ()อ่านสถิติความสำเร็จก่อนหน้าทั้งหมดของคุณ
messagesVIM จะแสดงข้อมูลสถิติที่สมบูรณ์ครั้งสุดท้าย โดยตัวอย่างหากคุณเพิ่งเรียกใช้ 3 ความสำเร็จ:
Latency: 961ms (1.0s) Tokens: 616 (prompt: 577 completion: 39) Throughput: 641 Words: 21 Chars: 134
Latency: 368ms (0.4s) Tokens: 648 (prompt: 642 completion: 6) Throughput: 1761 Words: 2 Chars: 15
Latency: 4227ms (4.2s) Tokens: 775 (prompt: 660 completion: 115) Throughput: 183 Words: 60 Chars: 377, Lines: 5
การเปิดใช้งานสายที่อ่อนนุ่ม
ฉันมักจะทำงานกับการตั้งค่า VIM เต็มหน้าจอ ที่ช่วยให้ฉันได้รับความสนใจสูงสุด อย่างไรก็ตามการมีเส้นยาวมาก (หลังจาก PrompterGenerate ) ไม่ได้ช่วยการอ่าน
น่าเสียดายที่ใน VIM นั้นไม่ใช่เรื่องง่ายที่จะกำหนดค่าความกว้างของคอลัมน์ที่คงที่ ดูการสนทนา คุณสามารถตั้งค่า soft warp ด้วยคำสั่งต่อไปนี้:
set wrap linebreak nolist เทคนิคที่ฉันใช้ในการโต้ตอบโต้ตอบต้นแบบคือการแทรกกล่องโต้ตอบหมุนบล็อก a: ต่อไปนี้ในตัวอย่างต่อไป
TASK
You (a:) are a customer care assistant and you are assisting a user (u:).
...
...
DIALOG
a: Hello! How can I assist you today?
u: I want to open a report.
a: Fantastic! First, could you provide me with a detailed description of the issue you're experiencing?
u: The computer monitor won't turn on.
a: Thank you for the description. What is the name or model of the product or system you're having trouble with?
u: I can't read the brand. It's the company's PC monitor.
a: Thank you for the information. What is your preferred method of contact?
u: via email at [email protected]
a: Thank you. Please confirm the provided email address: [email protected]
u: that's correct!
a:
ในกรณีข้างต้นเพื่อตั้งค่า LLM หยุดรอการป้อนข้อมูลผู้ใช้คุณสามารถตั้งค่าลำดับหยุดเป็น u: ด้วยคำสั่ง:
let g: stop = [ ' u: ' ] โปรดทราบว่าหากคุณไม่ได้ตั้งค่าลำดับหยุดตามที่อธิบายไว้ข้างต้น LLM จะพยายามทำให้การสนทนาทั้งหมดเสร็จสิ้น โดยทั่วไปไม่ต้องการเพราะคุณต้องการเขียนประโยคต่อไปนี้ u: อย่างไรก็ตามบางครั้งก็มีประโยชน์ในการปลดชุด g:stop เพียงเพื่อดูว่า LLM จินตนาการถึงการสนทนา
คำสั่ง VIM อื่น ๆ ที่มีประโยชน์:
u: เพียงแค่กดปุ่ม F6 : map <F6> :normal ou: <CR> a: เพียงแค่กดปุ่ม F7 : map <F7> :normal oa: <CR> เวอร์ชัน 0.1
รุ่นแรก เฉพาะรุ่น OpenAI/Azure OpenAI เท่านั้นที่รองรับผ่านโมดูล OpenAI เวอร์ชัน 0.28 Python
เวอร์ชัน 0.2
ความสำเร็จของ LLMS ทำได้ผ่านแพ็คเกจ LLMS Abstraction Layer Python ซึ่งช่วยให้สามารถใช้ผู้ให้บริการ LLM ที่แตกต่างกันมากมาย
รองรับพารามิเตอร์อินพุต LLM ทั้งหมด
จนถึงตอนนี้ Prompter.VIM รองรับ temperature เท่านั้น max_tokens stop อาร์กิวเมนต์
Litellm ยอมรับและแปลพารามิเตอร์ OpenAI CHAT CLECING ในผู้ให้บริการทั้งหมด
สนับสนุนแม่แบบ
คุณกำลังออกแบบ "แม่แบบพรอมต์" ประกอบด้วยส่วนต่าง ๆ ที่สามารถสร้างแบบไดนามิกได้ในเวลาทำงาน ตัวอย่างเช่นพิจารณาว่าคุณต้องการต้นแบบ "ข้อความแจ้งเทมเพลต" ที่มีตัวแปรตัวแปรตัวยึดซึ่งเป็นการอ้างอิงถึงตัวแปรบางตัวที่เต็มไปด้วยพรอมต์หรือไฟล์อื่น ๆ เช่น:
TASK
{some_task_description}
DATA
{some_yaml}
DIALOG
{dialog_history}
ในตัวอย่างด้านบนเมื่อใช้สนามเด็กเล่นบนเว็บคุณจะทำหน้าที่เป็นตัวกลางสำเนา คุณจะต้องเปิดแท็บเว็บสี่แท็บดำเนินการเสร็จสมบูรณ์ข้อความในแต่ละรายการและในที่สุดก็วางความสมบูรณ์ด้วยตนเองการแทนที่ตัวแปรเช่น {some_data} , {dialog_history} นอกจากนี้คุณอาจต้องโหลดไฟล์ลงในตัวแปรเช่น {some_yaml}
แนวคิดคือการสนับสนุนเทมเพลตแจ้งให้การแก้ไขช่วยให้สามารถแทนที่ได้ทันที (ด้วยการกดแป้นพิมพ์) ตัวแปรตัวแปรด้วยเนื้อหาของบัฟเฟอร์/หน้าต่างอื่น ๆ
Asynchronous LLM เสร็จสมบูรณ์
ขณะนี้คำสั่ง LLM COMPLENTION PrompterGenerate เป็นคำสั่งแบบซิงโครนัส: ตัวแก้ไขจะถูกบล็อกจนกว่า LLM API จะส่งคืนข้อความที่เสร็จสมบูรณ์ อาจเป็นเรื่องน่าเบื่อสำหรับการแจ้งเตือนที่ซับซ้อนและยาวมากซึ่งต้องใช้เวลาหลายวินาทีในการทำให้เสร็จสมบูรณ์ (เช่น >> 10) ในกรณีนี้มันอาจจะดีกว่าถ้าคำสั่งอาจเป็นแบบอะซิงโครไนซ์ช่วยให้นักพัฒนาสามารถใช้ตัวแก้ไข VIM เมื่อเสร็จสิ้นการดำเนินการ
การสนับสนุนสตรีมมิ่ง
จนถึงตอนนี้ยังไม่ได้พิจารณาการสตรีมมิ่ง
David Shapiro สำหรับงานเผยแพร่ครั้งใหญ่ของเขาเกี่ยวกับ LLMS และ Generative AI ฉันได้ติดตามด้วยความกระตือรือร้นโดยเฉพาะอย่างยิ่ง LLM Promption Engineering Live Coding วิดีโอ YouTube!
Vivian de Smedt Vim Expert สำหรับความช่วยเหลือของเขาในการแก้ปัญหาที่พบเมื่อพัฒนาปลั๊กอินนี้
ผู้สร้าง Litellm สำหรับการรวมคุณสมบัติที่แนะนำบางอย่างเป็นรูปแบบการทำข้อความให้สมบูรณ์!
โครงการนี้เป็นรุ่นพิสูจน์ความคืบหน้าของแนวคิด Alfa!
ฉันไม่ใช่ผู้เชี่ยวชาญด้าน Vimscript ดังนั้นยินดีต้อนรับหรือมีข้อเสนอแนะใด ๆ สำหรับข้อเสนอและปัญหาใด ๆ โปรดส่งที่นี่ในปัญหา GitHub สำหรับข้อบกพร่องคำแนะนำ ฯลฯ คุณสามารถติดต่อฉันทางอีเมล ([email protected])
หากคุณชอบโครงการโปรด️Starที่เก็บนี้เพื่อแสดงการสนับสนุนของคุณ!
Copyright (c) 2023 Giorgio Robino
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
สูงสุด