Vấn đề Việc gọi nhiều LLM liên quan đến cấu hình dành riêng cho nhà cung cấp/mô hình. Ngay cả khi bạn hợp nhất I/O, bạn vẫn cần một cách để xử lý các trường hợp đặc biệt của mô hình/nhà cung cấp. Chúng tôi đã phải đối mặt với điều này vào tuần trước khi Anthropic thông báo với chúng tôi rằng chúng tôi đã vi phạm chính sách nội dung của họ. Vì chúng tôi cung cấp cho cộng đồng quyền truy cập vào các LLM như Claude-2, v.v. thông qua nguồn mở của chúng tôi. máy chủ proxy Việc kiểm tra các truy vấn thông qua điểm cuối kiểm duyệt OpenAI sẽ làm chậm các truy vấn, vì vậy chúng tôi chỉ muốn chạy truy vấn này trên các mô hình của Anthropic. if model in ["claude-instant-1", "claude-2"]: # run moderations check return litellm.completion(model, messages) Nhưng logic có điều kiện như thế này sẽ dẫn đến lỗi. Chúng tôi đã từng gặp phải vấn đề này trước đây và đã (thư viện trừu tượng giúp đơn giản hóa các lệnh gọi API LLM). xây dựng LiteLLM để giải quyết vấn đề này cho chúng tôi tldr; Chúng tôi muốn logic có điều kiện trên máy chủ của mình. không Chúng tôi một cách để kiểm soát những mô hình/nhà cung cấp mà nó chạy kiểm tra này. cần Giải pháp: Tệp cấu hình Giải pháp của chúng tôi là nhờ LiteLLM việc này cho chúng tôi và kiểm soát logic của nó thông qua tệp cấu hình. Điều này và vẫn cho phép chúng tôi . xử lý đã loại bỏ logic có điều kiện khỏi mã máy chủ của chúng tôi kiểm soát các chi tiết cụ thể của nhà cung cấp/mô hình Điều này cũng cho phép chúng tôi xử lý các tình huống khác như lỗi cửa sổ ngữ cảnh, mã thông báo tối đa, v.v. Đây là mã hoàn chỉnh của chúng tôi: import litellm import os config = { "default_fallback_models": ["gpt-3.5-turbo", "claude-instant-1", "j2-ultra"], "model": { "claude-instant-1": { "needs_moderation": True }, "gpt-3.5-turbo": { "error_handling": { "ContextWindowExceededError": {"fallback_model": "gpt-3.5-turbo-16k"} } } } } # set env var os.environ["OPENAI_API_KEY"] = "sk-litellm-5b46387675a944d2" # [OPTIONAL] replace with your openai key os.environ["ANTHROPIC_API_KEY"] = "sk-litellm-5b46387675a944d2" # [OPTIONAL] replace with your anthropic key sample_text = "how does a court case get to the Supreme Court?" * 1000 messages = [{"content": sample_text, "role": "user"}] response = completion_with_config(model="gpt-3.5-turbo", messages=messages, config=config) print(response) # should be gpt-3.5-turbo-16k Các tập tin cấu hình hiện đang quản lý: Logic nhắc nhở - chọn mô hình phù hợp cho một lời nhắc nhất định, cũng như cắt bỏ lời nhắc nếu nó lớn hơn bất kỳ mô hình có sẵn nào Logic dự phòng - cho phép bạn đặt các dự phòng mặc định cũng như các dự phòng dành riêng cho từng mô hình (ví dụ: lỗi cửa sổ ngữ cảnh ở trên). Kiểm duyệt - nếu nhà cung cấp (Ví dụ: Anthropic) yêu cầu bạn kiểm duyệt yêu cầu của mình Theo thời gian, điều này sẽ xử lý các tham số khác dành riêng cho mô hình như đặt mã thông báo tối đa, định dạng lời nhắc, v.v. Chúng tôi hoan nghênh các ý tưởng/đề xuất! Phần kết luận LiteLLM đã đơn giản hóa việc gọi điện cho các nhà cung cấp LLM, với một giải pháp thay thế sẵn có cho điểm cuối của OpenAI ChatCompletion. Với các tệp cấu hình, giờ đây nó có thể cho phép bạn thêm các mô hình mới vào sản xuất mà không cần thay đổi bất kỳ mã phía máy chủ nào. Nhìn chung, LiteLLM là một lựa chọn tuyệt vời cho bất kỳ ai muốn bổ sung các mô hình không phải OpenAI vào sản xuất một cách nhanh chóng và dễ dàng. Chúng tôi đang tích cực cố gắng phát triển dự án này nên dù trình độ kỹ năng của bạn như thế nào, chúng tôi đều hoan nghênh những đóng góp! Mở ra một vấn đề nếu bạn thấy thiếu các tính năng/lỗi hoặc góp phần gây ra các vấn đề hiện có. trên GitHub nếu bạn muốn theo dõi tiến trình của chúng tôi khi có bản cập nhật mới. Gắn dấu sao cho chúng tôi