kenken999's picture
create duck db
886d8e9

A newer version of the Gradio SDK is available: 5.6.0

Upgrade

● Open Interpreter

Discord ES doc JA doc ZH doc IN doc License

chạy mô hình ngôn ngữ trí tuệ nhân tạo trên máy tính của bạn.
Mã nguồn mở và ứng dụng phát triển dựa trên code của OpenAI.

Quyền truy cập sớm dành cho máy tính cá nhân‎ ‎ |‎ ‎ Tài liệu đọc tham khảo


poster


pip install open-interpreter
interpreter

Open Interpreter Chạy LLMs trên máy tính cục bộ (Có thể sử dụng ngôn ngữ Python, Javascript, Shell, và nhiều hơn thế). Bạn có thể nói chuyện với Open Interpreter thông qua giao diện giống với ChatGPT ngay trên terminal của bạn bằng cách chạy lệnh $ interpreter sau khi tải thành công.

Các tính năng chung giao diện ngôn ngữ mang llại

  • Tạo và chỉnh sửa ảnh, videos, PDF, vân vân...
  • Điều khiển trình duyệt Chrome để tiến hành nghiên cứu
  • Vẽ, làm sạch và phân tích các tập dữ liệu lớn (large datasets)
  • ...vân vân.

⚠️ Lưu ý: Bạn sẽ được yêu cầu phê duyệt mã trước khi chạy.


Thử nghiệm

https://github.com/KillianLucas/open-interpreter/assets/63927363/37152071-680d-4423-9af3-64836a6f7b60

Bản thử nghiệm có sẵn trên Google Colab:

Mở trong Colab

Đi kèm với ứng dụng mẫu qua tương tác giọng nói (Lấy cảm hứng từ Cô ấy (Giọng nữ)):

Mở trong Colab

Hướng dẫn khởi dộng ngắn

pip install open-interpreter

Terminal

Sau khi cài đặt, chạy dòng lệnh interpreter:

interpreter

Python

from interpreter import interpreter

interpreter.chat("Vẽ giá cổ phiếu đã bình hoá của AAPL và META ") # Chạy trên 1 dòng lệnh
interpreter.chat() # Khởi động chat có khả năng tương tác

So sánh Code Interpreter của ChatGPT

Bản phát hành của OpenAI Code Interpreter sử dụng GPT-4 tăng khả năng hoàn thiện vấn đề thực tiễn với ChatGPT.

Tuy nhiên, dịch vụ của OpenAI được lưu trữ, mã nguồn đóng, và rất hạn chế:


Open Interpreter khắc phục những hạn chế này bằng cách chạy cục bộ trobộ môi trường máy tính của bạn. Nó có toàn quyền truy cập vào Internet, không bị hạn chế về thời gian hoặc kích thước tệp và có thể sử dụng bất kỳ gói hoặc thư viện nào.

Đây là sự kết hợp sức mạnh của mã nguồn của GPT-4 với tính linh hoạt của môi trường phát triển cục bộ của bạn.

Dòng lệnh

Update: Cập nhật trình tạo lệnh (0.1.5) giới thiệu tính năng trực tuyến:

message = "Chúng ta đang ở trên hệ điều hành nào?"

for chunk in interpreter.chat(message, display=False, stream=True):
  print(chunk)

Trò chuyện tương tác

Để tạo một cuộc trò chuyện tương tác từ terminal của bạn, chạy interpreter bằng dòng lệnh:

interpreter

hoặc interpreter.chat() từ file có đuôi .py :

interpreter.chat()

Bạn cũng có thể phát trực tuyến từng đoạn:

message = "Chúng ta đang chạy trên hệ điều hành nào?"

for chunk in interpreter.chat(message, display=False, stream=True):
  print(chunk)

Trò chuyện lập trình được

Để kiểm soát tốt hơn, bạn chuyển tin nhắn qua .chat(message):

interpreter.chat("Truyền phụ đề tới tất cả videos vào /videos.")

# ... Truyền đầu ra đến thiết bị đầu cuối của bạn (terminal) hoàn thành tác vụ ...

interpreter.chat("Nhìn đẹp đấy nhưng bạn có thể làm cho phụ đề lớn hơn được không?")

# ...

Tạo một cuộc trò chuyện mới:

Trong Python, Open Interpreter ghi nhớ lịch sử hội thoại, nếu muốn bắt đầu lại từ đầu, bạn có thể cài thứ:

interpreter.messages = []

Lưu và khôi phục cuộc trò chuyện

interpreter.chat() trả về danh sách tin nhắn, có thể được sử dụng để tiếp tục cuộc trò chuyện với interpreter.messages = messages:

messages = interpreter.chat("Tên của tôi là Killian.") # Lưu tin nhắn tới 'messages'
interpreter.messages = [] # Khởi động lại trình phiên dịch ("Killian" sẽ bị lãng quên)

interpreter.messages = messages # Tiếp tục cuộc trò chuyện từ 'messages' ("Killian" sẽ được ghi nhớ)

Cá nhân hoá tin nhắn từ hệ thống

Bạn có thể kiếm tra và điều chỉnh tin nhắn hệ thống từ Optừ Interpreter để mở rộng chức năng của nó, thay đổi quyền, hoặc đưa cho nó nhiều ngữ cảnh hơn.

interpreter.system_message += """
Chạy shell commands với -y để người dùng không phải xác nhận chúng.
"""
print(interpreter.system_message)

Thay đổi mô hình ngôn ngữ

Open Interpreter sử dụng mô hình LiteLLM để kết nối tới các mô hình ngôn ngữ được lưu trữ trước đó.

Bạn có thể thay đổi mô hình ngôn ngữ bằng cách thay đổi tham số mô hình:

interpreter --model gpt-3.5-turbo
interpreter --model claude-2
interpreter --model command-nightly

Ở trong Python, đổi model bằng cách thay đổi đối tượng:

interpreter.llm.model = "gpt-3.5-turbo"

Tìm tên chuỗi "mô hình" phù hợp cho mô hình ngôn ngữ của bạn ở đây.

Chạy Open Interpreter trên máy cục bộ

Open Interpreter có thể sử dụng máy chủ tương thích với OpenAI để chạy các mô hình cục bộ. (LM Studio, jan.ai, ollama, v.v.)

Chỉ cần chạy interpreter với URL api_base của máy chủ suy luận của bạn (đối với LM studio, nó là http://localhost:1234/v1 theo mặc định):

trình thông dịch --api_base "http://localhost:1234/v1" --api_key "fake_key"

Ngoài ra, bạn có thể sử dụng Llamafile mà không cần cài đặt bất kỳ phần mềm bên thứ ba nào chỉ bằng cách chạy

thông dịch viên --local

để biết hướng dẫn chi tiết hơn, hãy xem video này của Mike Bird

Để chạy LM Studio ở chế độ nền.

  1. Tải https://lmstudio.ai/ và khởi động.
  2. Chọn một mô hình rồi nhấn ↓ Download.
  3. Nhấn vào nút ↔️ ở bên trái (dưới 💬).
  4. Chọn mô hình của bạn ở phía trên, rồi nhấn chạy Start Server.

Một khi server chạy, bạn có thể bắt đầu trò chuyện với Open Interpreter.

Lưu ý: Chế độ cục bộ chỉnh context_window của bạn tới 3000, và max_tokens của bạn tới 600. Nếu mô hình của bạn có các yêu cầu khác, thì hãy chỉnh các tham số thủ công (xem bên dưới).

Cửa sổ ngữ cảnh (Context Window), (Max Tokens)

Bạn có thể thay đổi max_tokenscontext_window (ở trong các) of locally running models.

Ở chế độ cục bộ, các cửa sổ ngữ cảnh sẽ tiêu ít RAM hơn, vậy nên chúng tôi khuyến khích dùng cửa sổ nhỏ hơn (~1000) nếu như nó chạy không ổn định / hoặc nếu nó chậm. Đảm bảo rằng max_tokens ít hơn context_window.

interpreter --local --max_tokens 1000 --context_window 3000

Chế độ sửa lỗi

Để giúp đóng góp kiểm tra Open Interpreter, thì chế độ --verbose hơi dài dòng.

Bạn có thể khởi động chế độ sửa lỗi bằng cách sử dụng cờ (interpreter --verbose), hoặc mid-chat:

$ interpreter
...
> %verbose true <- Khởi động chế độ gỡ lỗi

> %verbose false <- Tắt chế độ gỡ lỗi

Lệnh chế độ tương tác

Trong chế độ tương tác, bạn có thể sử dụng những dòng lệnh sau để cải thiện trải nghiệm của mình. Đây là danh sách các dòng lệnh có sẵn:

Các lệnh có sẵn:

  • %verbose [true/false]: Bật chế độ gỡ lỗi. Có hay không có true đều khởi động chế độ gỡ lỗi. Với false thì nó tắt chế độ gỡ lỗi.
  • %reset: Khởi động lại toàn bộ phiên trò chuyện hiện tại.
  • %undo: Xóa tin nhắn của người dùng trước đó và phản hồi của AI khỏi lịch sử tin nhắn.
  • %save_message [path]: Lưu tin nhắn vào một đường dẫn JSON được xác định từ trước. Nếu không có đường dẫn nào được cung cấp, nó sẽ mặc định là messages.json.
  • %load_message [path]: Tải tin nhắn từ một đường dẫn JSON được chỉ định. Nếu không có đường dẫn nào được cung cấp, nó sẽ mặc định là messages.json.
  • %tokens [prompt]: (Experimental) Tính toán các token sẽ được gửi cùng với lời nhắc tiếp theo dưới dạng ngữ cảnh và hao tổn. Tùy chọn tính toán token và hao tổn ước tính của một prompt nếu được cung cấp. Dựa vào hàm cost_per_token() của mô hình LiteLLM để tính toán hao tổn.
  • %help: Hiện lên trợ giúp cho cuộc trò chuyện.

Cấu hình cài

Open Interpreter cho phép bạn thiết lập các tác vụ mặc định bằng cách sử dụng file config.yaml.

Điều này cung cấp một cách linh hoạt để định cấu hình trình thông dịch mà không cần thay đổi đối số dòng lệnh mỗi lần

Chạy lệnh sau để mở tệp cấu hình:

interpreter --config

Cấu hình cho nhiều tệp

Open Interpreter hỗ trợ nhiều file config.yaml, cho phép bạn dễ dàng chuyển đổi giữa các cấu hình thông qua lệnh --config_file.

Chú ý: --config_file chấp nhận tên tệp hoặc đường dẫn tệp. Tên tệp sẽ sử dụng thư mục cấu hình mặc định, trong khi đường dẫn tệp sẽ sử dụng đường dẫn đã chỉ định.

Để tạo hoặc chỉnh sửa cấu hình mới, hãy chạy:

interpreter --config --config_file $config_path

Để yêu cầu Open Interpreter chạy một tệp cấu hình cụ thể, hãy chạy:

interpreter --config_file $config_path

Chú ý: Thay đổi $config_path với tên hoặc đường dẫn đến tệp cấu hình của bạn.

Ví dụ CLI
  1. Tạo mới một file config.turbo.yaml
    interpreter --config --config_file config.turbo.yaml
    
  2. Chạy file config.turbo.yamlđể đặt lại model thành gpt-3.5-turbo
  3. Chạy Open Interpreter với cấu hình `config.turbo.yaml
    interpreter --config_file config.turbo.yaml
    
Ví dụ Python

Bạn cũng có thể tải các tệp cấu hình khi gọi Open Interpreter từ tập lệnh Python:

import os
from interpreter import interpreter

currentPath = os.path.dirname(os.path.abspath(__file__))
config_path=os.path.join(currentPath, './config.test.yaml')

interpreter.extend_config(config_path=config_path)

message = "What operating system are we on?"

for chunk in interpreter.chat(message, display=False, stream=True):
  print(chunk)

Máy chủ FastAPI mẫu

Bản cập nhật trình tạo cho phép điều khiển Trình thông dịch mở thông qua các điểm cuối HTTP REST:

# server.py

from fastapi import FastAPI
from fastapi.responses import StreamingResponse
from interpreter import interpreter

app = FastAPI()

@app.get("/chat")
def chat_endpoint(message: str):
    def event_stream():
        for result in interpreter.chat(message, stream=True):
            yield f"data: {result}\n\n"

    return StreamingResponse(event_stream(), media_type="text/event-stream")

@app.get("/history")
def history_endpoint():
    return interpreter.messages
pip install fastapi uvicorn
uvicorn server:app --reload

Hướng dẫn an toàn

Vì mã được tạo được thực thi trong môi trường cục bộ của bạn nên nó có thể tương tác với các tệp và cài đặt hệ thống của bạn, có khả năng dẫn đến các kết quả không mong muốn như mất dữ liệu hoặc rủi ro bảo mật.

⚠️ Open Interpreter sẽ yêu cầu xác nhận của người dùng trước khi chạy code.

Bạn có thể chạy interpreter -y hoặc đặt interpreter.auto_run = True để bỏ qua xác nhận này, trong trường hợp đó:

  • Hãy thận trọng khi yêu cầu các lệnh sửa đổi tệp hoặc cài đặt hệ thống.
  • Theo dõi Open Interpreter giống như một chiếc ô tô tự lái và sẵn sàng kết thúc quá trình bằng cách đóng terminal của bạn.
  • Cân nhắc việc chạy Open Interpreter trong môi trường bị hạn chế như Google Colab hoặc Replit. Những môi trường này biệt lập hơn, giảm thiểu rủi ro khi chạy code tùy ý.

Đây là hỗ trợ thử nghiệm cho chế độ an toàn giúp giảm thiểu rủi ro.

Nó hoạt động thế nào?

Open Interpreter trang bị mô hình ngôn ngữ gọi hàm với một hàm exec(), chấp nhận một language (như "Python" hoặc "JavaScript") và code để chạy.

Sau đó, chúng tôi truyền trực tuyến thông báo, mã của mô hình và kết quả đầu ra của hệ thống của bạn đến terminal dưới dạng Markdown.

Đóng góp

Cảm ơn bạn đã quan tâm đóng góp! Chúng tôi hoan nghênh sự tham gia của cộng đồng.

Vui lòng xem Hướng dẫn đóng góp để biết thêm chi tiết cách tham gia.

Giấy phép

Open Interpreter được cấp phép theo Giấy phép MIT. Bạn được phép sử dụng, sao chép, sửa đổi, phân phối, cấp phép lại và bán các bản sao của phần mềm.

Lưu ý: Phần mềm này không liên kết với OpenAI.

Có quyền truy cập vào một lập trình viên cấp dưới làm việc nhanh chóng trong tầm tay bạn ... có thể khiến quy trình làm việc mới trở nên dễ dàng và hiệu quả, cũng như mở ra những lợi ích của việc lập trình cho người mới.

Phát hành trình thông dịch mã của OpenAI