Той самы цикл чату ў Ollama без ключаў у хмаре.
Застосавайце шлях паведамленняў у формате OpenAI да местнага модэлю, каб навучальныя матэрыялы заставаліся падходжымі для работы без сеті.
Існавайце гэта як перапрацоўку ідэй з роздзела «Частка 5 — Адкліканне таго ж цыклу на Ollama (без ключа API, діалект OpenAI)» для аператараў: чыстыя этапы, арранжаваныя блакі коду і прыметкі па вяснаванню, якія застаюцца пасля перадачы. Адгледжэнне работае найкраща, калі яго спрыяваць як вимерную паверхню. Запісайце адна ідеальная транскрыпцыю, адзін прыклад неудачы і прыметкі па адвярненню, перш чым расширваць масштаб. Спрыяйце гэты этап як кантракт між вхіднымі даннымі і паўнастацэннымі выходам. Дайце назвы артыфактам, задаце критэрыя успеху і адмовіцеся ад мовчанкавага частковага завершэння.
from openai import OpenAI
# Part 2's SDK, different address
client = OpenAI(
base_url="http://localhost:11434/v1",
api_key="ollama", # required, unused
)
resp = client.chat.completions.create(
model="llama3.2",
messages=[
{
"role": "system",
"content": "You are a concise "
"assistant.",
},
{
"role": "user",
"content": "Where are you running "
"right now?",
},
],
temperature=0,
)
print(resp.choices[0].message.content)
msgs = [{
"role": "system",
"content": "You are a concise assistant.",
}]
def ask(text: str) -> str:
msgs.append(
{"role": "user", "content": text}
)
resp = client.chat.completions.create(
model="llama3.2",
messages=msgs, # full history
temperature=0,
)
reply = resp.choices[0].message.content
msgs.append({
"role": "assistant",
"content": reply,
})
return reply
print(ask("Define a context window."))
print(ask("Now for a five-year-old."))
print(ask("Which answer was shorter?"))
# one-time: install from ollama.com, then
ollama pull llama3.2
pip install -r requirements.txt
python examples/part05_ollama.py
Чэк-ліст для аператыўнай роботы
Калі працуеце з чэк-лістам для аператыўнай роботы, спачатку запісайце кантракт: неабходныя вхідныя даны, сігнал успеху і тое, што выходзіць у разе частковай неудачы. Гэты чэк-ліст дапамагае заставіць пасляўныя змены коду быць чыстымі.
Лепшыя маленькія, тэставаныя елементы, чым велікія скрыпты. Калі якісь крок не выйшае, адказка за гэта паталогія должна быць спрямована на адзін конкрэтны элемент, а не на заплутаны ланцюг задач.
Зявляйтэ карточкі з ідэнтыфікатам запроса, ідэнтыфікатам моделі і часам затрымкі праз кожны вызов. Без такога следу періодычныя паталогіі сервера выглядаюць як багі ў самай прыемлівай.
Фіксуйце версіі неабходных компонентаў і зявляйтэ хеш-значэння адобраза, які быў выкарыстоўваны пад час дэманстраціі. Возможнасць павторнага стварэння результата лепшая, чым традыцыйныя знаёмства.
Спрытывайце гэты этап як кантракт між вхіднымі дадзеннямі і перакананымі выхіднымі рэзультатамі. Даўайце назвы всім элементам, апісуйце критэрыя успеху і не прымайце часткова завершаныя рэзультаты без паведамлення.
Зявляйтэ карточкі з ідэнтыфікатам запроса, ідэнтыфікатам моделі і часам затрымкі праз кожны вызов. Без такога следу періодычныя паталогіі сервера выглядаюць як багі ў самай прыемлівай.
Перш чым запускать даную систему, заморозьце версіі, зафіксавце критычныя моменты для аналізу і паказвайце крокі з вярнення да пачатковага стану. У спільных средах неабяжна наявнае ліміты на частоту запуска, пераконтроўванні прав на выкорыстанне ресурсаў і чысткая адпаведальнасць за зміну секрэтных даных. Лепш выбіраць простую надзею на надзейнасць, чым крэатывныя, але еднакратныя дамы.
Запіс для 25763587d271: не кладзіце ключы прадаўцаў у репазітарый, задаце максимальны тэрмін дзейнасці токена на кожную сесію і зберагачыце записы поблізу фіксатываў для ацэнкі, каб пазнейшыя замены моделяў заставаліся пораўнанымі.
Для павышэння надзейнасці, за прыметкай 0, перш чым зменяць код, неабяжна адзначыце вхідныя даны, адпаведальную особу за выкананне кроку і критэрыя завершэння. Аперацыяныя системы павінны магчымае перзапуск кроку з вядомай точкі контролю, не падозрываючы прыхованы стан. Лепш выбіраць маленькія, тэставаныя елементы, чым велікія скрыпты. Калі крок не выйшаў, прычына нехарактэрыстыкі павінна вказываць на адзін конкрэтны элемент, а не на заплутаны цэп выкарыстоўвання ресурсаў.
Дзеянне паўжасткі 0/681: звярніце увагу на час выканання, клас памылкі і колькасць токенаў, якія былі выкарыстаны для гэтай змяны, а пасля, на аднойчынных крэтарах, а не на асобістых спазыраўнях, выявіце, чы хацяце яе застаўіць.
Працюючы над змянай паўжасткі 1, спачатку запісайце параметры контракта: неабходныя даны, сігнал успеху і тое, што выканаецца у разе частковай памылкі. Такі список дапамагае заставаць пасляэтапныя змены коду чыстымі. Запісвайце час выканання і колькасць токенаў або запытак паляглі ўжо разам з рэзультатамі функцыяналізацыі. Відразувая візуабільнасць костоў запобегае неспакойным рашчыткам, калі праця пераходзіць з дэмаверсіі ў спакульнаныя сераўы.
Дзеянне паўжасткі 1/681: звярніце увагу на час выканання, клас памылкі і колькасць токенаў, якія былі выкарыстаны для гэтай змяны, а пасля, на аднойчынных крэтарах, а не на асобістых спазыраўнях, выявіце, чы хацяце яе застаўіць.
Пры спроўвачэнні захода з паўнейшага забезпечэння 2 ён работае наяўнейша, калі яго расследжваюць як вимерную паверхню. Зберыце адна ідеальная транскрыпцыю, адзін прыклад неудачы і запіс пра вярнэнне да пачатковага стану перш чым расширваць сферу дзеяння. Дакументавацыя успішнага і восстанавліваючага падхода трэба адрабатваць разам. Перапрыткі, людзкія контралі і обработка некоректных паведамленняў є часткай продукту, а не чымсь, што дадаецца пазней.
Дзялёўка спроўвачэння з паўнейшага забезпечэння 2/681: для гэтага запісу звярніце увагу на час выканання, класыя ошибакі і витрату токенав, а пасля, на базе фіксованага набора пытанняў, а не на адзінакавых прыкладах, выявіце, чы хацяце застаўіць змены.
Для захода з паўнейшага забезпечэння 3 перад змянай коду неабходна визначыць вхідныя даны, адпаведальнага за крок і критэрыя завершэння. Аперацыёныя працавнікі должны магчымае перадзваначыць крок з вядомага пункта контролю, не спрабоўваючы здагадвацца пра схованы стан. Цей этап трэба расследжваць як кантракт між вхіднымі данымі і перакананымі выходнымі рэзультатамі. Дайце назвы артыфактам, визначыце критэрыя успеху і адмовіцеся ад безсловеснага частковага завершэння.
Дзеянне паўжасткі 3/681: звярніце увагу на час працы стэны, клас пакрытчы і выкарыстаны квоты для гэтага запісу, а пасля, на аднойчынай базе фіксаванага набора пытанняў, а не пераказоў, выявіце, чы робіць змены.