Giới Thiệu Tổng Quan Về Model Clients Trong AutoGen
AutoGen cung cấp một loạt các model clients tích hợp sẵn để sử dụng ChatCompletion API. Tất cả các model clients đều tuân theo protocol class, đảm bảo tính nhất quán và dễ dàng mở rộng.
Hiện tại, AutoGen hỗ trợ các model clients sau: OpenAI (bao gồm Gemini), Azure OpenAI, GitHub, Ollama (thử nghiệm) và Anthropic. Ngoài ra, còn có adapter cho Semantic Kernel AI connectors.
Để biết thêm thông tin chi tiết về cách sử dụng các model clients này, vui lòng tham khảo tài liệu hướng dẫn tương ứng.
Ghi Log Theo Dõi Model Calls Với Python Logging
AutoGen sử dụng module logging tiêu chuẩn của Python để ghi lại các sự kiện quan trọng như model calls và responses. Logger name là 'autogen', và event type là 'model_call'.
Việc ghi log giúp bạn dễ dàng theo dõi và gỡ lỗi các ứng dụng AI của mình.
Sử Dụng Gọi Model Client Để Tạo Chat Completion
Để gọi một model client, bạn có thể sử dụng phương thức 'create'. Ví dụ sau sử dụng OpenAI client để gọi một OpenAI model.
Ví dụ minh họa cách sử dụng AutoGen để tạo chat completion request với các model khác nhau.
Streaming Truyền Dữ Liệu Theo Thời Gian Thực ( Tokens)
Bạn có thể sử dụng phương thức 'create_stream' để tạo một chat completion request với streaming token chunks, cho phép hiển thị kết quả theo thời gian thực.
Lưu ý: Phản hồi cuối cùng trong streaming response luôn là phản hồi cuối cùng của kiểu 'ChatCompletion.create'.
Mặc định, response usage trả về giá trị không. Để kích hoạt usage, xem thêm chi tiết trong tài liệu.
Cấu Trúc Đầu Ra Có (Structured Output) Với Pydantic
Structured output có thể được kích hoạt bằng cách thiết lập trường 'response_model' trong 'create' và 'create_stream' thành một Pydantic BaseModel class.
Lưu ý: Structured output chỉ khả dụng cho các model hỗ trợ nó. Ngoài ra, model client cũng cần hỗ trợ structured output. Hiện tại, OpenAI và Azure OpenAI client hỗ trợ structured output.
Bạn cũng có thể sử dụng tham số 'response_model' trong phương thức 'create' để thiết lập trường này, cho phép cấu hình structured output cho từng request.
“AutoGen giúp bạn tối ưu hóa chi phí và tăng tốc độ xử lý của các ứng dụng AI.
Đội ngũ AutoGen
Khám Phá Thêm Với AutoGen
Tìm hiểu các tính năng tương tác để tận dụng tối đa sức mạnh của AutoGen.
Caching Nâng Cao
Giảm chi phí và tăng tốc độ bằng cách sử dụng bộ nhớ đệm thông minh cho các model responses.
Structured Output Dễ Dàng
Định dạng kết quả đầu ra một cách cấu trúc với Pydantic BaseModel, giúp tích hợp dễ dàng vào ứng dụng của bạn.
Caching Bộ Nhớ Đệm () Cho Model Responses
AutoGen triển khai 'CacheClientWrapper' có thể bao bọc bất kỳ 'ChatCompletionClient' nào. Sử dụng wrapper này giúp tránh tiêu tốn token khi truy vấn client cơ sở với cùng một prompt nhiều lần.
'CacheClientWrapper' sử dụng protocol 'CacheProtocol'. Chúng tôi đã triển khai một số biến thể hữu ích của protocol này, bao gồm 'SQLiteCache' và 'RedisCache'.
Đây là một ví dụ về cách sử dụng 'SQLiteCache' cho local caching: Kiểm tra ('cost') trước và sau một cached response sẽ cho ra các số lượng giống hệt nhau.
Lưu ý rằng caching nhạy cảm với các arguments chính xác được cung cấp cho 'create' hoặc 'create_stream', vì vậy việc thay đổi 'model' hoặc arguments có thể dẫn đến cache miss.
Xây Dựng Agent Với Model Client
Hãy tạo một AI agent đơn giản có thể phản hồi tin nhắn bằng ChatCompletion API. Class 'AssistantAgent' là một subclass của class 'Agent' để thuận tiện cho việc tự động định tuyến tin nhắn đến các handlers thích hợp. Nó có một handler duy nhất, 'receive', xử lý tin nhắn từ người dùng. Nó sử dụng OpenAI Client để tạo phản hồi cho tin nhắn. Sau đó, nó trả về phản hồi cho người dùng, tuân theo mô hình giao tiếp trực tiếp.
Lưu ý: 'context' của kiểu 'CancelContext' được sử dụng để hủy các hoạt động không đồng bộ. Nó được liên kết với các async calls bên trong message handlers và có thể được sử dụng bởi caller để hủy các handlers.
Cách tiếp cận trên luôn phản hồi với một context mới chỉ chứa system message và tin nhắn mới nhất của người dùng. Chúng ta có thể sử dụng model context classes từ 'autogen.oai.model_context' để làm cho agent “ghi nhớ” các cuộc trò chuyện trước đó. Xem trang Model Context để biết thêm chi tiết.
API Keys Sử Dụng Từ Biến Môi Trường (Environment Variables)
Trong các ví dụ trên, chúng tôi chỉ ra rằng bạn có thể cung cấp API key thông qua argument 'api_key'. Quan trọng là OpenAI và Azure OpenAI clients sử dụng package 'openai', package này sẽ tự động đọc api key từ biến môi trường nếu không được cung cấp.
Đối với OpenAI, bạn có thể thiết lập biến môi trường 'OPENAI_API_KEY'. Đối với Azure OpenAI, bạn có thể thiết lập biến môi trường 'AZURE_OPENAI_API_KEY'. Ngoài ra, đối với Gemini (Beta), bạn có thể thiết lập biến môi trường 'GOOGLE_API_KEY'.
Đây là một phương pháp hay để khám phá, vì nó tránh việc đưa các api keys nhạy cảm vào code của bạn.