스토어 채팅 기록

완료됨

의미 체계 커널 SDK는 채팅 세션에서 교환된 메시지의 레코드를 유지하는 개체를 지원 ChatHistory 합니다. 사용자, 도우미, 도구 또는 시스템과 같은 여러 작성자의 메시지와 메타데이터를 저장합니다. 개체는 ChatHistory 대화에서 컨텍스트 및 연속성을 유지하는 데 필수적입니다. 다음은 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.

채팅 기록 개체 만들기

개체를 ChatHistory 만들기 전에 적절한 패키지를 가져와야 합니다. 내부적으로 채팅 기록 개체는 채팅 세션에서 메시지 시퀀스를 관리하기 위한 컨테이너로 작동하는 목록입니다.

// 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}")

이 예제에서는 ChatHistory 개체가 만들어지고 다른 작성자가 보낸 메시지로 채워집니다.

  • 시스템 메시지: 도우미의 역할 또는 동작을 설정합니다(예: "당신은 유용한 도우미입니다.").
  • 사용자 메시지: 사용 가능한 항목을 요청하거나 주문하는 등 사용자의 입력을 캡처합니다.
  • 도우미 메시지: AI 도우미에서 생성한 응답, 제안 제공 또는 작업 확인이 포함됩니다.

채팅 기록을 사용하여 자연스럽고 사용자 요구에 응답하는 지능형 컨텍스트 인식 채팅 환경을 빌드할 수 있습니다.

개체를 만들어 채팅 기록에 세부 정보를 추가할 수도 있습니다 ChatMessage . 개체는 ChatMessage 사용자 이름 및 이미지 콘텐츠와 같은 추가 정보를 지원합니다. 예제는 다음과 같습니다.

// 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}")

프로젝트에서 채팅 기록을 사용하면 사용자 상호 작용을 향상시킬 수 있습니다. 예를 들어 채팅 기록은 여러 교환에서 컨텍스트를 유지하여 연속성을 보장하므로 사용자가 정보를 반복하지 않고 도우미가 보다 정확하게 응답할 수 있습니다. 채팅 기록을 사용하여 일반적인 쿼리 식별 또는 대화 흐름 구체화와 같은 AI 응답을 개선하기 위한 사용자 상호 작용을 분석할 수도 있습니다.

ChatHistory 개체를 사용하면 채팅 세션 중에 교환된 메시지를 추적하여 대화가 컨텍스트적으로 인식되고 자연스럽게 유지되도록 할 수 있습니다. 시스템, 사용자 및 도우미 메시지를 추가하여 응집력 있는 사용자 환경을 만드는 동작 및 상호 작용을 정의할 수 있습니다. ChatMessage 개체는 사용자 이름 및 멀티미디어 콘텐츠와 같은 세부 정보를 지원하여 유연성을 제공합니다. 이러한 도구를 사용하면 동적 및 개인 설정된 채팅 애플리케이션을 쉽게 디자인할 수 있습니다.