diff --git a/docs/edge/ar/concepts/flows.mdx b/docs/edge/ar/concepts/flows.mdx index 45d54114d..be4f0fae9 100644 --- a/docs/edge/ar/concepts/flows.mdx +++ b/docs/edge/ar/concepts/flows.mdx @@ -406,6 +406,48 @@ flow.kickoff() يتيح مزخرف @persist الاستمرارية التلقائية للحالة في تدفقات CrewAI، مما يسمح لك بالحفاظ على حالة التدفق عبر عمليات إعادة التشغيل أو تنفيذات سير العمل المختلفة. يمكن تطبيق هذا المزخرف على مستوى الفئة أو مستوى الدالة، مما يوفر مرونة في كيفية إدارة استمرارية الحالة. +### اختيار واجهة الاستمرارية + +SQLite هي واجهة التخزين الافتراضية. استخدم `@persist` بدون وسيطة عندما تكون الاستمرارية المحلية المعتمدة على ملف كافية. + +```python +@persist +class MyFlow(Flow[MyState]): + ... +``` + +لاختيار SQLite صراحةً، مثل التحكم في موقع ملف قاعدة البيانات، مرّر نسخة من `SQLiteFlowPersistence` إلى `@persist`: + +```python +from crewai.flow.persistence import SQLiteFlowPersistence, persist + +persistence = SQLiteFlowPersistence("flows.db") + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +لاستخدام MongoDB، ثبّت التبعية الاختيارية، واضبط سلسلة الاتصال، ثم مرّر `MongoDbFlowPersistence` صراحةً: + +```bash +uv add 'crewai[mongodb]' +# Or: pip install 'crewai[mongodb]' +export MONGODB_CONNECTION_STRING='mongodb+srv://:@/' +``` + +```python +from crewai.flow.persistence import MongoDbFlowPersistence, persist + +persistence = MongoDbFlowPersistence() + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +يستخدم `MongoDbFlowPersistence` قاعدة بيانات `flow_persistence` افتراضيًا. اضبط `MONGODB_DATABASE` أو مرّر `database_name` لاختيار قاعدة بيانات أخرى. تستخدم استمرارية MongoDB المعاملات، لذا يجب أن يكون النشر MongoDB Atlas أو مجموعة متماثلة أو عنقودًا مجزأً؛ لا تدعم خوادم MongoDB المستقلة. + ### الاستمرارية على مستوى الفئة عند التطبيق على مستوى الفئة، يقوم مزخرف @persist باستمرارية حالات جميع دوال التدفق تلقائيًا: diff --git a/docs/edge/en/concepts/flows.mdx b/docs/edge/en/concepts/flows.mdx index f4f0a95ff..2ae1186f6 100644 --- a/docs/edge/en/concepts/flows.mdx +++ b/docs/edge/en/concepts/flows.mdx @@ -409,6 +409,48 @@ By providing both unstructured and structured state management options, CrewAI F The @persist decorator enables automatic state persistence in CrewAI Flows, allowing you to maintain flow state across restarts or different workflow executions. This decorator can be applied at either the class level or method level, providing flexibility in how you manage state persistence. +### Choosing a Persistence Backend + +SQLite is the default backend. Use `@persist` without an argument when local, file-based persistence is sufficient. + +```python +@persist +class MyFlow(Flow[MyState]): + ... +``` + +To choose SQLite explicitly, for example to control the database file location, pass a `SQLiteFlowPersistence` instance to `@persist`: + +```python +from crewai.flow.persistence import SQLiteFlowPersistence, persist + +persistence = SQLiteFlowPersistence("flows.db") + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +To use MongoDB, install the optional dependency, configure a connection string, and pass `MongoDbFlowPersistence` explicitly: + +```bash +uv add 'crewai[mongodb]' +# Or: pip install 'crewai[mongodb]' +export MONGODB_CONNECTION_STRING='mongodb+srv://:@/' +``` + +```python +from crewai.flow.persistence import MongoDbFlowPersistence, persist + +persistence = MongoDbFlowPersistence() + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +`MongoDbFlowPersistence` uses the `flow_persistence` database by default. Set `MONGODB_DATABASE` or pass `database_name` to choose another database. MongoDB persistence uses transactions, so the deployment must be MongoDB Atlas, a replica set, or a sharded cluster; standalone MongoDB servers are not supported. + ### Class-Level Persistence When applied at the class level, the @persist decorator automatically persists all flow method states: diff --git a/docs/edge/ko/concepts/flows.mdx b/docs/edge/ko/concepts/flows.mdx index 5c2e21d5a..d22cc2e43 100644 --- a/docs/edge/ko/concepts/flows.mdx +++ b/docs/edge/ko/concepts/flows.mdx @@ -399,6 +399,48 @@ CrewAI Flows는 비구조적 및 구조적 상태 관리 옵션을 모두 제공 @persist 데코레이터는 CrewAI 플로우에서 자동 상태 지속성을 활성화하여, 플로우 상태를 재시작이나 다른 워크플로우 실행 간에도 유지할 수 있도록 합니다. 이 데코레이터는 클래스 수준이나 메서드 수준 모두에 적용할 수 있어, 상태 지속성을 관리하는 데 유연성을 제공합니다. +### 지속성 백엔드 선택 + +SQLite가 기본 백엔드입니다. 로컬 파일 기반 지속성으로 충분한 경우 인자 없이 `@persist`를 사용하세요. + +```python +@persist +class MyFlow(Flow[MyState]): + ... +``` + +데이터베이스 파일 위치를 제어하는 것처럼 SQLite를 명시적으로 선택하려면 `SQLiteFlowPersistence` 인스턴스를 `@persist`에 전달하세요. + +```python +from crewai.flow.persistence import SQLiteFlowPersistence, persist + +persistence = SQLiteFlowPersistence("flows.db") + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +MongoDB를 사용하려면 선택 의존성을 설치하고 연결 문자열을 설정한 뒤 `MongoDbFlowPersistence`를 명시적으로 전달하세요. + +```bash +uv add 'crewai[mongodb]' +# Or: pip install 'crewai[mongodb]' +export MONGODB_CONNECTION_STRING='mongodb+srv://:@/' +``` + +```python +from crewai.flow.persistence import MongoDbFlowPersistence, persist + +persistence = MongoDbFlowPersistence() + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +`MongoDbFlowPersistence`는 기본적으로 `flow_persistence` 데이터베이스를 사용합니다. 다른 데이터베이스를 선택하려면 `MONGODB_DATABASE`를 설정하거나 `database_name`을 전달하세요. MongoDB 지속성은 트랜잭션을 사용하므로 MongoDB Atlas, 레플리카 세트 또는 샤딩 클러스터가 필요합니다. 독립 실행형 MongoDB 서버는 지원되지 않습니다. + ### 클래스 레벨 영속성 클래스 레벨에서 @persist 데코레이터를 적용하면 모든 flow 메서드 상태가 자동으로 영속됩니다: diff --git a/docs/edge/pt-BR/concepts/flows.mdx b/docs/edge/pt-BR/concepts/flows.mdx index d70bb9774..b7845c805 100644 --- a/docs/edge/pt-BR/concepts/flows.mdx +++ b/docs/edge/pt-BR/concepts/flows.mdx @@ -399,6 +399,48 @@ Ao oferecer as duas opções de gerenciamento de estado, o CrewAI Flows permite O decorador @persist permite a persistência automática do estado nos flows do CrewAI, garantindo que você mantenha o estado do flow entre reinicializações ou execuções diferentes do workflow. Esse decorador pode ser aplicado tanto ao nível de classe, quanto ao nível de método, oferecendo flexibilidade sobre como gerenciar a persistência do estado. +### Escolhendo um Backend de Persistência + +SQLite é o backend padrão. Use `@persist` sem argumento quando a persistência local baseada em arquivo for suficiente. + +```python +@persist +class MyFlow(Flow[MyState]): + ... +``` + +Para escolher SQLite explicitamente, por exemplo para controlar o local do arquivo de banco de dados, passe uma instância de `SQLiteFlowPersistence` para `@persist`: + +```python +from crewai.flow.persistence import SQLiteFlowPersistence, persist + +persistence = SQLiteFlowPersistence("flows.db") + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +Para usar MongoDB, instale a dependência opcional, configure uma string de conexão e passe `MongoDbFlowPersistence` explicitamente: + +```bash +uv add 'crewai[mongodb]' +# Or: pip install 'crewai[mongodb]' +export MONGODB_CONNECTION_STRING='mongodb+srv://:@/' +``` + +```python +from crewai.flow.persistence import MongoDbFlowPersistence, persist + +persistence = MongoDbFlowPersistence() + +@persist(persistence) +class MyFlow(Flow[MyState]): + ... +``` + +`MongoDbFlowPersistence` usa o banco de dados `flow_persistence` por padrão. Defina `MONGODB_DATABASE` ou passe `database_name` para escolher outro banco de dados. A persistência MongoDB usa transações, portanto a implantação deve ser MongoDB Atlas, um conjunto de réplicas ou um cluster fragmentado; servidores MongoDB autônomos não são compatíveis. + ### Persistência no Nível de Classe Quando aplicado no nível da classe, o decorador @persist garante a persistência automática de todos os estados dos métodos do flow: