Uložení historie chatu
Sada SDK sémantického jádra podporuje ChatHistory objekt, který uchovává záznam zpráv vyměňovaných v chatovací relaci. Ukládá zprávy a metadata od různých autorů, jako jsou uživatelé, asistenti, nástroje nebo systém. Objekt ChatHistory je nezbytný pro udržování kontextu a kontinuity v konverzaci. Tady je ukázkový výstup objektu ChatHistory :
system: You are a helpful assistant.
user: What's available to order?
assistant: We have pizza, pasta, and salad available to order. What would you like to order?
user: I'd like to have the first option, please.
Vytvoření objektu historie chatu
Před vytvořením objektu ChatHistory je potřeba importovat příslušný balíček. Objekt historie chatu je seznam, který funguje jako kontejner pro správu posloupnosti zpráv v chatovací relaci.
// Import the chat completion namespace
using Microsoft.SemanticKernel.ChatCompletion;
// Create a chat history object
ChatHistory chatHistory = [];
// Add role messages to the chat history
chatHistory.AddSystemMessage("You are a helpful assistant.");
chatHistory.AddUserMessage("What's available to order?");
chatHistory.AddAssistantMessage("We have pizza, pasta, and salad available to order. What would you like to order?");
chatHistory.AddUserMessage("I'd like to have the first option, please.");
for (int i = 0; i < chatHistory.Count; i++)
{
Console.WriteLine($"{chatHistory[i].Role}: {chatHistory[i]}");
}
from semantic_kernel.contents.chat_history import ChatHistory
# Create a chat history object
chat_history = ChatHistory()
# Add role messages to the chat history
chat_history.add_system_message("You are a helpful assistant.")
chat_history.add_user_message("What's available to order?")
chat_history.add_assistant_message("We have pizza, pasta, and salad available to order. What would you like to order?")
chat_history.add_user_message("I'd like to have the first option, please.")
# Print chat history
for message in chat_history:
print(f"{message.role}: {message.content}")
V tomto příkladu se vytvoří objekt ChatHistory a naplní se zprávami od různých autorů:
- Systémová zpráva: Nastaví roli nebo chování asistenta, například "Jste užitečný asistent".
- Zprávy uživatelů: Zaznamenává vstup uživatele, například žádost o dostupné položky nebo zadání objednávky.
- Zprávy asistenta: Obsahuje odpovědi vygenerované asistentem AI, nabízí návrhy nebo potvrzující akce.
Pomocí historie chatu můžete vytvářet inteligentní prostředí chatu s podporou kontextu, které se cítí přirozeně a reagují na potřeby uživatelů.
Do historie chatu můžete také přidat další podrobnosti vytvořením objektu ChatMessage . Objekt ChatMessage podporuje další informace, jako jsou uživatelská jména a obsah obrázku. Tady je příklad:
// Add user message with an image
#pragma warning disable SKEXP0001 // AuthorName is subject to change and emits a warning
chatHistory.Add(
new() {
Role = AuthorRole.User,
AuthorName = "Laimonis Dumins",
Items = [
new TextContent { Text = "What available on this menu" },
new ImageContent { Uri = new Uri("https://example.com/menu.jpg") }
]
}
);
from semantic_kernel.contents.chat_history import ChatHistory
from semantic_kernel.contents.chat_message_content import ChatMessageContent, AuthorRole
from semantic_kernel.contents.text_content import TextContent
from semantic_kernel.contents.image_content import ImageContent
# Create a chat history object
chat_history = ChatHistory()
# Add a user message with author name, text, and image content
chat_history.add(
ChatMessageContent(
role=AuthorRole.USER,
author_name="Laimonis Dumins",
items=[
TextContent(text="What available on this menu"),
ImageContent(uri="https://example.com/menu.jpg")
]
)
)
# Print the last message to verify
last_message = chat_history[-1]
print(f"{last_message.role} ({last_message.author_name}):")
for item in last_message.items:
if isinstance(item, TextContent):
print(f" Text: {item.text}")
elif isinstance(item, ImageContent):
print(f" Image: {item.uri}")
Použití historie chatu v projektu může pomoct vylepšit interakce uživatelů. Historie chatu například zajišťuje kontinuitu tím, že zachovává kontext napříč několika výměnami a umožňuje asistentovi reagovat přesněji bez opakování informací. Historii chatu můžete také použít k analýze interakcí uživatelů za účelem zlepšení odpovědí na AI, jako je identifikace běžných dotazů nebo upřesnění konverzačního toku.
ChatHistory objekt umožňuje sledovat zprávy vyměňované během chatové relace, což zajišťuje, aby konverzace zůstaly kontextově vědomé a přirozené. Přidáním zpráv systému, uživatelů a asistentů můžete definovat chování a interakce, které vytvářejí soudržné uživatelské prostředí. ChatMessage objekt poskytuje flexibilitu podporou podrobností, jako jsou uživatelská jména a multimediální obsah. Tyto nástroje usnadňují návrh dynamických a přizpůsobených chatovacích aplikací.