Cách sử dụng nhúng trong LangChain

Cach Su Dung Nhung Trong Langchain



Phần nhúng là một chỉ mục về mức độ liên quan của chuỗi văn bản và được biểu thị bằng một vectơ (danh sách) các số nguyên dấu phẩy động. Khoảng cách giữa hai vectơ đóng vai trò là thước đo mức độ liên kết chặt chẽ của chúng; khoảng cách càng nhỏ thì sự liên quan càng gần. Lớp Nhúng LangChain nhằm phục vụ như một giao diện cho các dịch vụ nhúng như OpenAI, HuggingFace và các dịch vụ khác.

Hai phương thức, embed_query() và embed_documents(), được cung cấp bởi lớp cơ sở. Cái đầu tiên trong số này hoạt động trên một tài liệu, trong khi cái còn lại có thể hoạt động trên nhiều tài liệu.

Bài viết này hiểu rõ minh họa thực tế về nhúng trong LangChain bằng cách sử dụng nhúng văn bản OpenAI.







Ví dụ: Nhận một văn bản đầu vào duy nhất bằng cách nhúng văn bản OpenAI

Đối với hình minh họa đầu tiên, chúng tôi nhập một chuỗi văn bản và truy xuất văn bản nhúng OpenAI cho chuỗi đó. Chương trình bắt đầu bằng cách cài đặt các thư viện cần thiết.



Thư viện đầu tiên mà chúng ta cần cài đặt vào dự án của mình là LangChain. Nó không đi kèm với thư viện chuẩn của Python nên chúng ta phải cài đặt riêng. Vì langchain có sẵn trên PyPi nên chúng ta có thể dễ dàng cài đặt nó bằng cách sử dụng lệnh pip trên thiết bị đầu cuối. Vì vậy, chúng tôi chạy lệnh sau để cài đặt thư viện LangChain:



$ pip cài đặt langchain

Thư viện được cài đặt ngay khi các yêu cầu được đáp ứng.





Chúng tôi cũng cần cài đặt thư viện OpenAI trong dự án của mình để có thể truy cập các mô hình OpenAI. Thư viện này có thể được khánh thành bằng cách viết lệnh pip:

$ pip cài đặt openai

Bây giờ, cả hai thư viện cần thiết đã được cài đặt vào tệp dự án của chúng tôi. Chúng ta phải nhập các mô-đun cần thiết.



từ langchain. nhúng . openai nhập khẩu OpenAIEmbeddings

nhập khẩu Bạn

Bạn . khoảng [ 'OPENAI_API_KEY' ] = 'sk-YOUR_API_KEY”

Để có được các nhúng OpenAI, chúng ta phải nhập lớp OpenAIEmbeddings từ gói “langchain.embeddings.openai”. Sau đó, chúng tôi đặt khóa API làm biến môi trường. Chúng tôi cần khóa API bí mật để truy cập các mô hình OpenAI khác nhau. Khóa này có thể được tạo từ nền tảng OpenAI. Chỉ cần đăng ký và lấy khóa bí mật từ phần “xem khóa bí mật” trong hồ sơ của bạn. Khóa này có thể được sử dụng trên các dự án khác nhau cho một khách hàng cụ thể.

Các biến môi trường được sử dụng để lưu trữ các khóa API cho một môi trường cụ thể thay vì mã hóa cứng chúng vào các hàm. Vì vậy, để đặt khóa API làm biến môi trường, chúng ta phải nhập mô-đun “os”. Phương thức os.environ() được sử dụng để đặt khóa API làm biến môi trường. Nó chứa một tên và một giá trị. Tên mà chúng tôi đặt là “OPENAI_API_KEY” và khóa bí mật được đặt thành “giá trị”.

người mẫu = OpenAIEmbeddings ( )

nhập ký tự = 'Đây là để trình diễn.'

kết cục = người mẫu. embed_query ( nhập ký tự )

in ( kết cục )

in ( chỉ một ( kết cục ) )

Chúng tôi đã giao tiếp với trình bao bọc nhúng OpenAI. Sau đó, chúng tôi gọi hàm tạo của lớp OpenAIEmbedding. OpenAI cung cấp nhiều mô hình nhúng nhưng bạn phải trả tiền cho chúng. Ở đây, chúng tôi sử dụng mô hình nhúng mặc định của OpenAI, tức là text-embedding-ada-002, miễn phí. Khi bạn không cung cấp bất kỳ tên kiểu máy nào làm tham số, kiểu máy mặc định sẽ được sử dụng.

Sau đó, chúng tôi chỉ định văn bản mà chúng tôi phải nhúng. Văn bản được chỉ định là 'Đây là để trình diễn.' và lưu trữ nó trong biến input_text. Sau đó, phương thức embed_query() để nhúng văn bản đã cung cấp được gọi với mô hình được sử dụng và input_text có chuỗi văn bản để truy xuất nội dung nhúng được cung cấp dưới dạng tham số. Các phần nhúng đã truy xuất được gán cho đối tượng kết quả.

Cuối cùng, để hiển thị kết quả, chúng ta có phương thức print() của Python. Chúng ta chỉ cần chuyển đối tượng lưu trữ giá trị mà chúng ta muốn hiển thị cho phương thức print(). Do đó, chúng tôi gọi chức năng này hai lần; đầu tiên để hiển thị danh sách các số thực và thứ hai để in ra độ dài của các giá trị này bằng cách sử dụng phương thức len() với nó.

Danh sách các giá trị thả nổi có thể được nhìn thấy trong ảnh chụp nhanh sau đây với độ dài của các giá trị này:

Ví dụ: Lấy nhiều văn bản/tài liệu đầu vào bằng tính năng nhúng văn bản OpenAI

Ngoài việc nhận nhúng cho một văn bản đầu vào, chúng tôi cũng có thể truy xuất nó cho nhiều chuỗi đầu vào. Chúng tôi thực hiện điều này vào hình minh họa này.

Chúng tôi đã cài đặt các thư viện trong hình minh họa trước. Một thư viện khác mà chúng ta cần cài đặt ở đây là thư viện tiktoken của Python. Viết lệnh trên thiết bị đầu cuối để cài đặt nó:

$ pip cài đặt tiktoken

Gói tiktoken là mã thông báo mã hóa cặp byte. Nó được sử dụng với các mô hình OpenAI và chia nhỏ văn bản thành các mã thông báo. Điều này được sử dụng vì các chuỗi được cung cấp đôi khi hơi dài đối với mô hình OpenAI đã chỉ định. Vì vậy, nó chia tách văn bản và mã hóa chúng thành các mã thông báo. Bây giờ, hãy làm việc với dự án chính.

từ langchain. nhúng . openai nhập khẩu OpenAIEmbeddings

người mẫu = OpenAIEmbeddings ( openai_api_key = 'sk-YOUR_API_KEY”

chuỗi = ['
Cái này cuộc biểu tình. ', ' Cái này sợi dây Mà còn cuộc biểu tình. ', ' Cái này bản trình diễn khác sợi dây . ', ' Cái này cuối cùng sợi dây . ']

kết quả = model.embed_documents(strings)

in (kết quả)

in(len(kết quả))

Lớp OpenAIEmbeddings được nhập từ gói “langchain.embeddings.openai”. Trong ví dụ trước, chúng tôi đặt khóa API làm biến môi trường. Nhưng đối với cái này, chúng tôi chuyển nó trực tiếp đến hàm tạo. Vì vậy, chúng tôi không phải nhập mô-đun “os” ở đây.

Sau khi gọi mô hình OpenAI là OpenAIEmbeddings, chúng tôi chuyển khóa API bí mật cho mô hình đó. Trong dòng tiếp theo, các chuỗi văn bản được chỉ định. Ở đây, chúng tôi lưu trữ bốn chuỗi văn bản trong chuỗi đối tượng. Các chuỗi này là “Đây là để trình diễn”, “Chuỗi này cũng để trình diễn”, “Đây là một chuỗi trình diễn khác” và “Đây là chuỗi cuối cùng”.

Bạn có thể chỉ định nhiều chuỗi bằng cách tách từng chuỗi bằng dấu phẩy. Trong ví dụ trước, phương thức embed_text() được gọi nhưng chúng ta không thể sử dụng nó ở đây vì nó chỉ hoạt động với một chuỗi văn bản. Để nhúng nhiều chuỗi, phương thức mà chúng ta có là embed_document(). Vì vậy, chúng tôi gọi nó với mô hình OpenAI được chỉ định và các chuỗi văn bản làm đối số. Đầu ra được giữ trong đối tượng kết quả. Cuối cùng, để hiển thị đầu ra, phương thức print() của Python được sử dụng với kết quả đối tượng làm tham số của nó. Ngoài ra, chúng tôi muốn xem độ dài của các giá trị nổi này. Do đó, chúng ta gọi phương thức len() trong phương thức print().

Đầu ra đã truy xuất được cung cấp trong hình ảnh sau:

Phần kết luận

Bài đăng này đã thảo luận về khái niệm nhúng trong LangChain. Chúng tôi đã học nhúng là gì và nó hoạt động như thế nào. Một triển khai thực tế của việc nhúng các chuỗi văn bản được hiển thị ở đây. Chúng tôi đã thực hiện hai minh họa. Ví dụ đầu tiên hoạt động về việc truy xuất phần nhúng của một chuỗi văn bản và ví dụ thứ hai hiểu cách lấy phần nhúng của nhiều chuỗi đầu vào bằng cách sử dụng mô hình nhúng OpenAI.