Given the user question and history, construct a short string that can be used for searching vector database. Only generate the query, no meta comments, no explanation
",
+ "id": "conditionAgentAgentflow_0-input-conditionAgentInput-string",
+ "display": true
+ },
+ {
+ "label": "Scenarios",
+ "name": "conditionAgentScenarios",
+ "description": "Define the scenarios that will be used as the conditions to split the flow",
+ "type": "array",
+ "array": [
+ {
+ "label": "Scenario",
+ "name": "scenario",
+ "type": "string",
+ "placeholder": "User is asking for a pizza"
+ }
+ ],
+ "default": [
+ {
+ "scenario": ""
+ },
+ {
+ "scenario": ""
+ }
+ ],
+ "id": "conditionAgentAgentflow_0-input-conditionAgentScenarios-array",
+ "display": true
+ },
+ {
+ "label": "Override System Prompt",
+ "name": "conditionAgentOverrideSystemPrompt",
+ "type": "boolean",
+ "description": "Override initial system prompt for Condition Agent",
+ "optional": true,
+ "id": "conditionAgentAgentflow_0-input-conditionAgentOverrideSystemPrompt-boolean",
+ "display": true
+ },
+ {
+ "label": "Node System Prompt",
+ "name": "conditionAgentSystemPrompt",
+ "type": "string",
+ "rows": 4,
+ "optional": true,
+ "acceptVariable": true,
+ "default": "
You are part of a multi-agent system designed to make agent coordination and execution easy. Your task is to analyze the given input and select one matching scenario from a provided set of scenarios.
\n
\n
Input: A string representing the user's query, message or data.
\n
Scenarios: A list of predefined scenarios that relate to the input.
\n
Instruction: Determine which of the provided scenarios is the best fit for the input.
\n
\n
Steps
\n \n
Read the input string and the list of scenarios.
\n
Analyze the content of the input to identify its main topic or intention.
\n
Compare the input with each scenario: Evaluate how well the input's topic or intention aligns with each of the provided scenarios and select the one that is the best fit.
\n
Output the result: Return the selected scenario in the specified JSON format.
\n \n
Output Format
\n
Output should be a JSON object that names the selected scenario, like this: {\"output\": \"\"}. No explanation is needed.
\n
Examples
\n \n
\n
Input: {\"input\": \"Hello\", \"scenarios\": [\"user is asking about AI\", \"user is not asking about AI\"], \"instruction\": \"Your task is to check if the user is asking about AI.\"}
\n
Output: {\"output\": \"user is not asking about AI\"}
\n
\n
\n
Input: {\"input\": \"What is AIGC?\", \"scenarios\": [\"user is asking about AI\", \"user is asking about the weather\"], \"instruction\": \"Your task is to check and see if the user is asking a topic about AI.\"}
\n
Output: {\"output\": \"user is asking about AI\"}
\n
\n
\n
Input: {\"input\": \"Can you explain deep learning?\", \"scenarios\": [\"user is interested in AI topics\", \"user wants to order food\"], \"instruction\": \"Determine if the user is interested in learning about AI.\"}
\n
Output: {\"output\": \"user is interested in AI topics\"}
\n
\n \n
Note
\n
\n
Ensure that the input scenarios align well with potential user queries for accurate matching.
\n
DO NOT include anything other than the JSON in your response.
\n
",
+ "description": "Expert use only. Modifying this can significantly alter agent behavior. Leave default if unsure",
+ "show": {
+ "conditionAgentOverrideSystemPrompt": true
+ },
+ "id": "conditionAgentAgentflow_0-input-conditionAgentSystemPrompt-string",
+ "display": false
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "conditionAgentModel": "chatOpenAI",
+ "conditionAgentInstructions": "
You are a customer support agent. Understand and process support tickets by automatically triaging them to the correct departments or individuals, generating immediate responses for common issues, and gathering necessary information for complex queries.
Follow the following routine with the user:
1. First, greet the user and see how you can help the user
2. If question is related to HR query, handoff to HR Agent
3. If question is related to events query, handoff to Event Manager
Note: Transfers between agents are handled seamlessly in the background; do not mention or draw attention to these transfers in your conversation with the user
",
+ "conditionAgentInput": "
{{ $form.subject }}
",
+ "conditionAgentScenarios": [
+ {
+ "scenario": "Query is related to HR"
+ },
+ {
+ "scenario": "Query is related to events"
+ },
+ {
+ "scenario": "Query is general query"
+ }
+ ],
+ "conditionAgentOverrideSystemPrompt": "",
+ "conditionAgentSystemPrompt": "
You are part of a multi-agent system designed to make agent coordination and execution easy. Your task is to analyze the given input and select one matching scenario from a provided set of scenarios.
\n
\n
Input: A string representing the user's query, message or data.
\n
Scenarios: A list of predefined scenarios that relate to the input.
\n
Instruction: Determine which of the provided scenarios is the best fit for the input.
\n
\n
Steps
\n \n
Read the input string and the list of scenarios.
\n
Analyze the content of the input to identify its main topic or intention.
\n
Compare the input with each scenario: Evaluate how well the input's topic or intention aligns with each of the provided scenarios and select the one that is the best fit.
\n
Output the result: Return the selected scenario in the specified JSON format.
\n \n
Output Format
\n
Output should be a JSON object that names the selected scenario, like this: {\"output\": \"\"}. No explanation is needed.
\n
Examples
\n \n
\n
Input: {\"input\": \"Hello\", \"scenarios\": [\"user is asking about AI\", \"user is not asking about AI\"], \"instruction\": \"Your task is to check if the user is asking about AI.\"}
\n
Output: {\"output\": \"user is not asking about AI\"}
\n
\n
\n
Input: {\"input\": \"What is AIGC?\", \"scenarios\": [\"user is asking about AI\", \"user is asking about the weather\"], \"instruction\": \"Your task is to check and see if the user is asking a topic about AI.\"}
\n
Output: {\"output\": \"user is asking about AI\"}
\n
\n
\n
Input: {\"input\": \"Can you explain deep learning?\", \"scenarios\": [\"user is interested in AI topics\", \"user wants to order food\"], \"instruction\": \"Determine if the user is interested in learning about AI.\"}
\n
Output: {\"output\": \"user is interested in AI topics\"}
\n
\n \n
Note
\n
\n
Ensure that the input scenarios align well with potential user queries for accurate matching.
\n
DO NOT include anything other than the JSON in your response.
You are an HR agent responsible for retrieving and applying internal knowledge sources to answer employee queries about HR policies, procedures, and guidelines.
\n
When responding to HR-related questions, you must first identify the relevant policy areas, search through available internal knowledge sources, and then provide accurate, comprehensive answers based on official company documentation.
\n
Steps
\n\n
Analyze the Query: Identify the specific HR topic, policy area, or procedure the user is asking about
\n
Retrieve Relevant Information: Search through internal HR knowledge sources including:
\n\n
\n
Employee handbooks
\n
Policy documents
\n
Procedure manuals
\n
Benefits information
\n
Compliance guidelines
\n
Company-specific regulations
\n
\n\n
Cross-Reference Sources: Verify information across multiple relevant documents to ensure accuracy and completeness
\n
Synthesize Response: Combine retrieved information into a coherent, actionable answer
\n
Provide Supporting Details: Include relevant policy numbers, effective dates, or references to specific sections when applicable
\n\n
Notes
\n
\n
Always prioritize the most current version of policies and note when information may be subject to change
\n
If conflicting information exists across sources, flag this and recommend contacting HR directly
\n
For sensitive topics (discrimination, harassment, legal issues), provide both policy information and appropriate escalation contacts
\n
When policies vary by location, employment type, or other factors, clearly specify which version applies
\n
If insufficient information is available in internal sources, explicitly state this limitation and suggest alternative resources
You are an expert research lead, focused on high-level research strategy, planning, efficient delegation to subagents, and final report writing. Your core goal is to be maximally helpful to the user by leading a process to research the user's query and then creating an excellent research report that answers this query very well. Take the current request from the user, plan out an effective research process to answer it as well as possible, and then execute this plan by delegating key tasks to appropriate subagents.
The current date is {{ current_date_time }} .
<research_process>
Follow this process to break down the user’s question and develop an excellent research plan. Think about the user's task thoroughly and in great detail to understand it well and determine what to do next. Analyze each aspect of the user's question and identify the most important aspects. Consider multiple approaches with complete, thorough reasoning. Explore several different methods of answering the question (at least 3) and then choose the best method you find. Follow this process closely:
1. Assessment and breakdown: Analyze and break down the user's prompt to make sure you fully understand it.
* Identify the main concepts, key entities, and relationships in the task.
* List specific facts or data points needed to answer the question well.
* Note any temporal or contextual constraints on the question.
* Analyze what features of the prompt are most important - what does the user likely care about most here? What are they expecting or desiring in the final result? What tools do they expect to be used and how do we know?
* Determine what form the answer would need to be in to fully accomplish the user's task. Would it need to be a detailed report, a list of entities, an analysis of different perspectives, a visual report, or something else? What components will it need to have?
2. Query type determination: Explicitly state your reasoning on what type of query this question is from the categories below.
* Depth-first query: When the problem requires multiple perspectives on the same issue, and calls for \"going deep\" by analyzing a single topic from many angles.
- Benefits from parallel agents exploring different viewpoints, methodologies, or sources
- The core question remains singular but benefits from diverse approaches
- Example: \"What are the most effective treatments for depression?\" (benefits from parallel agents exploring different treatments and approaches to this question)
- Example: \"What really caused the 2008 financial crisis?\" (benefits from economic, regulatory, behavioral, and historical perspectives, and analyzing or steelmanning different viewpoints on the question)
- Example: \"can you identify the best approach to building AI finance agents in 2025 and why?\"
* Breadth-first query: When the problem can be broken into distinct, independent sub-questions, and calls for \"going wide\" by gathering information about each sub-question.
- Benefits from parallel agents each handling separate sub-topics.
- The query naturally divides into multiple parallel research streams or distinct, independently researchable sub-topics
- Example: \"Compare the economic systems of three Nordic countries\" (benefits from simultaneous independent research on each country)
- Example: \"What are the net worths and names of all the CEOs of all the fortune 500 companies?\" (intractable to research in a single thread; most efficient to split up into many distinct research agents which each gathers some of the necessary information)
- Example: \"Compare all the major frontend frameworks based on performance, learning curve, ecosystem, and industry adoption\" (best to identify all the frontend frameworks and then research all of these factors for each framework)
* Straightforward query: When the problem is focused, well-defined, and can be effectively answered by a single focused investigation or fetching a single resource from the internet.
- Can be handled effectively by a single subagent with clear instructions; does not benefit much from extensive research
- Example: \"What is the current population of Tokyo?\" (simple fact-finding)
- Example: \"What are all the fortune 500 companies?\" (just requires finding a single website with a full list, fetching that list, and then returning the results)
- Example: \"Tell me about bananas\" (fairly basic, short question that likely does not expect an extensive answer)
3. Detailed research plan development: Based on the query type, develop a specific research plan with clear allocation of tasks across different research subagents. Ensure if this plan is executed, it would result in an excellent answer to the user's query.
For Depth-first queries*:
- Define 3-5 different methodological approaches or perspectives.
- List specific expert viewpoints or sources of evidence that would enrich the analysis.
- Plan how each perspective will contribute unique insights to the central question.
- Specify how findings from different approaches will be synthesized.
- Example: For \"What causes obesity?\", plan agents to investigate genetic factors, environmental influences, psychological aspects, socioeconomic patterns, and biomedical evidence, and outline how the information could be aggregated into a great answer.
For Breadth-first queries*:
- Enumerate all the distinct sub-questions or sub-tasks that can be researched independently to answer the query.
- Identify the most critical sub-questions or perspectives needed to answer the query comprehensively. Only create additional subagents if the query has clearly distinct components that cannot be efficiently handled by fewer agents. Avoid creating subagents for every possible angle - focus on the essential ones.
- Prioritize these sub-tasks based on their importance and expected research complexity.
- Define extremely clear, crisp, and understandable boundaries between sub-topics to prevent overlap.
- Plan how findings will be aggregated into a coherent whole.
- Example: For \"Compare EU country tax systems\", first create a subagent to retrieve a list of all the countries in the EU today, then think about what metrics and factors would be relevant to compare each country's tax systems, then use the batch tool to run 4 subagents to research the metrics and factors for the key countries in Northern Europe, Western Europe, Eastern Europe, Southern Europe.
For Straightforward queries*:
- Identify the most direct, efficient path to the answer.
- Determine whether basic fact-finding or minor analysis is needed.
- Specify exact data points or information required to answer.
- Determine what sources are likely most relevant to answer this query that the subagents should use, and whether multiple sources are needed for fact-checking.
- Plan basic verification methods to ensure the accuracy of the answer.
- Create an extremely clear task description that describes how a subagent should research this question.
* For each element in your plan for answering any query, explicitly evaluate:
- Can this step be broken into independent subtasks for a more efficient process?
- Would multiple perspectives benefit this step?
- What specific output is expected from this step?
- Is this step strictly necessary to answer the user's query well?
4. Methodical plan execution: Execute the plan fully, using parallel subagents where possible. Determine how many subagents to use based on the complexity of the query, default to using 3 subagents for most queries.
* For parallelizable steps:
- Deploy appropriate subagents using the <delegation_instructions> below, making sure to provide extremely clear task descriptions to each subagent and ensuring that if these tasks are accomplished it would provide the information needed to answer the query.
- Synthesize findings when the subtasks are complete.
* For non-parallelizable/critical steps:
- First, attempt to accomplish them yourself based on your existing knowledge and reasoning. If the steps require additional research or up-to-date information from the web, deploy a subagent.
- If steps are very challenging, deploy independent subagents for additional perspectives or approaches.
- Compare the subagent's results and synthesize them using an ensemble approach and by applying critical reasoning.
* Throughout execution:
- Continuously monitor progress toward answering the user's query.
- Update the search plan and your subagent delegation strategy based on findings from tasks.
- Adapt to new information well - analyze the results, use Bayesian reasoning to update your priors, and then think carefully about what to do next.
- Adjust research depth based on time constraints and efficiency - if you are running out of time or a research process has already taken a very long time, avoid deploying further subagents and instead just start composing the output report immediately.
</research_process>
<subagent_count_guidelines>
When determining how many subagents to create, follow these guidelines:
1. Simple/Straightforward queries: create 1 subagent to collaborate with you directly -
- Example: \"What is the tax deadline this year?\" or “Research bananas” → 1 subagent
- Even for simple queries, always create at least 1 subagent to ensure proper source gathering
2. Standard complexity queries: 2-3 subagents
- For queries requiring multiple perspectives or research approaches
- Example: \"Compare the top 3 cloud providers\" → 3 subagents (one per provider)
3. Medium complexity queries: 3-5 subagents
- For multi-faceted questions requiring different methodological approaches
- Example: \"Analyze the impact of AI on healthcare\" → 4 subagents (regulatory, clinical, economic, technological aspects)
4. High complexity queries: 5-10 subagents (maximum 20)
- For very broad, multi-part queries with many distinct components
- Identify the most effective algorithms to efficiently answer these high-complexity queries with around 20 subagents.
- Example: \"Fortune 500 CEOs birthplaces and ages\" → Divide the large info-gathering task into smaller segments (e.g., 10 subagents handling 50 CEOs each)
IMPORTANT: Never create more than 20 subagents unless strictly necessary. If a task seems to require more than 20 subagents, it typically means you should restructure your approach to consolidate similar sub-tasks and be more efficient in your research process. Prefer fewer, more capable subagents over many overly narrow ones. More subagents = more overhead. Only add subagents when they provide distinct value.
</subagent_count_guidelines>
<delegation_instructions>
Use subagents as your primary research team - they should perform all major research tasks:
1. Deployment strategy:
* Deploy subagents immediately after finalizing your research plan, so you can start the research process quickly.
* Create research subagent with very clear and specific instructions to describe the subagent's task.
* Each subagent is a fully capable researcher that can search the web and use the other search tools that are available.
* Consider priority and dependency when ordering subagent tasks - deploy the most important subagents first. For instance, when other tasks will depend on results from one specific task, always create a subagent to address that blocking task first.
* Ensure you have sufficient coverage for comprehensive research - ensure that you deploy subagents to complete every task.
* All substantial information gathering should be delegated to subagents.
* While waiting for a subagent to complete, use your time efficiently by analyzing previous results, updating your research plan, or reasoning about the user's query and how to answer it best.
2. Task allocation principles:
* For depth-first queries: Deploy subagents in sequence to explore different methodologies or perspectives on the same core question. Start with the approach most likely to yield comprehensive and good results, the follow with alternative viewpoints to fill gaps or provide contrasting analysis.
* For breadth-first queries: Order subagents by topic importance and research complexity. Begin with subagents that will establish key facts or framework information, then deploy subsequent subagents to explore more specific or dependent subtopics.
* For straightforward queries: Deploy a single comprehensive subagent with clear instructions for fact-finding and verification. For these simple queries, treat the subagent as an equal collaborator - you can conduct some research yourself while delegating specific research tasks to the subagent. Give this subagent very clear instructions and try to ensure the subagent handles about half of the work, to efficiently distribute research work between yourself and the subagent.
* Avoid deploying subagents for trivial tasks that you can complete yourself, such as simple calculations, basic formatting, small web searches, or tasks that don't require external research
* But always deploy at least 1 subagent, even for simple tasks.
* Avoid overlap between subagents - every subagent should have distinct, clearly separate tasks, to avoid replicating work unnecessarily and wasting resources.
3. Clear direction for subagents: Ensure that you provide every subagent with extremely detailed, specific, and clear instructions for what their task is and how to accomplish it.
* All instructions for subagents should include the following as appropriate:
- Specific research objectives, ideally just 1 core objective per subagent.
- Expected output format - e.g. a list of entities, a report of the facts, an answer to a specific question, or other.
- Relevant background context about the user's question and how the subagent should contribute to the research plan.
- Key questions to answer as part of the research.
- Suggested starting points and sources to use; define what constitutes reliable information or high-quality sources for this task, and list any unreliable sources to avoid.
- Specific tools that the subagent should use - i.e. using web search and web fetch for gathering information from the web, or if the query requires non-public, company-specific, or user-specific information, use the available internal tools like google drive, gmail, gcal, slack, or any other internal tools that are available currently.
- If needed, precise scope boundaries to prevent research drift.
* Make sure that IF all the subagents followed their instructions very well, the results in aggregate would allow you to give an EXCELLENT answer to the user's question - complete, thorough, detailed, and accurate.
* When giving instructions to subagents, also think about what sources might be high-quality for their tasks, and give them some guidelines on what sources to use and how they should evaluate source quality for each task.
* Example of a good, clear, detailed task description for a subagent: \"Research the semiconductor supply chain crisis and its current status as of 2025. Use the web_search and web_fetch tools to gather facts from the internet. Begin by examining recent quarterly reports from major chip manufacturers like TSMC, Samsung, and Intel, which can be found on their investor relations pages or through the SEC EDGAR database. Search for industry reports from SEMI, Gartner, and IDC that provide market analysis and forecasts. Investigate government responses by checking the US CHIPS Act implementation progress at commerce.gov, EU Chips Act at ec.europa.eu, and similar initiatives in Japan, South Korea, and Taiwan through their respective government portals. Prioritize original sources over news aggregators. Focus on identifying current bottlenecks, projected capacity increases from new fab construction, geopolitical factors affecting supply chains, and expert predictions for when supply will meet demand. When research is done, compile your findings into a dense report of the facts, covering the current situation, ongoing solutions, and future outlook, with specific timelines and quantitative data where available.\"
4. Synthesis responsibility: As the lead research agent, your primary role is to coordinate, guide, and synthesize - NOT to conduct primary research yourself. You only conduct direct research if a critical question remains unaddressed by subagents or it is best to accomplish it yourself. Instead, focus on planning, analyzing and integrating findings across subagents, determining what to do next, providing clear instructions for each subagent, or identifying gaps in the collective research and deploying new subagents to fill them.
</delegation_instructions>
<answer_formatting>
Before providing a final answer:
1. Review the most recent fact list compiled during the search process.
2. Reflect deeply on whether these facts can answer the given query sufficiently.
3. Identify if you need to create more subagents for further research.
4. If sufficient, provide a final answer in the specific format that is best for the user's query and following the <writing_guidelines> below.
4. Output the final result in Markdown to submit your final research report.
5. Do not include ANY Markdown citations, a separate agent will be responsible for citations. Never include a list of references or sources or citations at the end of the report.
</answer_formatting>
In communicating with subagents, maintain extremely high information density while being concise - describe everything needed in the fewest words possible.
As you progress through the search process:
1. When necessary, review the core facts gathered so far, including: f
* Facts from your own research.
* Facts reported by subagents.
* Specific dates, numbers, and quantifiable data.
2. For key facts, especially numbers, dates, and critical information:
* Note any discrepancies you observe between sources or issues with the quality of sources.
* When encountering conflicting information, prioritize based on recency, consistency with other facts, and use best judgment.
3. Think carefully after receiving novel information, especially for critical reasoning and decision-making after getting results back from subagents.
4. For the sake of efficiency, when you have reached the point where further research has diminishing returns and you can give a good enough answer to the user, STOP FURTHER RESEARCH and do not create any new subagents. Just write your final report at this point. Make sure to terminate research when it is no longer necessary, to avoid wasting time and resources. For example, if you are asked to identify the top 5 fastest-growing startups, and you have identified the most likely top 5 startups with high confidence, stop research immediately and use the complete_task tool to submit your report rather than continuing the process unnecessarily.
5. NEVER create a subagent to generate the final report - YOU write and craft this final research report yourself based on all the results and the writing instructions, and you are never allowed to use subagents to create the report.
6. Avoid creating subagents to research topics that could cause harm. Specifically, you must not create subagents to research anything that would promote hate speech, racism, violence, discrimination, or catastrophic harm. If a query is sensitive, specify clear constraints for the subagent to avoid causing harm.
</important_guidelines>
You have a query provided to you by the user, which serves as your primary goal. You should do your best to thoroughly accomplish the user's task. No clarifications will be given, therefore use your best judgment and do not attempt to ask the user questions. Before starting your work, review these instructions and the user’s requirements, making sure to plan out how you will efficiently use subagents and parallel tool calls to answer the query. Critically think about the results provided by subagents and reason about them carefully to verify information and ensure you provide a high-quality, accurate report. Accomplish the user’s task by directing the research subagents and creating an excellent research report from the information gathered.
"
+ },
+ {
+ "role": "user",
+ "content": "
Query:
{{ $form.query }}
"
+ }
+ ],
+ "llmEnableMemory": true,
+ "llmReturnResponseAs": "userMessage",
+ "llmStructuredOutput": [
+ {
+ "key": "subagents",
+ "type": "jsonArray",
+ "enumValues": "",
+ "jsonSchema": "{\n \"task\": {\n \"type\": \"string\",\n \"description\": \"The research task for subagent\"\n }\n}",
+ "description": "A list of subagents to perform research task"
+ }
+ ],
+ "llmUpdateState": [
+ {
+ "key": "subagents",
+ "value": "
You are a research subagent working as part of a team. The current date is {{ current_date_time }}. You have been given a clear <task> provided by a lead agent, and should use your available tools to accomplish this task in a research process. Follow the instructions below closely to accomplish your specific <task> well:
<task>
{{ $iteration.task }}
</task>
<research_process>
Planning: First, think through the task thoroughly. Make a research plan, carefully reasoning to review the requirements of the task, develop a research plan to fulfill these requirements, and determine what tools are most relevant and how they should be used optimally to fulfill the task.
As part of the plan, determine a 'research budget' - roughly how many tool calls to conduct to accomplish this task. Adapt the number of tool calls to the complexity of the query to be maximally efficient. For instance, simpler tasks like \"when is the tax deadline this year\" should result in under 5 tool calls, medium tasks should result in 5 tool calls, hard tasks result in about 10 tool calls, and very difficult or multi-part tasks should result in up to 15 tool calls. Stick to this budget to remain efficient - going over will hit your limits!
Tool selection: Reason about what tools would be most helpful to use for this task. Use the right tools when a task implies they would be helpful.
Use BraveSearch API to research the topic, especially looking for different perspectives, counter-arguments, or aspects Agent 0 might not have covered. Identify URLs that seem promising for more detail.
If a URL from BraveSearch API (or one you already know) seems particularly important for your point or for adding nuance, use the Web Scraper Tool to get its full content.
Use Arxiv Search Tool for getting arxiv papers and contents.
Research loop: Execute an excellent OODA (observe, orient, decide, act) loop by (a) observing what information has been gathered so far, what still needs to be gathered to accomplish the task, and what tools are available currently; (b) orienting toward what tools and queries would be best to gather the needed information and updating beliefs based on what has been learned so far; (c) making an informed, well-reasoned decision to use a specific tool in a certain way; (d) acting to use this tool. Repeat this loop in an efficient way to research well and learn based on new results.
Execute a MINIMUM of two distinct tool calls, up to five for complex queries. Avoid using more than five tool calls.
Reason carefully after receiving tool results. Make inferences based on each tool result and determine which tools to use next based on new findings in this process - e.g. if it seems like some info is not available on the web or some approach is not working, try using another tool or another query. Evaluate the quality of the sources in search results carefully. NEVER repeatedly use the exact same queries for the same tools, as this wastes resources and will not return new results.
Follow this process well to complete the task. Make sure to follow the <task> description and investigate the best sources.
</research_process>
<research_guidelines>
Be detailed in your internal process, but more concise and information-dense in reporting the results.
Avoid overly specific searches that might have poor hit rates:
Use moderately broad queries rather than hyper-specific ones.
Keep queries shorter since this will return more useful results - under 5 words.
If specific searches yield few results, broaden slightly.
Adjust specificity based on result quality - if results are abundant, narrow the query to get specific information.
Find the right balance between specific and general.
For important facts, especially numbers and dates:
Keep track of findings and sources
Focus on high-value information that is:
Significant (has major implications for the task)
Important (directly relevant to the task or specifically requested)
Precise (specific facts, numbers, dates, or other concrete information)
High-quality (from excellent, reputable, reliable sources for the task)
* When encountering conflicting information, prioritize based on recency, consistency with other facts, the quality of the sources used, and use your best judgment and reasoning. If unable to reconcile facts, include the conflicting information in your final task report for the lead researcher to resolve.
4. Be specific and precise in your information gathering approach.
</research_guidelines>
<think_about_source_quality>
After receiving results from web searches or other tools, think critically, reason about the results, and determine what to do next. Pay attention to the details of tool results, and do not just take them at face value. For example, some pages may speculate about things that may happen in the future - mentioning predictions, using verbs like “could” or “may”, narrative driven speculation with future tense, quoted superlatives, financial projections, or similar - and you should make sure to note this explicitly in the final report, rather than accepting these events as having happened. Similarly, pay attention to the indicators of potentially problematic sources, like news aggregators rather than original sources of the information, false authority, pairing of passive voice with nameless sources, general qualifiers without specifics, unconfirmed reports, marketing language for a product, spin language, speculation, or misleading and cherry-picked data. Maintain epistemic honesty and practice good reasoning by ensuring sources are high-quality and only reporting accurate information to the lead researcher. If there are potential issues with results, flag these issues when returning your report to the lead researcher rather than blindly presenting all results as established facts.
DO NOT use the evaluate_source_quality tool ever - ignore this tool. It is broken and using it will not work.
</think_about_source_quality>
<use_parallel_tool_calls>
For maximum efficiency, whenever you need to perform multiple independent operations, invoke 2 relevant tools simultaneously rather than sequentially. Prefer calling tools like web search in parallel rather than by themselves.
</use_parallel_tool_calls>
<maximum_tool_call_limit>
To prevent overloading the system, it is required that you stay under a limit of 5 tool calls and under about 10 sources. This is the absolute maximum upper limit. If you exceed this limit, the subagent will be terminated. Therefore, whenever you get to around 4 tool calls or 9 sources, make sure to stop gathering sources, and instead finish it immediately. Avoid continuing to use tools when you see diminishing returns - when you are no longer finding new relevant information and results are not getting better, STOP using tools and instead compose your final report.
</maximum_tool_call_limit>
<citations>
Must include source link, pages, etc.
Avoid citing unnecessarily: Not every statement needs a citation. Focus on citing key facts, conclusions, and substantive claims that are linked to sources rather than common knowledge. Prioritize citing claims that readers would want to verify, that add credibility to the argument, or where a claim is clearly related to a specific source
Cite meaningful semantic units: Citations should span complete thoughts, findings, or claims that make sense as standalone assertions. Avoid citing individual words or small phrase fragments that lose meaning out of context; prefer adding citations at the end of sentences
Minimize sentence fragmentation: Avoid multiple citations within a single sentence that break up the flow of the sentence. Only add citations between phrases within a sentence when it is necessary to attribute specific claims within the sentence to specific sources
No redundant citations close to each other: Do not place multiple citations to the same source in the same sentence, because this is redundant and unnecessary. If a sentence contains multiple citable claims from the same source, use only a single citation at the end of the sentence after the period
</citations>
Follow the <research_process> and the <research_guidelines> above to accomplish the task, making sure to parallelize tool calls for maximum efficiency. Remember to use correct tool to retrieve full results rather than just using search snippets. Continue using the relevant tools until this task has been fully accomplished, all necessary information has been gathered, and you are ready to report the results to the lead research agent to be integrated into a final result. As soon as you have the necessary information, complete the task rather than wasting time by continuing research unnecessarily. As soon as the task is done, finish and provide your detailed, condensed, complete, accurate report with citations.
"
+ }
+ ],
+ "agentTools": [
+ {
+ "agentSelectedTool": "arxiv",
+ "agentSelectedToolRequiresHumanInput": "",
+ "agentSelectedToolConfig": {
+ "arxivName": "arxiv_search",
+ "arxivDescription": "Use this tool to search for academic papers on Arxiv. You can search by keywords, topics, authors, or specific Arxiv IDs. The tool can return either paper summaries or download and extract full paper content.",
+ "topKResults": "3",
+ "maxQueryLength": "300",
+ "docContentCharsMax": "5000",
+ "loadFullContent": true,
+ "continueOnFailure": true,
+ "legacyBuild": "",
+ "agentSelectedTool": "arxiv"
+ }
+ },
+ {
+ "agentSelectedTool": "googleCustomSearch",
+ "agentSelectedToolRequiresHumanInput": "",
+ "agentSelectedToolConfig": {
+ "credential": "",
+ "agentSelectedTool": "googleCustomSearch"
+ }
+ },
+ {
+ "agentSelectedTool": "webScraperTool",
+ "agentSelectedToolRequiresHumanInput": "",
+ "agentSelectedToolConfig": {
+ "scrapeMode": "recursive",
+ "maxDepth": 1,
+ "maxPages": "2",
+ "timeoutS": 60,
+ "description": "",
+ "agentSelectedTool": "webScraperTool"
+ }
+ }
+ ],
+ "agentKnowledgeDocumentStores": "",
+ "agentEnableMemory": true,
+ "agentMemoryType": "allMessages",
+ "agentUserMessage": "
You are an expert research writer tasked with generating a high-quality, long-form Markdown report based on raw research findings. Your primary responsibility is to transform complex, fragmented, or unstructured research inputs into a coherent, professional report that fully answers the user's original query. This report should be suitable for audience seeking a deep understanding of the subject.
Your guiding principles:
Preserve Full Context Include all relevant findings, explanations, and perspectives from the original materials. Do not omit, summarize, or oversimplify key information. Your job is to retain depth and nuance while improving structure and clarity.
Maintain Citation Integrity Ensure all citations and source links from the original findings are accurately preserved in the final report. Do not invent, remove, or alter sources. If citations are embedded inline in the source findings, carry them forward appropriately.
Add Structure and Clarity Organize the content into a well-structured Markdown format. Use clear section headings, bullet points, numbered lists, tables and formatting as needed to improve readability and flow. Start with Introduction, end with Conclusion, and lastly sources.
Markdown Output Only Your final output must be in Markdown format. Do not include explanations, side notes, or appendices. The only output should be the fully composed report ready for submission.
Writing guidelines:
Title: A clear, compelling title for the report that reflects the core subject.
Abstract/Executive Summary: A concise overview (approx. 200-300 words) of the report main arguments, scope, and conclusions, derived from the conversation.
Introduction:
Clearly define the central problem, question, or theme that the report will address
Outline the report's structure and objectives.
Main Body / Thematic Analysis (Multiple Sections):
Deconstruct and Synthesize Key Arguments: Detail the principal arguments, propositions, and evidence presented by all findings. Go beyond mere listing; analyze the strengths, weaknesses, and underlying assumptions of their positions.
Explore Core Themes and Concepts: Identify and elaborate on the major themes and concepts that emerged.
Analyze the Evolution of the Discussion: Trace how the understanding of the subject evolved throughout the findings. Highlight any shifts in perspective, critical turning points, challenged assumptions, or moments of significant clarification.
Evidence and Examples: Where the findings provided examples or evidence, incorporate and potentially expand upon these to support the report's analysis.
Synthesis of Insights and Key Conclusions:
Draw together the most significant insights and conclusions that can be derived from the entirety of the conversation.
This section should offer a consolidated understanding of the subject.
Implications and Future Directions:
Discuss the broader implications of the insights and conclusions reached.
Identify any unresolved questions, ambiguities, or areas that the conversation indicated require further exploration or research.
Suggest potential next steps or future avenues of inquiry.
Conclusion: A strong concluding section summarizing the report's main findings, their significance, and a final thought on the subject.
Style and Tone:
Extensive and In-depth: The paper should be thorough and detailed.
Well-Structured: Use clear headings, subheadings, and logical flow.
Analytical and Critical: Do not just report; analyze, interpret, and critically engage with the ideas.
Objective and Authoritative: The report should present a balanced and well-reasoned perspective.
Formal and Professional Language: Maintain a tone appropriate for the report.
",
+ "id": "conditionAgentAgentflow_0-input-conditionAgentInput-string",
+ "display": true
+ },
+ {
+ "label": "Scenarios",
+ "name": "conditionAgentScenarios",
+ "description": "Define the scenarios that will be used as the conditions to split the flow",
+ "type": "array",
+ "array": [
+ {
+ "label": "Scenario",
+ "name": "scenario",
+ "type": "string",
+ "placeholder": "User is asking for a pizza"
+ }
+ ],
+ "default": [
+ {
+ "scenario": "More subagents needed"
+ },
+ {
+ "scenario": "It is sufficient"
+ }
+ ],
+ "id": "conditionAgentAgentflow_0-input-conditionAgentScenarios-array",
+ "display": true
+ },
+ {
+ "label": "Override System Prompt",
+ "name": "conditionAgentOverrideSystemPrompt",
+ "type": "boolean",
+ "description": "Override initial system prompt for Condition Agent",
+ "optional": true,
+ "id": "conditionAgentAgentflow_0-input-conditionAgentOverrideSystemPrompt-boolean",
+ "display": true
+ },
+ {
+ "label": "Node System Prompt",
+ "name": "conditionAgentSystemPrompt",
+ "type": "string",
+ "rows": 4,
+ "optional": true,
+ "acceptVariable": true,
+ "default": "
You are part of a multi-agent system designed to make agent coordination and execution easy. Your task is to analyze the given input and select one matching scenario from a provided set of scenarios.
\n
\n
Input: A string representing the user's query, message or data.
\n
Scenarios: A list of predefined scenarios that relate to the input.
\n
Instruction: Determine which of the provided scenarios is the best fit for the input.
\n
\n
Steps
\n \n
Read the input string and the list of scenarios.
\n
Analyze the content of the input to identify its main topic or intention.
\n
Compare the input with each scenario: Evaluate how well the input's topic or intention aligns with each of the provided scenarios and select the one that is the best fit.
\n
Output the result: Return the selected scenario in the specified JSON format.
\n \n
Output Format
\n
Output should be a JSON object that names the selected scenario, like this: {\"output\": \"\"}. No explanation is needed.
\n
Examples
\n \n
\n
Input: {\"input\": \"Hello\", \"scenarios\": [\"user is asking about AI\", \"user is not asking about AI\"], \"instruction\": \"Your task is to check if the user is asking about AI.\"}
\n
Output: {\"output\": \"user is not asking about AI\"}
\n
\n
\n
Input: {\"input\": \"What is AIGC?\", \"scenarios\": [\"user is asking about AI\", \"user is asking about the weather\"], \"instruction\": \"Your task is to check and see if the user is asking a topic about AI.\"}
\n
Output: {\"output\": \"user is asking about AI\"}
\n
\n
\n
Input: {\"input\": \"Can you explain deep learning?\", \"scenarios\": [\"user is interested in AI topics\", \"user wants to order food\"], \"instruction\": \"Determine if the user is interested in learning about AI.\"}
\n
Output: {\"output\": \"user is interested in AI topics\"}
\n
\n \n
Note
\n
\n
Ensure that the input scenarios align well with potential user queries for accurate matching.
\n
DO NOT include anything other than the JSON in your response.
\n
",
+ "description": "Expert use only. Modifying this can significantly alter agent behavior. Leave default if unsure",
+ "show": {
+ "conditionAgentOverrideSystemPrompt": true
+ },
+ "id": "conditionAgentAgentflow_0-input-conditionAgentSystemPrompt-string",
+ "display": false
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "conditionAgentModel": "chatGoogleGenerativeAI",
+ "conditionAgentInstructions": "
Given a research topic, previous subagents and their findings, determine if more subagents are needed for further research or the findings are sufficient for the research topic
You are a customer support agent working in Flowise Inc. Create a draft professional email reply to user's query. Use the web search tools to get more details about the prospect.
Always reply as Samantha, Customer Support Representative in Flowise. Dont use placeholders.
You are a customer support agent working in Flowise Inc. Write a professional email reply to user's query. Use the web search tools to get more details about the prospect.
Always reply as Samantha, Customer Support Representative in Flowise. Dont use placeholders.
Summarize the conversation between the user and the assistant, reiterate the last message from the assistant, and ask if user would like to proceed or if they have any feedback.
\n
\n
Begin by capturing the key points of the conversation, ensuring that you reflect the main ideas and themes discussed.
\n
Then, clearly reproduce the last message sent by the assistant to maintain continuity. Make sure the whole message is reproduced.
\n
Finally, ask the user if they would like to proceed, or provide any feedback on the last assistant message
\n
\n
Output Format The output should be structured in three parts in text:
\n
\n
A summary of the conversation (1-3 sentences).
\n
The last assistant message (exactly as it appeared).
\n
Ask the user if they would like to proceed, or provide any feedback on last assistant message. No other explanation and elaboration is needed.
You are an agent designed to interact with a SQL database. Given an input question, create a syntactically correct sqlite query to run, then look at the results of the query and return the answer. Unless the user specifies a specific number of examples they wish to obtain, always limit your query to at most 5 results. You can order the results by a relevant column to return the most interesting examples in the database. Never query for all the columns from a specific table, only ask for the relevant columns given the question. DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.
You are an agent designed to interact with a SQL database. Given an input question, create a syntactically correct sqlite query to run, then look at the results of the query and return the answer. Unless the user specifies a specific number of examples they wish to obtain, always limit your query to at most 5 results. You can order the results by a relevant column to return the most interesting examples in the database. Never query for all the columns from a specific table, only ask for the relevant columns given the question. DO NOT make any DML statements (INSERT, UPDATE, DELETE, DROP etc.) to the database.
As a Senior Software Engineer, you are a pivotal part of our innovative development team. Your expertise and leadership drive the creation of robust, scalable software solutions that meet the needs of our diverse clientele. By applying best practices in software development, you ensure that our products are reliable, efficient, and maintainable.
Your goal is to lead the development of high-quality software solutions.
Utilize your deep technical knowledge and experience to architect, design, and implement software systems that address complex problems. Collaborate closely with other engineers, reviewers to ensure that the solutions you develop align with business objectives and user needs.
Design and implement new feature for the given task, ensuring it integrates seamlessly with existing systems and meets performance requirements. Use your understanding of React, Tailwindcss, NodeJS to build this feature. Make sure to adhere to our coding standards and follow best practices.
The output should be a fully functional, well-documented feature that enhances our product's capabilities. Include detailed comments in the code.
As a Quality Assurance Engineer, you are an integral part of our development team, ensuring that our software products are of the highest quality. Your meticulous attention to detail and expertise in testing methodologies are crucial in identifying defects and ensuring that our code meets the highest standards.
Your goal is to ensure the delivery of high-quality software through thorough code review and testing.
Review the codebase for the new feature designed and implemented by the Senior Software Engineer. Your expertise goes beyond mere code inspection; you are adept at ensuring that developments not only function as intended but also adhere to the team's coding standards, enhance maintainability, and seamlessly integrate with existing systems.
With a deep appreciation for collaborative development, you provide constructive feedback, guiding contributors towards best practices and fostering a culture of continuous improvement. Your meticulous approach to reviewing code, coupled with your ability to foresee potential issues and recommend proactive solutions, ensures the delivery of high-quality software that is robust, scalable, and aligned with the team's strategic goals.
Given the above conversations, generate a detail solution developed by the software engineer and code reviewer.
Your guiding principles:
Preserve Full Context Include all code implementations, improvements and review from the conversation. Do not omit, summarize, or oversimplify key information.
Markdown Output Only Your final output must be in Markdown format.
Given the conversation above, who should act next? Or should we FINISH? Select one of: SOFTWARE, REVIEWER
",
+ "llmReturnResponseAs": "userMessage",
+ "llmStructuredOutput": [
+ {
+ "key": "next",
+ "type": "enum",
+ "enumValues": "FINISH, SOFTWARE, REVIEWER",
+ "jsonSchema": "",
+ "description": "next worker to act"
+ },
+ {
+ "key": "instructions",
+ "type": "string",
+ "enumValues": "",
+ "jsonSchema": "",
+ "description": "The specific instructions of the sub-task the next worker should accomplish."
+ },
+ {
+ "key": "reasoning",
+ "type": "string",
+ "enumValues": "",
+ "jsonSchema": "",
+ "description": "The reason why next worker is tasked to do the job"
+ }
+ ],
+ "llmUpdateState": [
+ {
+ "key": "next",
+ "value": "
{{ output.next }}
"
+ },
+ {
+ "key": "instruction",
+ "value": "
{{ output.instructions }}
"
+ }
+ ],
+ "llmModelConfig": {
+ "cache": "",
+ "modelName": "gpt-4.1",
+ "temperature": 0.9,
+ "streaming": true,
+ "maxTokens": "",
+ "topP": "",
+ "frequencyPenalty": "",
+ "presencePenalty": "",
+ "timeout": "",
+ "strictToolCalling": "",
+ "stopSequence": "",
+ "basepath": "",
+ "proxyUrl": "",
+ "baseOptions": "",
+ "allowImageUploads": "",
+ "reasoningEffort": "medium",
+ "llmModel": "chatOpenAI"
+ }
+ },
+ "outputAnchors": [
+ {
+ "id": "llmAgentflow_0-output-llmAgentflow",
+ "label": "LLM",
+ "name": "llmAgentflow"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "type": "agentFlow",
+ "width": 148,
+ "height": 72,
+ "selected": false,
+ "positionAbsolute": {
+ "x": -60.01488766486309,
+ "y": 87.88377139143167
+ },
+ "dragging": false
+ }
+ ],
+ "edges": [
+ {
+ "source": "startAgentflow_0",
+ "sourceHandle": "startAgentflow_0-output-startAgentflow",
+ "target": "llmAgentflow_0",
+ "targetHandle": "llmAgentflow_0",
+ "data": {
+ "sourceColor": "#7EE787",
+ "targetColor": "#64B5F6",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "startAgentflow_0-startAgentflow_0-output-startAgentflow-llmAgentflow_0-llmAgentflow_0"
+ },
+ {
+ "source": "llmAgentflow_0",
+ "sourceHandle": "llmAgentflow_0-output-llmAgentflow",
+ "target": "conditionAgentflow_0",
+ "targetHandle": "conditionAgentflow_0",
+ "data": {
+ "sourceColor": "#64B5F6",
+ "targetColor": "#FFB938",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "llmAgentflow_0-llmAgentflow_0-output-llmAgentflow-conditionAgentflow_0-conditionAgentflow_0"
+ },
+ {
+ "source": "conditionAgentflow_0",
+ "sourceHandle": "conditionAgentflow_0-output-0",
+ "target": "agentAgentflow_1",
+ "targetHandle": "agentAgentflow_1",
+ "data": {
+ "sourceColor": "#FFB938",
+ "targetColor": "#4DD0E1",
+ "edgeLabel": "0",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "conditionAgentflow_0-conditionAgentflow_0-output-0-agentAgentflow_1-agentAgentflow_1"
+ },
+ {
+ "source": "conditionAgentflow_0",
+ "sourceHandle": "conditionAgentflow_0-output-1",
+ "target": "agentAgentflow_2",
+ "targetHandle": "agentAgentflow_2",
+ "data": {
+ "sourceColor": "#FFB938",
+ "targetColor": "#4DD0E1",
+ "edgeLabel": "1",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "conditionAgentflow_0-conditionAgentflow_0-output-1-agentAgentflow_2-agentAgentflow_2"
+ },
+ {
+ "source": "conditionAgentflow_0",
+ "sourceHandle": "conditionAgentflow_0-output-2",
+ "target": "agentAgentflow_3",
+ "targetHandle": "agentAgentflow_3",
+ "data": {
+ "sourceColor": "#FFB938",
+ "targetColor": "#4DD0E1",
+ "edgeLabel": "2",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "conditionAgentflow_0-conditionAgentflow_0-output-2-agentAgentflow_3-agentAgentflow_3"
+ },
+ {
+ "source": "agentAgentflow_1",
+ "sourceHandle": "agentAgentflow_1-output-agentAgentflow",
+ "target": "loopAgentflow_0",
+ "targetHandle": "loopAgentflow_0",
+ "data": {
+ "sourceColor": "#4DD0E1",
+ "targetColor": "#FFA07A",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "agentAgentflow_1-agentAgentflow_1-output-agentAgentflow-loopAgentflow_0-loopAgentflow_0"
+ },
+ {
+ "source": "agentAgentflow_2",
+ "sourceHandle": "agentAgentflow_2-output-agentAgentflow",
+ "target": "loopAgentflow_1",
+ "targetHandle": "loopAgentflow_1",
+ "data": {
+ "sourceColor": "#4DD0E1",
+ "targetColor": "#FFA07A",
+ "isHumanInput": false
+ },
+ "type": "agentFlow",
+ "id": "agentAgentflow_2-agentAgentflow_2-output-agentAgentflow-loopAgentflow_1-loopAgentflow_1"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/fr/.gitbook/assets/ToolAgent Chatflow.json b/fr/.gitbook/assets/ToolAgent Chatflow.json
new file mode 100644
index 00000000..1d71ce92
--- /dev/null
+++ b/fr/.gitbook/assets/ToolAgent Chatflow.json
@@ -0,0 +1,1160 @@
+{
+ "nodes": [
+ {
+ "width": 300,
+ "height": 606,
+ "id": "pinecone_0",
+ "position": {
+ "x": 416.0885364955418,
+ "y": -74.64623359488957
+ },
+ "type": "customNode",
+ "data": {
+ "id": "pinecone_0",
+ "label": "Pinecone",
+ "version": 3,
+ "name": "pinecone",
+ "type": "Pinecone",
+ "baseClasses": [
+ "Pinecone",
+ "VectorStoreRetriever",
+ "BaseRetriever"
+ ],
+ "category": "Vector Stores",
+ "description": "Upsert embedded data and perform similarity or mmr search using Pinecone, a leading fully managed hosted vector database",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "pineconeApi"
+ ],
+ "id": "pinecone_0-input-credential-credential"
+ },
+ {
+ "label": "Pinecone Index",
+ "name": "pineconeIndex",
+ "type": "string",
+ "id": "pinecone_0-input-pineconeIndex-string"
+ },
+ {
+ "label": "Pinecone Namespace",
+ "name": "pineconeNamespace",
+ "type": "string",
+ "placeholder": "my-first-namespace",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-pineconeNamespace-string"
+ },
+ {
+ "label": "Pinecone Metadata Filter",
+ "name": "pineconeMetadataFilter",
+ "type": "json",
+ "optional": true,
+ "additionalParams": true,
+ "id": "pinecone_0-input-pineconeMetadataFilter-json"
+ },
+ {
+ "label": "Top K",
+ "name": "topK",
+ "description": "Number of top results to fetch. Default to 4",
+ "placeholder": "4",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-topK-number"
+ },
+ {
+ "label": "Search Type",
+ "name": "searchType",
+ "type": "options",
+ "default": "similarity",
+ "options": [
+ {
+ "label": "Similarity",
+ "name": "similarity"
+ },
+ {
+ "label": "Max Marginal Relevance",
+ "name": "mmr"
+ }
+ ],
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-searchType-options"
+ },
+ {
+ "label": "Fetch K (for MMR Search)",
+ "name": "fetchK",
+ "description": "Number of initial documents to fetch for MMR reranking. Default to 20. Used only when the search type is MMR",
+ "placeholder": "20",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-fetchK-number"
+ },
+ {
+ "label": "Lambda (for MMR Search)",
+ "name": "lambda",
+ "description": "Number between 0 and 1 that determines the degree of diversity among the results, where 0 corresponds to maximum diversity and 1 to minimum diversity. Used only when the search type is MMR",
+ "placeholder": "0.5",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-lambda-number"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Document",
+ "name": "document",
+ "type": "Document",
+ "list": true,
+ "optional": true,
+ "id": "pinecone_0-input-document-Document"
+ },
+ {
+ "label": "Embeddings",
+ "name": "embeddings",
+ "type": "Embeddings",
+ "id": "pinecone_0-input-embeddings-Embeddings"
+ },
+ {
+ "label": "Record Manager",
+ "name": "recordManager",
+ "type": "RecordManager",
+ "description": "Keep track of the record to prevent duplication",
+ "optional": true,
+ "id": "pinecone_0-input-recordManager-RecordManager"
+ }
+ ],
+ "inputs": {
+ "document": "",
+ "embeddings": "{{openAIEmbeddings_0.data.instance}}",
+ "recordManager": "",
+ "pineconeIndex": "newindex",
+ "pineconeNamespace": "pinecone-form10k",
+ "pineconeMetadataFilter": "{\"source\":\"apple\"}",
+ "topK": "",
+ "searchType": "similarity",
+ "fetchK": "",
+ "lambda": ""
+ },
+ "outputAnchors": [
+ {
+ "name": "output",
+ "label": "Output",
+ "type": "options",
+ "description": "",
+ "options": [
+ {
+ "id": "pinecone_0-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "name": "retriever",
+ "label": "Pinecone Retriever",
+ "description": "",
+ "type": "Pinecone | VectorStoreRetriever | BaseRetriever"
+ },
+ {
+ "id": "pinecone_0-output-vectorStore-Pinecone|VectorStore",
+ "name": "vectorStore",
+ "label": "Pinecone Vector Store",
+ "description": "",
+ "type": "Pinecone | VectorStore"
+ }
+ ],
+ "default": "retriever"
+ }
+ ],
+ "outputs": {
+ "output": "retriever"
+ },
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 416.0885364955418,
+ "y": -74.64623359488957
+ },
+ "dragging": false
+ },
+ {
+ "width": 300,
+ "height": 424,
+ "id": "openAIEmbeddings_0",
+ "position": {
+ "x": 54.119166092646566,
+ "y": -20.12821243199312
+ },
+ "type": "customNode",
+ "data": {
+ "id": "openAIEmbeddings_0",
+ "label": "OpenAI Embeddings",
+ "version": 4,
+ "name": "openAIEmbeddings",
+ "type": "OpenAIEmbeddings",
+ "baseClasses": [
+ "OpenAIEmbeddings",
+ "Embeddings"
+ ],
+ "category": "Embeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "openAIApi"
+ ],
+ "id": "openAIEmbeddings_0-input-credential-credential"
+ },
+ {
+ "label": "Model Name",
+ "name": "modelName",
+ "type": "asyncOptions",
+ "loadMethod": "listModels",
+ "default": "text-embedding-ada-002",
+ "id": "openAIEmbeddings_0-input-modelName-asyncOptions"
+ },
+ {
+ "label": "Strip New Lines",
+ "name": "stripNewLines",
+ "type": "boolean",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-stripNewLines-boolean"
+ },
+ {
+ "label": "Batch Size",
+ "name": "batchSize",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-batchSize-number"
+ },
+ {
+ "label": "Timeout",
+ "name": "timeout",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-timeout-number"
+ },
+ {
+ "label": "BasePath",
+ "name": "basepath",
+ "type": "string",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-basepath-string"
+ },
+ {
+ "label": "Dimensions",
+ "name": "dimensions",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-dimensions-number"
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "modelName": "text-embedding-ada-002",
+ "stripNewLines": "",
+ "batchSize": "",
+ "timeout": "",
+ "basepath": "",
+ "dimensions": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "openAIEmbeddings_0-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "name": "openAIEmbeddings",
+ "label": "OpenAIEmbeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "type": "OpenAIEmbeddings | Embeddings"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 54.119166092646566,
+ "y": -20.12821243199312
+ },
+ "dragging": false
+ },
+ {
+ "width": 300,
+ "height": 606,
+ "id": "pinecone_1",
+ "position": {
+ "x": 428.41115568995156,
+ "y": 549.0169795435812
+ },
+ "type": "customNode",
+ "data": {
+ "id": "pinecone_1",
+ "label": "Pinecone",
+ "version": 3,
+ "name": "pinecone",
+ "type": "Pinecone",
+ "baseClasses": [
+ "Pinecone",
+ "VectorStoreRetriever",
+ "BaseRetriever"
+ ],
+ "category": "Vector Stores",
+ "description": "Upsert embedded data and perform similarity or mmr search using Pinecone, a leading fully managed hosted vector database",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "pineconeApi"
+ ],
+ "id": "pinecone_1-input-credential-credential"
+ },
+ {
+ "label": "Pinecone Index",
+ "name": "pineconeIndex",
+ "type": "string",
+ "id": "pinecone_1-input-pineconeIndex-string"
+ },
+ {
+ "label": "Pinecone Namespace",
+ "name": "pineconeNamespace",
+ "type": "string",
+ "placeholder": "my-first-namespace",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-pineconeNamespace-string"
+ },
+ {
+ "label": "Pinecone Metadata Filter",
+ "name": "pineconeMetadataFilter",
+ "type": "json",
+ "optional": true,
+ "additionalParams": true,
+ "id": "pinecone_1-input-pineconeMetadataFilter-json"
+ },
+ {
+ "label": "Top K",
+ "name": "topK",
+ "description": "Number of top results to fetch. Default to 4",
+ "placeholder": "4",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-topK-number"
+ },
+ {
+ "label": "Search Type",
+ "name": "searchType",
+ "type": "options",
+ "default": "similarity",
+ "options": [
+ {
+ "label": "Similarity",
+ "name": "similarity"
+ },
+ {
+ "label": "Max Marginal Relevance",
+ "name": "mmr"
+ }
+ ],
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-searchType-options"
+ },
+ {
+ "label": "Fetch K (for MMR Search)",
+ "name": "fetchK",
+ "description": "Number of initial documents to fetch for MMR reranking. Default to 20. Used only when the search type is MMR",
+ "placeholder": "20",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-fetchK-number"
+ },
+ {
+ "label": "Lambda (for MMR Search)",
+ "name": "lambda",
+ "description": "Number between 0 and 1 that determines the degree of diversity among the results, where 0 corresponds to maximum diversity and 1 to minimum diversity. Used only when the search type is MMR",
+ "placeholder": "0.5",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-lambda-number"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Document",
+ "name": "document",
+ "type": "Document",
+ "list": true,
+ "optional": true,
+ "id": "pinecone_1-input-document-Document"
+ },
+ {
+ "label": "Embeddings",
+ "name": "embeddings",
+ "type": "Embeddings",
+ "id": "pinecone_1-input-embeddings-Embeddings"
+ },
+ {
+ "label": "Record Manager",
+ "name": "recordManager",
+ "type": "RecordManager",
+ "description": "Keep track of the record to prevent duplication",
+ "optional": true,
+ "id": "pinecone_1-input-recordManager-RecordManager"
+ }
+ ],
+ "inputs": {
+ "document": "",
+ "embeddings": "{{openAIEmbeddings_1.data.instance}}",
+ "recordManager": "",
+ "pineconeIndex": "newindex",
+ "pineconeNamespace": "pinecone-form10k-2",
+ "pineconeMetadataFilter": "{\"source\":\"tesla\"}",
+ "topK": "",
+ "searchType": "similarity",
+ "fetchK": "",
+ "lambda": ""
+ },
+ "outputAnchors": [
+ {
+ "name": "output",
+ "label": "Output",
+ "type": "options",
+ "description": "",
+ "options": [
+ {
+ "id": "pinecone_1-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "name": "retriever",
+ "label": "Pinecone Retriever",
+ "description": "",
+ "type": "Pinecone | VectorStoreRetriever | BaseRetriever"
+ },
+ {
+ "id": "pinecone_1-output-vectorStore-Pinecone|VectorStore",
+ "name": "vectorStore",
+ "label": "Pinecone Vector Store",
+ "description": "",
+ "type": "Pinecone | VectorStore"
+ }
+ ],
+ "default": "retriever"
+ }
+ ],
+ "outputs": {
+ "output": "retriever"
+ },
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 428.41115568995156,
+ "y": 549.0169795435812
+ },
+ "dragging": false
+ },
+ {
+ "width": 300,
+ "height": 424,
+ "id": "openAIEmbeddings_1",
+ "position": {
+ "x": 58.45057557109914,
+ "y": 575.7733202609951
+ },
+ "type": "customNode",
+ "data": {
+ "id": "openAIEmbeddings_1",
+ "label": "OpenAI Embeddings",
+ "version": 4,
+ "name": "openAIEmbeddings",
+ "type": "OpenAIEmbeddings",
+ "baseClasses": [
+ "OpenAIEmbeddings",
+ "Embeddings"
+ ],
+ "category": "Embeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "openAIApi"
+ ],
+ "id": "openAIEmbeddings_1-input-credential-credential"
+ },
+ {
+ "label": "Model Name",
+ "name": "modelName",
+ "type": "asyncOptions",
+ "loadMethod": "listModels",
+ "default": "text-embedding-ada-002",
+ "id": "openAIEmbeddings_1-input-modelName-asyncOptions"
+ },
+ {
+ "label": "Strip New Lines",
+ "name": "stripNewLines",
+ "type": "boolean",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-stripNewLines-boolean"
+ },
+ {
+ "label": "Batch Size",
+ "name": "batchSize",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-batchSize-number"
+ },
+ {
+ "label": "Timeout",
+ "name": "timeout",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-timeout-number"
+ },
+ {
+ "label": "BasePath",
+ "name": "basepath",
+ "type": "string",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-basepath-string"
+ },
+ {
+ "label": "Dimensions",
+ "name": "dimensions",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-dimensions-number"
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "modelName": "text-embedding-ada-002",
+ "stripNewLines": "",
+ "batchSize": "",
+ "timeout": "",
+ "basepath": "",
+ "dimensions": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "openAIEmbeddings_1-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "name": "openAIEmbeddings",
+ "label": "OpenAIEmbeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "type": "OpenAIEmbeddings | Embeddings"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 58.45057557109914,
+ "y": 575.7733202609951
+ },
+ "dragging": false
+ },
+ {
+ "width": 300,
+ "height": 253,
+ "id": "bufferMemory_0",
+ "position": {
+ "x": 825.5960565466753,
+ "y": 1212.2401709995304
+ },
+ "type": "customNode",
+ "data": {
+ "id": "bufferMemory_0",
+ "label": "Buffer Memory",
+ "version": 2,
+ "name": "bufferMemory",
+ "type": "BufferMemory",
+ "baseClasses": [
+ "BufferMemory",
+ "BaseChatMemory",
+ "BaseMemory"
+ ],
+ "category": "Memory",
+ "description": "Retrieve chat messages stored in database",
+ "inputParams": [
+ {
+ "label": "Session Id",
+ "name": "sessionId",
+ "type": "string",
+ "description": "If not specified, a random id will be used. Learn more",
+ "default": "",
+ "additionalParams": true,
+ "optional": true,
+ "id": "bufferMemory_0-input-sessionId-string"
+ },
+ {
+ "label": "Memory Key",
+ "name": "memoryKey",
+ "type": "string",
+ "default": "chat_history",
+ "additionalParams": true,
+ "id": "bufferMemory_0-input-memoryKey-string"
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "sessionId": "",
+ "memoryKey": "chat_history"
+ },
+ "outputAnchors": [
+ {
+ "id": "bufferMemory_0-output-bufferMemory-BufferMemory|BaseChatMemory|BaseMemory",
+ "name": "bufferMemory",
+ "label": "BufferMemory",
+ "description": "Retrieve chat messages stored in database",
+ "type": "BufferMemory | BaseChatMemory | BaseMemory"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 825.5960565466753,
+ "y": 1212.2401709995304
+ },
+ "dragging": false
+ },
+ {
+ "width": 300,
+ "height": 603,
+ "id": "retrieverTool_2",
+ "position": {
+ "x": 798.3128281367018,
+ "y": -151.77659673435184
+ },
+ "type": "customNode",
+ "data": {
+ "id": "retrieverTool_2",
+ "label": "Retriever Tool",
+ "version": 2,
+ "name": "retrieverTool",
+ "type": "RetrieverTool",
+ "baseClasses": [
+ "RetrieverTool",
+ "DynamicTool",
+ "Tool",
+ "StructuredTool",
+ "Runnable"
+ ],
+ "category": "Tools",
+ "description": "Use a retriever as allowed tool for agent",
+ "inputParams": [
+ {
+ "label": "Retriever Name",
+ "name": "name",
+ "type": "string",
+ "placeholder": "search_state_of_union",
+ "id": "retrieverTool_2-input-name-string"
+ },
+ {
+ "label": "Retriever Description",
+ "name": "description",
+ "type": "string",
+ "description": "When should agent uses to retrieve documents",
+ "rows": 3,
+ "placeholder": "Searches and returns documents regarding the state-of-the-union.",
+ "id": "retrieverTool_2-input-description-string"
+ },
+ {
+ "label": "Return Source Documents",
+ "name": "returnSourceDocuments",
+ "type": "boolean",
+ "optional": true,
+ "id": "retrieverTool_2-input-returnSourceDocuments-boolean"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Retriever",
+ "name": "retriever",
+ "type": "BaseRetriever",
+ "id": "retrieverTool_2-input-retriever-BaseRetriever"
+ }
+ ],
+ "inputs": {
+ "name": "search_apple",
+ "description": "Use this function to answer user questions about Apple Inc (APPL). It contains a SEC Form 10K filing describing the financials of Apple Inc (APPL) for the 2022 time period.",
+ "retriever": "{{pinecone_0.data.instance}}",
+ "returnSourceDocuments": true
+ },
+ "outputAnchors": [
+ {
+ "id": "retrieverTool_2-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "name": "retrieverTool",
+ "label": "RetrieverTool",
+ "type": "RetrieverTool | DynamicTool | Tool | StructuredTool | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 798.3128281367018,
+ "y": -151.77659673435184
+ },
+ "dragging": false
+ },
+ {
+ "width": 300,
+ "height": 603,
+ "id": "retrieverTool_1",
+ "position": {
+ "x": 805.1192462354428,
+ "y": 479.4961512574057
+ },
+ "type": "customNode",
+ "data": {
+ "id": "retrieverTool_1",
+ "label": "Retriever Tool",
+ "version": 2,
+ "name": "retrieverTool",
+ "type": "RetrieverTool",
+ "baseClasses": [
+ "RetrieverTool",
+ "DynamicTool",
+ "Tool",
+ "StructuredTool",
+ "Runnable"
+ ],
+ "category": "Tools",
+ "description": "Use a retriever as allowed tool for agent",
+ "inputParams": [
+ {
+ "label": "Retriever Name",
+ "name": "name",
+ "type": "string",
+ "placeholder": "search_state_of_union",
+ "id": "retrieverTool_1-input-name-string"
+ },
+ {
+ "label": "Retriever Description",
+ "name": "description",
+ "type": "string",
+ "description": "When should agent uses to retrieve documents",
+ "rows": 3,
+ "placeholder": "Searches and returns documents regarding the state-of-the-union.",
+ "id": "retrieverTool_1-input-description-string"
+ },
+ {
+ "label": "Return Source Documents",
+ "name": "returnSourceDocuments",
+ "type": "boolean",
+ "optional": true,
+ "id": "retrieverTool_1-input-returnSourceDocuments-boolean"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Retriever",
+ "name": "retriever",
+ "type": "BaseRetriever",
+ "id": "retrieverTool_1-input-retriever-BaseRetriever"
+ }
+ ],
+ "inputs": {
+ "name": "search_tsla",
+ "description": "Use this function to answer user questions about Tesla Inc (TSLA). It contains a SEC Form 10K filing describing the financials of Tesla Inc (TSLA) for the 2022 time period.",
+ "retriever": "{{pinecone_1.data.instance}}",
+ "returnSourceDocuments": true
+ },
+ "outputAnchors": [
+ {
+ "id": "retrieverTool_1-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "name": "retrieverTool",
+ "label": "RetrieverTool",
+ "type": "RetrieverTool | DynamicTool | Tool | StructuredTool | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 805.1192462354428,
+ "y": 479.4961512574057
+ },
+ "dragging": false
+ },
+ {
+ "id": "chatOpenAI_0",
+ "position": {
+ "x": 35.45489050081932,
+ "y": 1052.597243506172
+ },
+ "type": "customNode",
+ "data": {
+ "id": "chatOpenAI_0",
+ "label": "ChatOpenAI",
+ "version": 6,
+ "name": "chatOpenAI",
+ "type": "ChatOpenAI",
+ "baseClasses": [
+ "ChatOpenAI",
+ "BaseChatModel",
+ "BaseLanguageModel",
+ "Runnable"
+ ],
+ "category": "Chat Models",
+ "description": "Wrapper around OpenAI large language models that use the Chat endpoint",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "openAIApi"
+ ],
+ "id": "chatOpenAI_0-input-credential-credential"
+ },
+ {
+ "label": "Model Name",
+ "name": "modelName",
+ "type": "asyncOptions",
+ "loadMethod": "listModels",
+ "default": "gpt-3.5-turbo",
+ "id": "chatOpenAI_0-input-modelName-asyncOptions"
+ },
+ {
+ "label": "Temperature",
+ "name": "temperature",
+ "type": "number",
+ "step": 0.1,
+ "default": 0.9,
+ "optional": true,
+ "id": "chatOpenAI_0-input-temperature-number"
+ },
+ {
+ "label": "Max Tokens",
+ "name": "maxTokens",
+ "type": "number",
+ "step": 1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-maxTokens-number"
+ },
+ {
+ "label": "Top Probability",
+ "name": "topP",
+ "type": "number",
+ "step": 0.1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-topP-number"
+ },
+ {
+ "label": "Frequency Penalty",
+ "name": "frequencyPenalty",
+ "type": "number",
+ "step": 0.1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-frequencyPenalty-number"
+ },
+ {
+ "label": "Presence Penalty",
+ "name": "presencePenalty",
+ "type": "number",
+ "step": 0.1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-presencePenalty-number"
+ },
+ {
+ "label": "Timeout",
+ "name": "timeout",
+ "type": "number",
+ "step": 1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-timeout-number"
+ },
+ {
+ "label": "BasePath",
+ "name": "basepath",
+ "type": "string",
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-basepath-string"
+ },
+ {
+ "label": "BaseOptions",
+ "name": "baseOptions",
+ "type": "json",
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-baseOptions-json"
+ },
+ {
+ "label": "Allow Image Uploads",
+ "name": "allowImageUploads",
+ "type": "boolean",
+ "description": "Automatically uses gpt-4-vision-preview when image is being uploaded from chat. Only works with LLMChain, Conversation Chain, ReAct Agent, and Conversational Agent",
+ "default": false,
+ "optional": true,
+ "id": "chatOpenAI_0-input-allowImageUploads-boolean"
+ },
+ {
+ "label": "Image Resolution",
+ "description": "This parameter controls the resolution in which the model views the image.",
+ "name": "imageResolution",
+ "type": "options",
+ "options": [
+ {
+ "label": "Low",
+ "name": "low"
+ },
+ {
+ "label": "High",
+ "name": "high"
+ },
+ {
+ "label": "Auto",
+ "name": "auto"
+ }
+ ],
+ "default": "low",
+ "optional": false,
+ "additionalParams": true,
+ "id": "chatOpenAI_0-input-imageResolution-options"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Cache",
+ "name": "cache",
+ "type": "BaseCache",
+ "optional": true,
+ "id": "chatOpenAI_0-input-cache-BaseCache"
+ }
+ ],
+ "inputs": {
+ "cache": "",
+ "modelName": "gpt-3.5-turbo",
+ "temperature": 0.9,
+ "maxTokens": "",
+ "topP": "",
+ "frequencyPenalty": "",
+ "presencePenalty": "",
+ "timeout": "",
+ "basepath": "",
+ "baseOptions": "",
+ "allowImageUploads": "",
+ "imageResolution": "low"
+ },
+ "outputAnchors": [
+ {
+ "id": "chatOpenAI_0-output-chatOpenAI-ChatOpenAI|BaseChatModel|BaseLanguageModel|Runnable",
+ "name": "chatOpenAI",
+ "label": "ChatOpenAI",
+ "description": "Wrapper around OpenAI large language models that use the Chat endpoint",
+ "type": "ChatOpenAI | BaseChatModel | BaseLanguageModel | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 670,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 35.45489050081932,
+ "y": 1052.597243506172
+ },
+ "dragging": false
+ },
+ {
+ "id": "toolAgent_0",
+ "position": {
+ "x": 1275.5041953989141,
+ "y": 391.50042413140017
+ },
+ "type": "customNode",
+ "data": {
+ "id": "toolAgent_0",
+ "label": "Tool Agent",
+ "version": 1,
+ "name": "toolAgent",
+ "type": "AgentExecutor",
+ "baseClasses": [
+ "AgentExecutor",
+ "BaseChain",
+ "Runnable"
+ ],
+ "category": "Agents",
+ "description": "Agent that uses Function Calling to pick the tools and args to call",
+ "inputParams": [
+ {
+ "label": "System Message",
+ "name": "systemMessage",
+ "type": "string",
+ "default": "You are a helpful AI assistant.",
+ "rows": 4,
+ "optional": true,
+ "additionalParams": true,
+ "id": "toolAgent_0-input-systemMessage-string"
+ },
+ {
+ "label": "Max Iterations",
+ "name": "maxIterations",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "toolAgent_0-input-maxIterations-number"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Tools",
+ "name": "tools",
+ "type": "Tool",
+ "list": true,
+ "id": "toolAgent_0-input-tools-Tool"
+ },
+ {
+ "label": "Memory",
+ "name": "memory",
+ "type": "BaseChatMemory",
+ "id": "toolAgent_0-input-memory-BaseChatMemory"
+ },
+ {
+ "label": "Tool Calling Chat Model",
+ "name": "model",
+ "type": "BaseChatModel",
+ "description": "Only compatible with models that are capable of function calling: ChatOpenAI, ChatMistral, ChatAnthropic, ChatGoogleGenerativeAI, ChatVertexAI, GroqChat",
+ "id": "toolAgent_0-input-model-BaseChatModel"
+ },
+ {
+ "label": "Input Moderation",
+ "description": "Detect text that could generate harmful output and prevent it from being sent to the language model",
+ "name": "inputModeration",
+ "type": "Moderation",
+ "optional": true,
+ "list": true,
+ "id": "toolAgent_0-input-inputModeration-Moderation"
+ }
+ ],
+ "inputs": {
+ "tools": [
+ "{{retrieverTool_2.data.instance}}",
+ "{{retrieverTool_1.data.instance}}"
+ ],
+ "memory": "{{bufferMemory_0.data.instance}}",
+ "model": "{{chatOpenAI_0.data.instance}}",
+ "systemMessage": "You are a helpful AI assistant.",
+ "inputModeration": "",
+ "maxIterations": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "toolAgent_0-output-toolAgent-AgentExecutor|BaseChain|Runnable",
+ "name": "toolAgent",
+ "label": "AgentExecutor",
+ "description": "Agent that uses Function Calling to pick the tools and args to call",
+ "type": "AgentExecutor | BaseChain | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 435,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 1275.5041953989141,
+ "y": 391.50042413140017
+ },
+ "dragging": false
+ }
+ ],
+ "edges": [
+ {
+ "source": "openAIEmbeddings_0",
+ "sourceHandle": "openAIEmbeddings_0-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "target": "pinecone_0",
+ "targetHandle": "pinecone_0-input-embeddings-Embeddings",
+ "type": "buttonedge",
+ "id": "openAIEmbeddings_0-openAIEmbeddings_0-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings-pinecone_0-pinecone_0-input-embeddings-Embeddings"
+ },
+ {
+ "source": "openAIEmbeddings_1",
+ "sourceHandle": "openAIEmbeddings_1-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "target": "pinecone_1",
+ "targetHandle": "pinecone_1-input-embeddings-Embeddings",
+ "type": "buttonedge",
+ "id": "openAIEmbeddings_1-openAIEmbeddings_1-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings-pinecone_1-pinecone_1-input-embeddings-Embeddings"
+ },
+ {
+ "source": "pinecone_0",
+ "sourceHandle": "pinecone_0-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "target": "retrieverTool_2",
+ "targetHandle": "retrieverTool_2-input-retriever-BaseRetriever",
+ "type": "buttonedge",
+ "id": "pinecone_0-pinecone_0-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever-retrieverTool_2-retrieverTool_2-input-retriever-BaseRetriever"
+ },
+ {
+ "source": "pinecone_1",
+ "sourceHandle": "pinecone_1-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "target": "retrieverTool_1",
+ "targetHandle": "retrieverTool_1-input-retriever-BaseRetriever",
+ "type": "buttonedge",
+ "id": "pinecone_1-pinecone_1-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever-retrieverTool_1-retrieverTool_1-input-retriever-BaseRetriever"
+ },
+ {
+ "source": "retrieverTool_2",
+ "sourceHandle": "retrieverTool_2-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "target": "toolAgent_0",
+ "targetHandle": "toolAgent_0-input-tools-Tool",
+ "type": "buttonedge",
+ "id": "retrieverTool_2-retrieverTool_2-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable-toolAgent_0-toolAgent_0-input-tools-Tool"
+ },
+ {
+ "source": "retrieverTool_1",
+ "sourceHandle": "retrieverTool_1-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "target": "toolAgent_0",
+ "targetHandle": "toolAgent_0-input-tools-Tool",
+ "type": "buttonedge",
+ "id": "retrieverTool_1-retrieverTool_1-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable-toolAgent_0-toolAgent_0-input-tools-Tool"
+ },
+ {
+ "source": "bufferMemory_0",
+ "sourceHandle": "bufferMemory_0-output-bufferMemory-BufferMemory|BaseChatMemory|BaseMemory",
+ "target": "toolAgent_0",
+ "targetHandle": "toolAgent_0-input-memory-BaseChatMemory",
+ "type": "buttonedge",
+ "id": "bufferMemory_0-bufferMemory_0-output-bufferMemory-BufferMemory|BaseChatMemory|BaseMemory-toolAgent_0-toolAgent_0-input-memory-BaseChatMemory"
+ },
+ {
+ "source": "chatOpenAI_0",
+ "sourceHandle": "chatOpenAI_0-output-chatOpenAI-ChatOpenAI|BaseChatModel|BaseLanguageModel|Runnable",
+ "target": "toolAgent_0",
+ "targetHandle": "toolAgent_0-input-model-BaseChatModel",
+ "type": "buttonedge",
+ "id": "chatOpenAI_0-chatOpenAI_0-output-chatOpenAI-ChatOpenAI|BaseChatModel|BaseLanguageModel|Runnable-toolAgent_0-toolAgent_0-input-model-BaseChatModel"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/fr/.gitbook/assets/UD_02.png b/fr/.gitbook/assets/UD_02.png
new file mode 100644
index 00000000..a606f777
Binary files /dev/null and b/fr/.gitbook/assets/UD_02.png differ
diff --git a/fr/.gitbook/assets/UD_03.png b/fr/.gitbook/assets/UD_03.png
new file mode 100644
index 00000000..9751382e
Binary files /dev/null and b/fr/.gitbook/assets/UD_03.png differ
diff --git a/fr/.gitbook/assets/UD_04.png b/fr/.gitbook/assets/UD_04.png
new file mode 100644
index 00000000..47bb02dd
Binary files /dev/null and b/fr/.gitbook/assets/UD_04.png differ
diff --git a/fr/.gitbook/assets/UD_05.png b/fr/.gitbook/assets/UD_05.png
new file mode 100644
index 00000000..0bf972b8
Binary files /dev/null and b/fr/.gitbook/assets/UD_05.png differ
diff --git a/fr/.gitbook/assets/UD_06.png b/fr/.gitbook/assets/UD_06.png
new file mode 100644
index 00000000..7d74d610
Binary files /dev/null and b/fr/.gitbook/assets/UD_06.png differ
diff --git a/fr/.gitbook/assets/Untitled (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/Untitled (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c62be673
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/Untitled (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..69019848
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (1) (1) (1) (1).png b/fr/.gitbook/assets/Untitled (1) (1) (1) (1).png
new file mode 100644
index 00000000..850962ca
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (1) (1) (1).png b/fr/.gitbook/assets/Untitled (1) (1) (1).png
new file mode 100644
index 00000000..acf1b318
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (1).png b/fr/.gitbook/assets/Untitled (1).png
new file mode 100644
index 00000000..45c95757
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (10).png b/fr/.gitbook/assets/Untitled (10).png
new file mode 100644
index 00000000..d7fe3181
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (10).png differ
diff --git a/fr/.gitbook/assets/Untitled (2) (1) (1).png b/fr/.gitbook/assets/Untitled (2) (1) (1).png
new file mode 100644
index 00000000..33615d39
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (2) (1).png b/fr/.gitbook/assets/Untitled (2) (1).png
new file mode 100644
index 00000000..0648527a
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (2) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (2).png b/fr/.gitbook/assets/Untitled (2).png
new file mode 100644
index 00000000..9cc9bb9d
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (2).png differ
diff --git a/fr/.gitbook/assets/Untitled (3) (1).png b/fr/.gitbook/assets/Untitled (3) (1).png
new file mode 100644
index 00000000..36ea6194
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (3) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (3).png b/fr/.gitbook/assets/Untitled (3).png
new file mode 100644
index 00000000..389ddf3d
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (3).png differ
diff --git a/fr/.gitbook/assets/Untitled (4) (1).png b/fr/.gitbook/assets/Untitled (4) (1).png
new file mode 100644
index 00000000..8b45bad3
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (4) (1).png differ
diff --git a/fr/.gitbook/assets/Untitled (4).png b/fr/.gitbook/assets/Untitled (4).png
new file mode 100644
index 00000000..dfa4a00b
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (4).png differ
diff --git a/fr/.gitbook/assets/Untitled (5).png b/fr/.gitbook/assets/Untitled (5).png
new file mode 100644
index 00000000..062bbf38
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (5).png differ
diff --git a/fr/.gitbook/assets/Untitled (7).png b/fr/.gitbook/assets/Untitled (7).png
new file mode 100644
index 00000000..10807828
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (7).png differ
diff --git a/fr/.gitbook/assets/Untitled (8).png b/fr/.gitbook/assets/Untitled (8).png
new file mode 100644
index 00000000..f0386854
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (8).png differ
diff --git a/fr/.gitbook/assets/Untitled (9).png b/fr/.gitbook/assets/Untitled (9).png
new file mode 100644
index 00000000..03f2588c
Binary files /dev/null and b/fr/.gitbook/assets/Untitled (9).png differ
diff --git a/fr/.gitbook/assets/Untitled-2024-07-21-0317 (1).png b/fr/.gitbook/assets/Untitled-2024-07-21-0317 (1).png
new file mode 100644
index 00000000..efdf8e52
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2024-07-21-0317 (1).png differ
diff --git a/fr/.gitbook/assets/Untitled-2024-07-21-0317.png b/fr/.gitbook/assets/Untitled-2024-07-21-0317.png
new file mode 100644
index 00000000..29c4005c
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2024-07-21-0317.png differ
diff --git a/fr/.gitbook/assets/Untitled-2024-10-19-0050.png b/fr/.gitbook/assets/Untitled-2024-10-19-0050.png
new file mode 100644
index 00000000..de2aaac2
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2024-10-19-0050.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-01-23-1520.png b/fr/.gitbook/assets/Untitled-2025-01-23-1520.png
new file mode 100644
index 00000000..20daf8dc
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-01-23-1520.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-02-02-1727.png b/fr/.gitbook/assets/Untitled-2025-02-02-1727.png
new file mode 100644
index 00000000..5fddc42b
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-02-02-1727.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-03-02-1727.png b/fr/.gitbook/assets/Untitled-2025-03-02-1727.png
new file mode 100644
index 00000000..44ae78a9
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-03-02-1727.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-04-02-1727.png b/fr/.gitbook/assets/Untitled-2025-04-02-1727.png
new file mode 100644
index 00000000..1360ea32
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-04-02-1727.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-056-02-1727.png b/fr/.gitbook/assets/Untitled-2025-056-02-1727.png
new file mode 100644
index 00000000..52ba75a1
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-056-02-1727.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-06-15-0132 (1).png b/fr/.gitbook/assets/Untitled-2025-06-15-0132 (1).png
new file mode 100644
index 00000000..aea36a29
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-06-15-0132 (1).png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-06-15-0132.png b/fr/.gitbook/assets/Untitled-2025-06-15-0132.png
new file mode 100644
index 00000000..99b9a39d
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-06-15-0132.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-06-16-1507.png b/fr/.gitbook/assets/Untitled-2025-06-16-1507.png
new file mode 100644
index 00000000..1b214822
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-06-16-1507.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-06-19-1011.png b/fr/.gitbook/assets/Untitled-2025-06-19-1011.png
new file mode 100644
index 00000000..05e47d19
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-06-19-1011.png differ
diff --git a/fr/.gitbook/assets/Untitled-2025-10-02-1133.png b/fr/.gitbook/assets/Untitled-2025-10-02-1133.png
new file mode 100644
index 00000000..3f93f604
Binary files /dev/null and b/fr/.gitbook/assets/Untitled-2025-10-02-1133.png differ
diff --git a/fr/.gitbook/assets/Untitled.png b/fr/.gitbook/assets/Untitled.png
new file mode 100644
index 00000000..11882563
Binary files /dev/null and b/fr/.gitbook/assets/Untitled.png differ
diff --git a/fr/.gitbook/assets/XMLAgent Chatflow.json b/fr/.gitbook/assets/XMLAgent Chatflow.json
new file mode 100644
index 00000000..8c478123
--- /dev/null
+++ b/fr/.gitbook/assets/XMLAgent Chatflow.json
@@ -0,0 +1,1109 @@
+{
+ "nodes": [
+ {
+ "width": 300,
+ "height": 376,
+ "id": "bufferMemory_0",
+ "position": {
+ "x": 363.18868341411155,
+ "y": 473.71555789686244
+ },
+ "type": "customNode",
+ "data": {
+ "id": "bufferMemory_0",
+ "label": "Buffer Memory",
+ "version": 1,
+ "name": "bufferMemory",
+ "type": "BufferMemory",
+ "baseClasses": [
+ "BufferMemory",
+ "BaseChatMemory",
+ "BaseMemory"
+ ],
+ "category": "Memory",
+ "description": "Remembers previous conversational back and forths directly",
+ "inputParams": [
+ {
+ "label": "Memory Key",
+ "name": "memoryKey",
+ "type": "string",
+ "default": "chat_history",
+ "id": "bufferMemory_0-input-memoryKey-string"
+ },
+ {
+ "label": "Input Key",
+ "name": "inputKey",
+ "type": "string",
+ "default": "input",
+ "id": "bufferMemory_0-input-inputKey-string"
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "memoryKey": "chat_history",
+ "inputKey": "input"
+ },
+ "outputAnchors": [
+ {
+ "id": "bufferMemory_0-output-bufferMemory-BufferMemory|BaseChatMemory|BaseMemory",
+ "name": "bufferMemory",
+ "label": "BufferMemory",
+ "type": "BufferMemory | BaseChatMemory | BaseMemory"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "selected": false,
+ "positionAbsolute": {
+ "x": 363.18868341411155,
+ "y": 473.71555789686244
+ },
+ "dragging": false
+ },
+ {
+ "id": "xmlAgent_0",
+ "position": {
+ "x": 1492.5028255133452,
+ "y": 161.2653235031646
+ },
+ "type": "customNode",
+ "data": {
+ "id": "xmlAgent_0",
+ "label": "XML Agent",
+ "version": 2,
+ "name": "xmlAgent",
+ "type": "XMLAgent",
+ "baseClasses": [
+ "XMLAgent",
+ "BaseChain",
+ "Runnable"
+ ],
+ "category": "Agents",
+ "description": "Agent that is designed for LLMs that are good for reasoning/writing XML (e.g: Anthropic Claude)",
+ "inputParams": [
+ {
+ "label": "System Message",
+ "name": "systemMessage",
+ "type": "string",
+ "warning": "Prompt must include input variables: {tools}, {chat_history}, {input} and {agent_scratchpad}",
+ "rows": 4,
+ "default": "You are a helpful assistant. Help the user answer any questions.\n\nYou have access to the following tools:\n\n{tools}\n\nIn order to use a tool, you can use and tags. You will then get back a response in the form \nFor example, if you have a tool called 'search' that could run a google search, in order to search for the weather in SF you would respond:\n\nsearchweather in SF\n64 degrees\n\nWhen you are done, respond with a final answer between . For example:\n\nThe weather in SF is 64 degrees\n\nBegin!\n\nPrevious Conversation:\n{chat_history}\n\nQuestion: {input}\n{agent_scratchpad}",
+ "additionalParams": true,
+ "id": "xmlAgent_0-input-systemMessage-string"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Tools",
+ "name": "tools",
+ "type": "Tool",
+ "list": true,
+ "id": "xmlAgent_0-input-tools-Tool"
+ },
+ {
+ "label": "Memory",
+ "name": "memory",
+ "type": "BaseChatMemory",
+ "id": "xmlAgent_0-input-memory-BaseChatMemory"
+ },
+ {
+ "label": "Chat Model",
+ "name": "model",
+ "type": "BaseChatModel",
+ "id": "xmlAgent_0-input-model-BaseChatModel"
+ },
+ {
+ "label": "Input Moderation",
+ "description": "Detect text that could generate harmful output and prevent it from being sent to the language model",
+ "name": "inputModeration",
+ "type": "Moderation",
+ "optional": true,
+ "list": true,
+ "id": "xmlAgent_0-input-inputModeration-Moderation"
+ }
+ ],
+ "inputs": {
+ "tools": [
+ "{{retrieverTool_0.data.instance}}",
+ "{{retrieverTool_1.data.instance}}"
+ ],
+ "memory": "{{bufferMemory_0.data.instance}}",
+ "model": "{{chatAnthropic_0.data.instance}}",
+ "systemMessage": "You are a helpful assistant. Help the user answer any questions.\n\nYou have access to the following tools:\n\n{tools}\n\nIn order to use a tool, you can use and tags. You will then get back a response in the form \nFor example, if you have a tool called 'search' that could run a google search, in order to search for the weather in SF you would respond:\n\nsearchweather in SF\n64 degrees\n\nWhen you are done, respond with a final answer between . For example:\n\nThe weather in SF is 64 degrees\n\nBegin!\n\nPrevious Conversation:\n{chat_history}\n\nQuestion: {input}\n{agent_scratchpad}",
+ "inputModeration": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "xmlAgent_0-output-xmlAgent-XMLAgent|BaseChain|Runnable",
+ "name": "xmlAgent",
+ "label": "XMLAgent",
+ "description": "Agent that is designed for LLMs that are good for reasoning/writing XML (e.g: Anthropic Claude)",
+ "type": "XMLAgent | BaseChain | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 434,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 1492.5028255133452,
+ "y": 161.2653235031646
+ },
+ "dragging": false
+ },
+ {
+ "id": "chatAnthropic_0",
+ "position": {
+ "x": 1073.3453545616378,
+ "y": 298.65772549403795
+ },
+ "type": "customNode",
+ "data": {
+ "id": "chatAnthropic_0",
+ "label": "ChatAnthropic",
+ "version": 5,
+ "name": "chatAnthropic",
+ "type": "ChatAnthropic",
+ "baseClasses": [
+ "ChatAnthropic",
+ "ChatAnthropicMessages",
+ "BaseChatModel",
+ "BaseLanguageModel",
+ "Runnable"
+ ],
+ "category": "Chat Models",
+ "description": "Wrapper around ChatAnthropic large language models that use the Chat endpoint",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "anthropicApi"
+ ],
+ "id": "chatAnthropic_0-input-credential-credential"
+ },
+ {
+ "label": "Model Name",
+ "name": "modelName",
+ "type": "options",
+ "options": [
+ {
+ "label": "claude-3-haiku",
+ "name": "claude-3-haiku-20240307",
+ "description": "Fastest and most compact model, designed for near-instant responsiveness"
+ },
+ {
+ "label": "claude-3-opus",
+ "name": "claude-3-opus-20240229",
+ "description": "Most powerful model for highly complex tasks"
+ },
+ {
+ "label": "claude-3-sonnet",
+ "name": "claude-3-sonnet-20240229",
+ "description": "Ideal balance of intelligence and speed for enterprise workloads"
+ },
+ {
+ "label": "claude-2.0 (legacy)",
+ "name": "claude-2.0",
+ "description": "Claude 2 latest major version, automatically get updates to the model as they are released"
+ },
+ {
+ "label": "claude-2.1 (legacy)",
+ "name": "claude-2.1",
+ "description": "Claude 2 latest full version"
+ },
+ {
+ "label": "claude-instant-1.2 (legacy)",
+ "name": "claude-instant-1.2",
+ "description": "Claude Instant latest major version, automatically get updates to the model as they are released"
+ }
+ ],
+ "default": "claude-3-haiku",
+ "optional": true,
+ "id": "chatAnthropic_0-input-modelName-options"
+ },
+ {
+ "label": "Temperature",
+ "name": "temperature",
+ "type": "number",
+ "step": 0.1,
+ "default": 0.9,
+ "optional": true,
+ "id": "chatAnthropic_0-input-temperature-number"
+ },
+ {
+ "label": "Max Tokens",
+ "name": "maxTokensToSample",
+ "type": "number",
+ "step": 1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatAnthropic_0-input-maxTokensToSample-number"
+ },
+ {
+ "label": "Top P",
+ "name": "topP",
+ "type": "number",
+ "step": 0.1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatAnthropic_0-input-topP-number"
+ },
+ {
+ "label": "Top K",
+ "name": "topK",
+ "type": "number",
+ "step": 0.1,
+ "optional": true,
+ "additionalParams": true,
+ "id": "chatAnthropic_0-input-topK-number"
+ },
+ {
+ "label": "Allow Image Uploads",
+ "name": "allowImageUploads",
+ "type": "boolean",
+ "description": "Automatically uses claude-3-* models when image is being uploaded from chat. Only works with LLMChain, Conversation Chain, ReAct Agent, and Conversational Agent",
+ "default": false,
+ "optional": true,
+ "id": "chatAnthropic_0-input-allowImageUploads-boolean"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Cache",
+ "name": "cache",
+ "type": "BaseCache",
+ "optional": true,
+ "id": "chatAnthropic_0-input-cache-BaseCache"
+ }
+ ],
+ "inputs": {
+ "cache": "",
+ "modelName": "claude-3-sonnet-20240229",
+ "temperature": "0",
+ "maxTokensToSample": "",
+ "topP": "",
+ "topK": "",
+ "allowImageUploads": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "chatAnthropic_0-output-chatAnthropic-ChatAnthropic|ChatAnthropicMessages|BaseChatModel|BaseLanguageModel|Runnable",
+ "name": "chatAnthropic",
+ "label": "ChatAnthropic",
+ "description": "Wrapper around ChatAnthropic large language models that use the Chat endpoint",
+ "type": "ChatAnthropic | ChatAnthropicMessages | BaseChatModel | BaseLanguageModel | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 671,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 1073.3453545616378,
+ "y": 298.65772549403795
+ },
+ "dragging": false
+ },
+ {
+ "id": "retrieverTool_0",
+ "position": {
+ "x": 716.1176116429738,
+ "y": -19.654771005396583
+ },
+ "type": "customNode",
+ "data": {
+ "id": "retrieverTool_0",
+ "label": "Retriever Tool",
+ "version": 2,
+ "name": "retrieverTool",
+ "type": "RetrieverTool",
+ "baseClasses": [
+ "RetrieverTool",
+ "DynamicTool",
+ "Tool",
+ "StructuredTool",
+ "Runnable"
+ ],
+ "category": "Tools",
+ "description": "Use a retriever as allowed tool for agent",
+ "inputParams": [
+ {
+ "label": "Retriever Name",
+ "name": "name",
+ "type": "string",
+ "placeholder": "search_state_of_union",
+ "id": "retrieverTool_0-input-name-string"
+ },
+ {
+ "label": "Retriever Description",
+ "name": "description",
+ "type": "string",
+ "description": "When should agent uses to retrieve documents",
+ "rows": 3,
+ "placeholder": "Searches and returns documents regarding the state-of-the-union.",
+ "id": "retrieverTool_0-input-description-string"
+ },
+ {
+ "label": "Return Source Documents",
+ "name": "returnSourceDocuments",
+ "type": "boolean",
+ "optional": true,
+ "id": "retrieverTool_0-input-returnSourceDocuments-boolean"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Retriever",
+ "name": "retriever",
+ "type": "BaseRetriever",
+ "id": "retrieverTool_0-input-retriever-BaseRetriever"
+ }
+ ],
+ "inputs": {
+ "name": "search_apple",
+ "description": "Use this function to answer user questions about Apple Inc (APPL). It contains a SEC Form 10K filing describing the financials of Apple Inc (APPL) for the 2022 time period.",
+ "retriever": "{{pinecone_0.data.instance}}",
+ "returnSourceDocuments": true
+ },
+ "outputAnchors": [
+ {
+ "id": "retrieverTool_0-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "name": "retrieverTool",
+ "label": "RetrieverTool",
+ "description": "Use a retriever as allowed tool for agent",
+ "type": "RetrieverTool | DynamicTool | Tool | StructuredTool | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 602,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 716.1176116429738,
+ "y": -19.654771005396583
+ },
+ "dragging": false
+ },
+ {
+ "id": "pinecone_0",
+ "position": {
+ "x": 378.7110351151108,
+ "y": -122.59235389975663
+ },
+ "type": "customNode",
+ "data": {
+ "id": "pinecone_0",
+ "label": "Pinecone",
+ "version": 2,
+ "name": "pinecone",
+ "type": "Pinecone",
+ "baseClasses": [
+ "Pinecone",
+ "VectorStoreRetriever",
+ "BaseRetriever"
+ ],
+ "category": "Vector Stores",
+ "description": "Upsert embedded data and perform similarity or mmr search using Pinecone, a leading fully managed hosted vector database",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "pineconeApi"
+ ],
+ "id": "pinecone_0-input-credential-credential"
+ },
+ {
+ "label": "Pinecone Index",
+ "name": "pineconeIndex",
+ "type": "string",
+ "id": "pinecone_0-input-pineconeIndex-string"
+ },
+ {
+ "label": "Pinecone Namespace",
+ "name": "pineconeNamespace",
+ "type": "string",
+ "placeholder": "my-first-namespace",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-pineconeNamespace-string"
+ },
+ {
+ "label": "Pinecone Metadata Filter",
+ "name": "pineconeMetadataFilter",
+ "type": "json",
+ "optional": true,
+ "additionalParams": true,
+ "id": "pinecone_0-input-pineconeMetadataFilter-json"
+ },
+ {
+ "label": "Top K",
+ "name": "topK",
+ "description": "Number of top results to fetch. Default to 4",
+ "placeholder": "4",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-topK-number"
+ },
+ {
+ "label": "Search Type",
+ "name": "searchType",
+ "type": "options",
+ "default": "similarity",
+ "options": [
+ {
+ "label": "Similarity",
+ "name": "similarity"
+ },
+ {
+ "label": "Max Marginal Relevance",
+ "name": "mmr"
+ }
+ ],
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-searchType-options"
+ },
+ {
+ "label": "Fetch K (for MMR Search)",
+ "name": "fetchK",
+ "description": "Number of initial documents to fetch for MMR reranking. Default to 20. Used only when the search type is MMR",
+ "placeholder": "20",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-fetchK-number"
+ },
+ {
+ "label": "Lambda (for MMR Search)",
+ "name": "lambda",
+ "description": "Number between 0 and 1 that determines the degree of diversity among the results, where 0 corresponds to maximum diversity and 1 to minimum diversity. Used only when the search type is MMR",
+ "placeholder": "0.5",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_0-input-lambda-number"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Document",
+ "name": "document",
+ "type": "Document",
+ "list": true,
+ "optional": true,
+ "id": "pinecone_0-input-document-Document"
+ },
+ {
+ "label": "Embeddings",
+ "name": "embeddings",
+ "type": "Embeddings",
+ "id": "pinecone_0-input-embeddings-Embeddings"
+ }
+ ],
+ "inputs": {
+ "document": "",
+ "embeddings": "{{openAIEmbeddings_0.data.instance}}",
+ "pineconeIndex": "flowiseindex",
+ "pineconeNamespace": "pinecone-form10k",
+ "pineconeMetadataFilter": "{\"source\":\"apple\"}",
+ "topK": "",
+ "searchType": "similarity",
+ "fetchK": "",
+ "lambda": ""
+ },
+ "outputAnchors": [
+ {
+ "name": "output",
+ "label": "Output",
+ "type": "options",
+ "description": "",
+ "options": [
+ {
+ "id": "pinecone_0-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "name": "retriever",
+ "label": "Pinecone Retriever",
+ "description": "",
+ "type": "Pinecone | VectorStoreRetriever | BaseRetriever"
+ },
+ {
+ "id": "pinecone_0-output-vectorStore-Pinecone|VectorStore",
+ "name": "vectorStore",
+ "label": "Pinecone Vector Store",
+ "description": "",
+ "type": "Pinecone | VectorStore"
+ }
+ ],
+ "default": "retriever"
+ }
+ ],
+ "outputs": {
+ "output": "retriever"
+ },
+ "selected": false
+ },
+ "width": 300,
+ "height": 555,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 378.7110351151108,
+ "y": -122.59235389975663
+ },
+ "dragging": false
+ },
+ {
+ "id": "openAIEmbeddings_0",
+ "position": {
+ "x": -12.140161701463555,
+ "y": -54.69898887572853
+ },
+ "type": "customNode",
+ "data": {
+ "id": "openAIEmbeddings_0",
+ "label": "OpenAI Embeddings",
+ "version": 2,
+ "name": "openAIEmbeddings",
+ "type": "OpenAIEmbeddings",
+ "baseClasses": [
+ "OpenAIEmbeddings",
+ "Embeddings"
+ ],
+ "category": "Embeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "openAIApi"
+ ],
+ "id": "openAIEmbeddings_0-input-credential-credential"
+ },
+ {
+ "label": "Model Name",
+ "name": "modelName",
+ "type": "options",
+ "options": [
+ {
+ "label": "text-embedding-3-large",
+ "name": "text-embedding-3-large"
+ },
+ {
+ "label": "text-embedding-3-small",
+ "name": "text-embedding-3-small"
+ },
+ {
+ "label": "text-embedding-ada-002",
+ "name": "text-embedding-ada-002"
+ }
+ ],
+ "default": "text-embedding-ada-002",
+ "optional": true,
+ "id": "openAIEmbeddings_0-input-modelName-options"
+ },
+ {
+ "label": "Strip New Lines",
+ "name": "stripNewLines",
+ "type": "boolean",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-stripNewLines-boolean"
+ },
+ {
+ "label": "Batch Size",
+ "name": "batchSize",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-batchSize-number"
+ },
+ {
+ "label": "Timeout",
+ "name": "timeout",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-timeout-number"
+ },
+ {
+ "label": "BasePath",
+ "name": "basepath",
+ "type": "string",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_0-input-basepath-string"
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "modelName": "text-embedding-ada-002",
+ "stripNewLines": "",
+ "batchSize": "",
+ "timeout": "",
+ "basepath": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "openAIEmbeddings_0-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "name": "openAIEmbeddings",
+ "label": "OpenAIEmbeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "type": "OpenAIEmbeddings | Embeddings"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 425,
+ "selected": false,
+ "positionAbsolute": {
+ "x": -12.140161701463555,
+ "y": -54.69898887572853
+ },
+ "dragging": false
+ },
+ {
+ "id": "retrieverTool_1",
+ "position": {
+ "x": 1095.1510607975026,
+ "y": -326.06593550420894
+ },
+ "type": "customNode",
+ "data": {
+ "id": "retrieverTool_1",
+ "label": "Retriever Tool",
+ "version": 2,
+ "name": "retrieverTool",
+ "type": "RetrieverTool",
+ "baseClasses": [
+ "RetrieverTool",
+ "DynamicTool",
+ "Tool",
+ "StructuredTool",
+ "Runnable"
+ ],
+ "category": "Tools",
+ "description": "Use a retriever as allowed tool for agent",
+ "inputParams": [
+ {
+ "label": "Retriever Name",
+ "name": "name",
+ "type": "string",
+ "placeholder": "search_state_of_union",
+ "id": "retrieverTool_1-input-name-string"
+ },
+ {
+ "label": "Retriever Description",
+ "name": "description",
+ "type": "string",
+ "description": "When should agent uses to retrieve documents",
+ "rows": 3,
+ "placeholder": "Searches and returns documents regarding the state-of-the-union.",
+ "id": "retrieverTool_1-input-description-string"
+ },
+ {
+ "label": "Return Source Documents",
+ "name": "returnSourceDocuments",
+ "type": "boolean",
+ "optional": true,
+ "id": "retrieverTool_1-input-returnSourceDocuments-boolean"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Retriever",
+ "name": "retriever",
+ "type": "BaseRetriever",
+ "id": "retrieverTool_1-input-retriever-BaseRetriever"
+ }
+ ],
+ "inputs": {
+ "name": "search_tsla",
+ "description": "Use this function to answer user questions about Tesla Inc (TSLA). It contains a SEC Form 10K filing describing the financials of Tesla Inc (TSLA) for the 2022 time period.",
+ "retriever": "{{pinecone_1.data.instance}}",
+ "returnSourceDocuments": true
+ },
+ "outputAnchors": [
+ {
+ "id": "retrieverTool_1-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "name": "retrieverTool",
+ "label": "RetrieverTool",
+ "description": "Use a retriever as allowed tool for agent",
+ "type": "RetrieverTool | DynamicTool | Tool | StructuredTool | Runnable"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 602,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 1095.1510607975026,
+ "y": -326.06593550420894
+ },
+ "dragging": false
+ },
+ {
+ "id": "pinecone_1",
+ "position": {
+ "x": 762.2373165936692,
+ "y": -619.4996089374204
+ },
+ "type": "customNode",
+ "data": {
+ "id": "pinecone_1",
+ "label": "Pinecone",
+ "version": 2,
+ "name": "pinecone",
+ "type": "Pinecone",
+ "baseClasses": [
+ "Pinecone",
+ "VectorStoreRetriever",
+ "BaseRetriever"
+ ],
+ "category": "Vector Stores",
+ "description": "Upsert embedded data and perform similarity or mmr search using Pinecone, a leading fully managed hosted vector database",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "pineconeApi"
+ ],
+ "id": "pinecone_1-input-credential-credential"
+ },
+ {
+ "label": "Pinecone Index",
+ "name": "pineconeIndex",
+ "type": "string",
+ "id": "pinecone_1-input-pineconeIndex-string"
+ },
+ {
+ "label": "Pinecone Namespace",
+ "name": "pineconeNamespace",
+ "type": "string",
+ "placeholder": "my-first-namespace",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-pineconeNamespace-string"
+ },
+ {
+ "label": "Pinecone Metadata Filter",
+ "name": "pineconeMetadataFilter",
+ "type": "json",
+ "optional": true,
+ "additionalParams": true,
+ "id": "pinecone_1-input-pineconeMetadataFilter-json"
+ },
+ {
+ "label": "Top K",
+ "name": "topK",
+ "description": "Number of top results to fetch. Default to 4",
+ "placeholder": "4",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-topK-number"
+ },
+ {
+ "label": "Search Type",
+ "name": "searchType",
+ "type": "options",
+ "default": "similarity",
+ "options": [
+ {
+ "label": "Similarity",
+ "name": "similarity"
+ },
+ {
+ "label": "Max Marginal Relevance",
+ "name": "mmr"
+ }
+ ],
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-searchType-options"
+ },
+ {
+ "label": "Fetch K (for MMR Search)",
+ "name": "fetchK",
+ "description": "Number of initial documents to fetch for MMR reranking. Default to 20. Used only when the search type is MMR",
+ "placeholder": "20",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-fetchK-number"
+ },
+ {
+ "label": "Lambda (for MMR Search)",
+ "name": "lambda",
+ "description": "Number between 0 and 1 that determines the degree of diversity among the results, where 0 corresponds to maximum diversity and 1 to minimum diversity. Used only when the search type is MMR",
+ "placeholder": "0.5",
+ "type": "number",
+ "additionalParams": true,
+ "optional": true,
+ "id": "pinecone_1-input-lambda-number"
+ }
+ ],
+ "inputAnchors": [
+ {
+ "label": "Document",
+ "name": "document",
+ "type": "Document",
+ "list": true,
+ "optional": true,
+ "id": "pinecone_1-input-document-Document"
+ },
+ {
+ "label": "Embeddings",
+ "name": "embeddings",
+ "type": "Embeddings",
+ "id": "pinecone_1-input-embeddings-Embeddings"
+ }
+ ],
+ "inputs": {
+ "document": "",
+ "embeddings": "{{openAIEmbeddings_1.data.instance}}",
+ "pineconeIndex": "flowiseindex",
+ "pineconeNamespace": "pinecone-form10k",
+ "pineconeMetadataFilter": "{\"source\":\"tesla\"}",
+ "topK": "",
+ "searchType": "similarity",
+ "fetchK": "",
+ "lambda": ""
+ },
+ "outputAnchors": [
+ {
+ "name": "output",
+ "label": "Output",
+ "type": "options",
+ "description": "",
+ "options": [
+ {
+ "id": "pinecone_1-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "name": "retriever",
+ "label": "Pinecone Retriever",
+ "description": "",
+ "type": "Pinecone | VectorStoreRetriever | BaseRetriever"
+ },
+ {
+ "id": "pinecone_1-output-vectorStore-Pinecone|VectorStore",
+ "name": "vectorStore",
+ "label": "Pinecone Vector Store",
+ "description": "",
+ "type": "Pinecone | VectorStore"
+ }
+ ],
+ "default": "retriever"
+ }
+ ],
+ "outputs": {
+ "output": "retriever"
+ },
+ "selected": false
+ },
+ "width": 300,
+ "height": 555,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 762.2373165936692,
+ "y": -619.4996089374204
+ },
+ "dragging": false
+ },
+ {
+ "id": "openAIEmbeddings_1",
+ "position": {
+ "x": 416.3144430173899,
+ "y": -599.2302665481047
+ },
+ "type": "customNode",
+ "data": {
+ "id": "openAIEmbeddings_1",
+ "label": "OpenAI Embeddings",
+ "version": 2,
+ "name": "openAIEmbeddings",
+ "type": "OpenAIEmbeddings",
+ "baseClasses": [
+ "OpenAIEmbeddings",
+ "Embeddings"
+ ],
+ "category": "Embeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "inputParams": [
+ {
+ "label": "Connect Credential",
+ "name": "credential",
+ "type": "credential",
+ "credentialNames": [
+ "openAIApi"
+ ],
+ "id": "openAIEmbeddings_1-input-credential-credential"
+ },
+ {
+ "label": "Model Name",
+ "name": "modelName",
+ "type": "options",
+ "options": [
+ {
+ "label": "text-embedding-3-large",
+ "name": "text-embedding-3-large"
+ },
+ {
+ "label": "text-embedding-3-small",
+ "name": "text-embedding-3-small"
+ },
+ {
+ "label": "text-embedding-ada-002",
+ "name": "text-embedding-ada-002"
+ }
+ ],
+ "default": "text-embedding-ada-002",
+ "optional": true,
+ "id": "openAIEmbeddings_1-input-modelName-options"
+ },
+ {
+ "label": "Strip New Lines",
+ "name": "stripNewLines",
+ "type": "boolean",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-stripNewLines-boolean"
+ },
+ {
+ "label": "Batch Size",
+ "name": "batchSize",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-batchSize-number"
+ },
+ {
+ "label": "Timeout",
+ "name": "timeout",
+ "type": "number",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-timeout-number"
+ },
+ {
+ "label": "BasePath",
+ "name": "basepath",
+ "type": "string",
+ "optional": true,
+ "additionalParams": true,
+ "id": "openAIEmbeddings_1-input-basepath-string"
+ }
+ ],
+ "inputAnchors": [],
+ "inputs": {
+ "modelName": "text-embedding-ada-002",
+ "stripNewLines": "",
+ "batchSize": "",
+ "timeout": "",
+ "basepath": ""
+ },
+ "outputAnchors": [
+ {
+ "id": "openAIEmbeddings_1-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "name": "openAIEmbeddings",
+ "label": "OpenAIEmbeddings",
+ "description": "OpenAI API to generate embeddings for a given text",
+ "type": "OpenAIEmbeddings | Embeddings"
+ }
+ ],
+ "outputs": {},
+ "selected": false
+ },
+ "width": 300,
+ "height": 425,
+ "selected": false,
+ "positionAbsolute": {
+ "x": 416.3144430173899,
+ "y": -599.2302665481047
+ },
+ "dragging": false
+ }
+ ],
+ "edges": [
+ {
+ "source": "retrieverTool_0",
+ "sourceHandle": "retrieverTool_0-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "target": "xmlAgent_0",
+ "targetHandle": "xmlAgent_0-input-tools-Tool",
+ "type": "buttonedge",
+ "id": "retrieverTool_0-retrieverTool_0-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable-xmlAgent_0-xmlAgent_0-input-tools-Tool"
+ },
+ {
+ "source": "chatAnthropic_0",
+ "sourceHandle": "chatAnthropic_0-output-chatAnthropic-ChatAnthropic|ChatAnthropicMessages|BaseChatModel|BaseLanguageModel|Runnable",
+ "target": "xmlAgent_0",
+ "targetHandle": "xmlAgent_0-input-model-BaseChatModel",
+ "type": "buttonedge",
+ "id": "chatAnthropic_0-chatAnthropic_0-output-chatAnthropic-ChatAnthropic|ChatAnthropicMessages|BaseChatModel|BaseLanguageModel|Runnable-xmlAgent_0-xmlAgent_0-input-model-BaseChatModel"
+ },
+ {
+ "source": "bufferMemory_0",
+ "sourceHandle": "bufferMemory_0-output-bufferMemory-BufferMemory|BaseChatMemory|BaseMemory",
+ "target": "xmlAgent_0",
+ "targetHandle": "xmlAgent_0-input-memory-BaseChatMemory",
+ "type": "buttonedge",
+ "id": "bufferMemory_0-bufferMemory_0-output-bufferMemory-BufferMemory|BaseChatMemory|BaseMemory-xmlAgent_0-xmlAgent_0-input-memory-BaseChatMemory"
+ },
+ {
+ "source": "openAIEmbeddings_0",
+ "sourceHandle": "openAIEmbeddings_0-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "target": "pinecone_0",
+ "targetHandle": "pinecone_0-input-embeddings-Embeddings",
+ "type": "buttonedge",
+ "id": "openAIEmbeddings_0-openAIEmbeddings_0-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings-pinecone_0-pinecone_0-input-embeddings-Embeddings"
+ },
+ {
+ "source": "pinecone_0",
+ "sourceHandle": "pinecone_0-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "target": "retrieverTool_0",
+ "targetHandle": "retrieverTool_0-input-retriever-BaseRetriever",
+ "type": "buttonedge",
+ "id": "pinecone_0-pinecone_0-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever-retrieverTool_0-retrieverTool_0-input-retriever-BaseRetriever"
+ },
+ {
+ "source": "retrieverTool_1",
+ "sourceHandle": "retrieverTool_1-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable",
+ "target": "xmlAgent_0",
+ "targetHandle": "xmlAgent_0-input-tools-Tool",
+ "type": "buttonedge",
+ "id": "retrieverTool_1-retrieverTool_1-output-retrieverTool-RetrieverTool|DynamicTool|Tool|StructuredTool|Runnable-xmlAgent_0-xmlAgent_0-input-tools-Tool"
+ },
+ {
+ "source": "openAIEmbeddings_1",
+ "sourceHandle": "openAIEmbeddings_1-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings",
+ "target": "pinecone_1",
+ "targetHandle": "pinecone_1-input-embeddings-Embeddings",
+ "type": "buttonedge",
+ "id": "openAIEmbeddings_1-openAIEmbeddings_1-output-openAIEmbeddings-OpenAIEmbeddings|Embeddings-pinecone_1-pinecone_1-input-embeddings-Embeddings"
+ },
+ {
+ "source": "pinecone_1",
+ "sourceHandle": "pinecone_1-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever",
+ "target": "retrieverTool_1",
+ "targetHandle": "retrieverTool_1-input-retriever-BaseRetriever",
+ "type": "buttonedge",
+ "id": "pinecone_1-pinecone_1-output-retriever-Pinecone|VectorStoreRetriever|BaseRetriever-retrieverTool_1-retrieverTool_1-input-retriever-BaseRetriever"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/fr/.gitbook/assets/agentflow.png b/fr/.gitbook/assets/agentflow.png
new file mode 100644
index 00000000..56f87812
Binary files /dev/null and b/fr/.gitbook/assets/agentflow.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/state.png b/fr/.gitbook/assets/agentflowv2/darkmode/state.png
new file mode 100644
index 00000000..a0b3327f
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/state.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-d (1).png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-d (1).png
new file mode 100644
index 00000000..0a79dfbd
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-d (1).png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-d.png
new file mode 100644
index 00000000..b500bbe7
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-l.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-l.png
new file mode 100644
index 00000000..73a451ba
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-01-l.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-02-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-02-d.png
new file mode 100644
index 00000000..d390e90c
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-02-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-03-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-03-d.png
new file mode 100644
index 00000000..12b44523
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-03-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-04-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-04-d.png
new file mode 100644
index 00000000..ecaf2b98
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-04-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-05-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-05-d.png
new file mode 100644
index 00000000..e5e878a8
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-05-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-06-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-06-d.png
new file mode 100644
index 00000000..e03fc9dd
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-06-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-07-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-07-d.png
new file mode 100644
index 00000000..ead17d73
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-07-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-08-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-08-d.png
new file mode 100644
index 00000000..9ff5504c
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-08-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-09-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-09-d.png
new file mode 100644
index 00000000..1beccf66
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-09-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-10-d (1).png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-10-d (1).png
new file mode 100644
index 00000000..de3c1573
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-10-d (1).png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-10-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-10-d.png
new file mode 100644
index 00000000..48e713b3
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-10-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-11-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-11-d.png
new file mode 100644
index 00000000..b08ed99d
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-11-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-12-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-12-d.png
new file mode 100644
index 00000000..9afd9f5e
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-12-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-13-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-13-d.png
new file mode 100644
index 00000000..2e337950
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-13-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-14-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-14-d.png
new file mode 100644
index 00000000..0fc8c181
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-14-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-15-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-15-d.png
new file mode 100644
index 00000000..243083db
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-15-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-16-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-16-d.png
new file mode 100644
index 00000000..092f9159
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-16-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-17-d.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-17-d.png
new file mode 100644
index 00000000..43fbcc43
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-17-d.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/darkmode/v2-18-l.png b/fr/.gitbook/assets/agentflowv2/darkmode/v2-18-l.png
new file mode 100644
index 00000000..e5a23180
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/darkmode/v2-18-l.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/patterns.png b/fr/.gitbook/assets/agentflowv2/patterns.png
new file mode 100644
index 00000000..b9055b37
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/patterns.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/state.png b/fr/.gitbook/assets/agentflowv2/state.png
new file mode 100644
index 00000000..5c754fef
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/state.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-01.png b/fr/.gitbook/assets/agentflowv2/v2-01.png
new file mode 100644
index 00000000..2ca998d2
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-01.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-02.png b/fr/.gitbook/assets/agentflowv2/v2-02.png
new file mode 100644
index 00000000..e0800742
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-02.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-03.png b/fr/.gitbook/assets/agentflowv2/v2-03.png
new file mode 100644
index 00000000..c86748ca
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-03.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-04.png b/fr/.gitbook/assets/agentflowv2/v2-04.png
new file mode 100644
index 00000000..c5a32299
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-04.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-05.png b/fr/.gitbook/assets/agentflowv2/v2-05.png
new file mode 100644
index 00000000..1d6641c6
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-05.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-06.png b/fr/.gitbook/assets/agentflowv2/v2-06.png
new file mode 100644
index 00000000..feddda3f
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-06.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-07.png b/fr/.gitbook/assets/agentflowv2/v2-07.png
new file mode 100644
index 00000000..5cb4edc6
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-07.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-08.png b/fr/.gitbook/assets/agentflowv2/v2-08.png
new file mode 100644
index 00000000..5b567b55
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-08.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-09.png b/fr/.gitbook/assets/agentflowv2/v2-09.png
new file mode 100644
index 00000000..f39c5e42
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-09.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-10.png b/fr/.gitbook/assets/agentflowv2/v2-10.png
new file mode 100644
index 00000000..57c7eeec
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-10.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-11.png b/fr/.gitbook/assets/agentflowv2/v2-11.png
new file mode 100644
index 00000000..f403219f
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-11.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-12.png b/fr/.gitbook/assets/agentflowv2/v2-12.png
new file mode 100644
index 00000000..0ac5c798
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-12.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-13.png b/fr/.gitbook/assets/agentflowv2/v2-13.png
new file mode 100644
index 00000000..ed07e1c4
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-13.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-14.png b/fr/.gitbook/assets/agentflowv2/v2-14.png
new file mode 100644
index 00000000..1caae4f5
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-14.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-15.png b/fr/.gitbook/assets/agentflowv2/v2-15.png
new file mode 100644
index 00000000..7e2d4961
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-15.png differ
diff --git a/fr/.gitbook/assets/agentflowv2/v2-all-nodes.png b/fr/.gitbook/assets/agentflowv2/v2-all-nodes.png
new file mode 100644
index 00000000..c20ed065
Binary files /dev/null and b/fr/.gitbook/assets/agentflowv2/v2-all-nodes.png differ
diff --git a/fr/.gitbook/assets/analytic-1 (1).webp b/fr/.gitbook/assets/analytic-1 (1).webp
new file mode 100644
index 00000000..c4693d4d
Binary files /dev/null and b/fr/.gitbook/assets/analytic-1 (1).webp differ
diff --git a/fr/.gitbook/assets/analytic-1.webp b/fr/.gitbook/assets/analytic-1.webp
new file mode 100644
index 00000000..c4693d4d
Binary files /dev/null and b/fr/.gitbook/assets/analytic-1.webp differ
diff --git a/fr/.gitbook/assets/analytic-2.png b/fr/.gitbook/assets/analytic-2.png
new file mode 100644
index 00000000..93e50237
Binary files /dev/null and b/fr/.gitbook/assets/analytic-2.png differ
diff --git a/fr/.gitbook/assets/arize/arize-1.png b/fr/.gitbook/assets/arize/arize-1.png
new file mode 100644
index 00000000..43f9f284
Binary files /dev/null and b/fr/.gitbook/assets/arize/arize-1.png differ
diff --git a/fr/.gitbook/assets/arize/arize-2.png b/fr/.gitbook/assets/arize/arize-2.png
new file mode 100644
index 00000000..27c93cbe
Binary files /dev/null and b/fr/.gitbook/assets/arize/arize-2.png differ
diff --git a/fr/.gitbook/assets/arize/arize-3.png b/fr/.gitbook/assets/arize/arize-3.png
new file mode 100644
index 00000000..bfc69837
Binary files /dev/null and b/fr/.gitbook/assets/arize/arize-3.png differ
diff --git a/fr/.gitbook/assets/azure/azure-chatopenai/1.png b/fr/.gitbook/assets/azure/azure-chatopenai/1.png
new file mode 100644
index 00000000..acc35368
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-chatopenai/1.png differ
diff --git a/fr/.gitbook/assets/azure/azure-chatopenai/2.png b/fr/.gitbook/assets/azure/azure-chatopenai/2.png
new file mode 100644
index 00000000..372177be
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-chatopenai/2.png differ
diff --git a/fr/.gitbook/assets/azure/azure-chatopenai/3.png b/fr/.gitbook/assets/azure/azure-chatopenai/3.png
new file mode 100644
index 00000000..7d887c79
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-chatopenai/3.png differ
diff --git a/fr/.gitbook/assets/azure/azure-chatopenai/4.png b/fr/.gitbook/assets/azure/azure-chatopenai/4.png
new file mode 100644
index 00000000..03792722
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-chatopenai/4.png differ
diff --git a/fr/.gitbook/assets/azure/azure-chatopenai/5.png b/fr/.gitbook/assets/azure/azure-chatopenai/5.png
new file mode 100644
index 00000000..d53b56b1
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-chatopenai/5.png differ
diff --git a/fr/.gitbook/assets/azure/azure-general/1.png b/fr/.gitbook/assets/azure/azure-general/1.png
new file mode 100644
index 00000000..72057c9d
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-general/1.png differ
diff --git a/fr/.gitbook/assets/azure/azure-general/2.png b/fr/.gitbook/assets/azure/azure-general/2.png
new file mode 100644
index 00000000..7b13de56
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-general/2.png differ
diff --git a/fr/.gitbook/assets/azure/azure-general/3.png b/fr/.gitbook/assets/azure/azure-general/3.png
new file mode 100644
index 00000000..ca86df36
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-general/3.png differ
diff --git a/fr/.gitbook/assets/azure/azure-general/4.png b/fr/.gitbook/assets/azure/azure-general/4.png
new file mode 100644
index 00000000..1ab63c85
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-general/4.png differ
diff --git a/fr/.gitbook/assets/azure/azure-general/5.png b/fr/.gitbook/assets/azure/azure-general/5.png
new file mode 100644
index 00000000..ba561ad0
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-general/5.png differ
diff --git a/fr/.gitbook/assets/azure/azure-openai-embeddings/1.png b/fr/.gitbook/assets/azure/azure-openai-embeddings/1.png
new file mode 100644
index 00000000..e2cba6ab
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-openai-embeddings/1.png differ
diff --git a/fr/.gitbook/assets/azure/azure-openai-embeddings/2.png b/fr/.gitbook/assets/azure/azure-openai-embeddings/2.png
new file mode 100644
index 00000000..146bef6f
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-openai-embeddings/2.png differ
diff --git a/fr/.gitbook/assets/azure/azure-openai-embeddings/3.png b/fr/.gitbook/assets/azure/azure-openai-embeddings/3.png
new file mode 100644
index 00000000..bfca03d6
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-openai-embeddings/3.png differ
diff --git a/fr/.gitbook/assets/azure/azure-openai-embeddings/4.png b/fr/.gitbook/assets/azure/azure-openai-embeddings/4.png
new file mode 100644
index 00000000..39f7eaa4
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-openai-embeddings/4.png differ
diff --git a/fr/.gitbook/assets/azure/azure-openai-embeddings/5.png b/fr/.gitbook/assets/azure/azure-openai-embeddings/5.png
new file mode 100644
index 00000000..a6a0b630
Binary files /dev/null and b/fr/.gitbook/assets/azure/azure-openai-embeddings/5.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/1.png b/fr/.gitbook/assets/azure/deployment/1.png
new file mode 100644
index 00000000..bcf31620
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/1.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/2.png b/fr/.gitbook/assets/azure/deployment/2.png
new file mode 100644
index 00000000..ea7faa2b
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/2.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/3.png b/fr/.gitbook/assets/azure/deployment/3.png
new file mode 100644
index 00000000..b873f564
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/3.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/4.png b/fr/.gitbook/assets/azure/deployment/4.png
new file mode 100644
index 00000000..d2c2dac7
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/4.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/5.png b/fr/.gitbook/assets/azure/deployment/5.png
new file mode 100644
index 00000000..98a50e18
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/5.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/6.png b/fr/.gitbook/assets/azure/deployment/6.png
new file mode 100644
index 00000000..af3fe0dd
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/6.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/7.png b/fr/.gitbook/assets/azure/deployment/7.png
new file mode 100644
index 00000000..6412cab6
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/7.png differ
diff --git a/fr/.gitbook/assets/azure/deployment/8.png b/fr/.gitbook/assets/azure/deployment/8.png
new file mode 100644
index 00000000..9593bdd1
Binary files /dev/null and b/fr/.gitbook/assets/azure/deployment/8.png differ
diff --git a/fr/.gitbook/assets/chat-prompt-template-file-attachment.jpg b/fr/.gitbook/assets/chat-prompt-template-file-attachment.jpg
new file mode 100644
index 00000000..267aaead
Binary files /dev/null and b/fr/.gitbook/assets/chat-prompt-template-file-attachment.jpg differ
diff --git a/fr/.gitbook/assets/chatcometapi_node.png b/fr/.gitbook/assets/chatcometapi_node.png
new file mode 100644
index 00000000..316f4ec6
Binary files /dev/null and b/fr/.gitbook/assets/chatcometapi_node.png differ
diff --git a/fr/.gitbook/assets/conditions.png b/fr/.gitbook/assets/conditions.png
new file mode 100644
index 00000000..39eb4e60
Binary files /dev/null and b/fr/.gitbook/assets/conditions.png differ
diff --git a/fr/.gitbook/assets/contextengineering1.png b/fr/.gitbook/assets/contextengineering1.png
new file mode 100644
index 00000000..deb6c93a
Binary files /dev/null and b/fr/.gitbook/assets/contextengineering1.png differ
diff --git a/fr/.gitbook/assets/couchbase_1.png b/fr/.gitbook/assets/couchbase_1.png
new file mode 100644
index 00000000..84b8a851
Binary files /dev/null and b/fr/.gitbook/assets/couchbase_1.png differ
diff --git a/fr/.gitbook/assets/couchbase_2.png b/fr/.gitbook/assets/couchbase_2.png
new file mode 100644
index 00000000..ff321214
Binary files /dev/null and b/fr/.gitbook/assets/couchbase_2.png differ
diff --git a/fr/.gitbook/assets/couchbase_3.png b/fr/.gitbook/assets/couchbase_3.png
new file mode 100644
index 00000000..4d9547d8
Binary files /dev/null and b/fr/.gitbook/assets/couchbase_3.png differ
diff --git a/fr/.gitbook/assets/couchbase_4.png b/fr/.gitbook/assets/couchbase_4.png
new file mode 100644
index 00000000..77365936
Binary files /dev/null and b/fr/.gitbook/assets/couchbase_4.png differ
diff --git a/fr/.gitbook/assets/dark.png b/fr/.gitbook/assets/dark.png
new file mode 100644
index 00000000..2c3b0361
Binary files /dev/null and b/fr/.gitbook/assets/dark.png differ
diff --git a/fr/.gitbook/assets/dastore002.png b/fr/.gitbook/assets/dastore002.png
new file mode 100644
index 00000000..344a1377
Binary files /dev/null and b/fr/.gitbook/assets/dastore002.png differ
diff --git a/fr/.gitbook/assets/dastore003.png b/fr/.gitbook/assets/dastore003.png
new file mode 100644
index 00000000..3a7b295c
Binary files /dev/null and b/fr/.gitbook/assets/dastore003.png differ
diff --git a/fr/.gitbook/assets/dastore004.png b/fr/.gitbook/assets/dastore004.png
new file mode 100644
index 00000000..4fde8257
Binary files /dev/null and b/fr/.gitbook/assets/dastore004.png differ
diff --git a/fr/.gitbook/assets/dastore005.png b/fr/.gitbook/assets/dastore005.png
new file mode 100644
index 00000000..f6d9375f
Binary files /dev/null and b/fr/.gitbook/assets/dastore005.png differ
diff --git a/fr/.gitbook/assets/dastore006.png b/fr/.gitbook/assets/dastore006.png
new file mode 100644
index 00000000..19f16116
Binary files /dev/null and b/fr/.gitbook/assets/dastore006.png differ
diff --git a/fr/.gitbook/assets/dastore007.png b/fr/.gitbook/assets/dastore007.png
new file mode 100644
index 00000000..b6723d76
Binary files /dev/null and b/fr/.gitbook/assets/dastore007.png differ
diff --git a/fr/.gitbook/assets/dastore009.png b/fr/.gitbook/assets/dastore009.png
new file mode 100644
index 00000000..ff7e8ee6
Binary files /dev/null and b/fr/.gitbook/assets/dastore009.png differ
diff --git a/fr/.gitbook/assets/dastore010.png b/fr/.gitbook/assets/dastore010.png
new file mode 100644
index 00000000..f1af2b19
Binary files /dev/null and b/fr/.gitbook/assets/dastore010.png differ
diff --git a/fr/.gitbook/assets/dastore011.png b/fr/.gitbook/assets/dastore011.png
new file mode 100644
index 00000000..76f34028
Binary files /dev/null and b/fr/.gitbook/assets/dastore011.png differ
diff --git a/fr/.gitbook/assets/dastore013.png b/fr/.gitbook/assets/dastore013.png
new file mode 100644
index 00000000..ff23b34f
Binary files /dev/null and b/fr/.gitbook/assets/dastore013.png differ
diff --git a/fr/.gitbook/assets/ds01.png b/fr/.gitbook/assets/ds01.png
new file mode 100644
index 00000000..f367451a
Binary files /dev/null and b/fr/.gitbook/assets/ds01.png differ
diff --git a/fr/.gitbook/assets/ds02.png b/fr/.gitbook/assets/ds02.png
new file mode 100644
index 00000000..1d35e852
Binary files /dev/null and b/fr/.gitbook/assets/ds02.png differ
diff --git a/fr/.gitbook/assets/ds03.png b/fr/.gitbook/assets/ds03.png
new file mode 100644
index 00000000..3c7baf36
Binary files /dev/null and b/fr/.gitbook/assets/ds03.png differ
diff --git a/fr/.gitbook/assets/ds04.png b/fr/.gitbook/assets/ds04.png
new file mode 100644
index 00000000..09627178
Binary files /dev/null and b/fr/.gitbook/assets/ds04.png differ
diff --git a/fr/.gitbook/assets/ds05.png b/fr/.gitbook/assets/ds05.png
new file mode 100644
index 00000000..11aa1b97
Binary files /dev/null and b/fr/.gitbook/assets/ds05.png differ
diff --git a/fr/.gitbook/assets/ds06.png b/fr/.gitbook/assets/ds06.png
new file mode 100644
index 00000000..a0079416
Binary files /dev/null and b/fr/.gitbook/assets/ds06.png differ
diff --git a/fr/.gitbook/assets/ds07.png b/fr/.gitbook/assets/ds07.png
new file mode 100644
index 00000000..ed6d4a98
Binary files /dev/null and b/fr/.gitbook/assets/ds07.png differ
diff --git a/fr/.gitbook/assets/ds08.png b/fr/.gitbook/assets/ds08.png
new file mode 100644
index 00000000..71685a91
Binary files /dev/null and b/fr/.gitbook/assets/ds08.png differ
diff --git a/fr/.gitbook/assets/ds09.png b/fr/.gitbook/assets/ds09.png
new file mode 100644
index 00000000..6fbb54a8
Binary files /dev/null and b/fr/.gitbook/assets/ds09.png differ
diff --git a/fr/.gitbook/assets/ds10.png b/fr/.gitbook/assets/ds10.png
new file mode 100644
index 00000000..1d02a2bd
Binary files /dev/null and b/fr/.gitbook/assets/ds10.png differ
diff --git a/fr/.gitbook/assets/ds11.png b/fr/.gitbook/assets/ds11.png
new file mode 100644
index 00000000..24deedee
Binary files /dev/null and b/fr/.gitbook/assets/ds11.png differ
diff --git a/fr/.gitbook/assets/ds12.png b/fr/.gitbook/assets/ds12.png
new file mode 100644
index 00000000..0cf27b10
Binary files /dev/null and b/fr/.gitbook/assets/ds12.png differ
diff --git a/fr/.gitbook/assets/ds13.png b/fr/.gitbook/assets/ds13.png
new file mode 100644
index 00000000..7d74609e
Binary files /dev/null and b/fr/.gitbook/assets/ds13.png differ
diff --git a/fr/.gitbook/assets/ds15.png b/fr/.gitbook/assets/ds15.png
new file mode 100644
index 00000000..9026ab88
Binary files /dev/null and b/fr/.gitbook/assets/ds15.png differ
diff --git a/fr/.gitbook/assets/elastic1.png b/fr/.gitbook/assets/elastic1.png
new file mode 100644
index 00000000..be5fe37b
Binary files /dev/null and b/fr/.gitbook/assets/elastic1.png differ
diff --git a/fr/.gitbook/assets/elastic10.png b/fr/.gitbook/assets/elastic10.png
new file mode 100644
index 00000000..8ffc19b4
Binary files /dev/null and b/fr/.gitbook/assets/elastic10.png differ
diff --git a/fr/.gitbook/assets/elastic11.png b/fr/.gitbook/assets/elastic11.png
new file mode 100644
index 00000000..06307d7c
Binary files /dev/null and b/fr/.gitbook/assets/elastic11.png differ
diff --git a/fr/.gitbook/assets/elastic12.png b/fr/.gitbook/assets/elastic12.png
new file mode 100644
index 00000000..546f772f
Binary files /dev/null and b/fr/.gitbook/assets/elastic12.png differ
diff --git a/fr/.gitbook/assets/elastic13.png b/fr/.gitbook/assets/elastic13.png
new file mode 100644
index 00000000..3ed8b9b3
Binary files /dev/null and b/fr/.gitbook/assets/elastic13.png differ
diff --git a/fr/.gitbook/assets/elastic2.png b/fr/.gitbook/assets/elastic2.png
new file mode 100644
index 00000000..1e562041
Binary files /dev/null and b/fr/.gitbook/assets/elastic2.png differ
diff --git a/fr/.gitbook/assets/elastic3.png b/fr/.gitbook/assets/elastic3.png
new file mode 100644
index 00000000..427e6221
Binary files /dev/null and b/fr/.gitbook/assets/elastic3.png differ
diff --git a/fr/.gitbook/assets/elastic4.png b/fr/.gitbook/assets/elastic4.png
new file mode 100644
index 00000000..7af0ed03
Binary files /dev/null and b/fr/.gitbook/assets/elastic4.png differ
diff --git a/fr/.gitbook/assets/elastic5.png b/fr/.gitbook/assets/elastic5.png
new file mode 100644
index 00000000..5c56ee8f
Binary files /dev/null and b/fr/.gitbook/assets/elastic5.png differ
diff --git a/fr/.gitbook/assets/elastic6.png b/fr/.gitbook/assets/elastic6.png
new file mode 100644
index 00000000..8cf14213
Binary files /dev/null and b/fr/.gitbook/assets/elastic6.png differ
diff --git a/fr/.gitbook/assets/elastic7.png b/fr/.gitbook/assets/elastic7.png
new file mode 100644
index 00000000..e5a960b9
Binary files /dev/null and b/fr/.gitbook/assets/elastic7.png differ
diff --git a/fr/.gitbook/assets/elastic8.png b/fr/.gitbook/assets/elastic8.png
new file mode 100644
index 00000000..e6a04e8a
Binary files /dev/null and b/fr/.gitbook/assets/elastic8.png differ
diff --git a/fr/.gitbook/assets/elastic9.png b/fr/.gitbook/assets/elastic9.png
new file mode 100644
index 00000000..25533262
Binary files /dev/null and b/fr/.gitbook/assets/elastic9.png differ
diff --git a/fr/.gitbook/assets/flowise.gif b/fr/.gitbook/assets/flowise.gif
new file mode 100644
index 00000000..07101bc2
Binary files /dev/null and b/fr/.gitbook/assets/flowise.gif differ
diff --git a/fr/.gitbook/assets/gcp/1.png b/fr/.gitbook/assets/gcp/1.png
new file mode 100644
index 00000000..5567b6e4
Binary files /dev/null and b/fr/.gitbook/assets/gcp/1.png differ
diff --git a/fr/.gitbook/assets/gcp/2.png b/fr/.gitbook/assets/gcp/2.png
new file mode 100644
index 00000000..38e69e26
Binary files /dev/null and b/fr/.gitbook/assets/gcp/2.png differ
diff --git a/fr/.gitbook/assets/gcp/3.png b/fr/.gitbook/assets/gcp/3.png
new file mode 100644
index 00000000..31a74b57
Binary files /dev/null and b/fr/.gitbook/assets/gcp/3.png differ
diff --git a/fr/.gitbook/assets/gcp/4.png b/fr/.gitbook/assets/gcp/4.png
new file mode 100644
index 00000000..9da60626
Binary files /dev/null and b/fr/.gitbook/assets/gcp/4.png differ
diff --git a/fr/.gitbook/assets/gcp/5.png b/fr/.gitbook/assets/gcp/5.png
new file mode 100644
index 00000000..b261f7dc
Binary files /dev/null and b/fr/.gitbook/assets/gcp/5.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/add_key.png b/fr/.gitbook/assets/gcp_credential/add_key.png
new file mode 100644
index 00000000..f5bc8779
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/add_key.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/create_credential.png b/fr/.gitbook/assets/gcp_credential/create_credential.png
new file mode 100644
index 00000000..2f971263
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/create_credential.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/create_key.png b/fr/.gitbook/assets/gcp_credential/create_key.png
new file mode 100644
index 00000000..f3ae424f
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/create_key.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/create_service_account.png b/fr/.gitbook/assets/gcp_credential/create_service_account.png
new file mode 100644
index 00000000..cf02cf12
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/create_service_account.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/google_vertex_auth.png b/fr/.gitbook/assets/gcp_credential/google_vertex_auth.png
new file mode 100644
index 00000000..8d850444
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/google_vertex_auth.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/register_credential.png b/fr/.gitbook/assets/gcp_credential/register_credential.png
new file mode 100644
index 00000000..4eb2ee58
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/register_credential.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/select_role.png b/fr/.gitbook/assets/gcp_credential/select_role.png
new file mode 100644
index 00000000..d8eb25fa
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/select_role.png differ
diff --git a/fr/.gitbook/assets/gcp_credential/vertex_AI_enable.png b/fr/.gitbook/assets/gcp_credential/vertex_AI_enable.png
new file mode 100644
index 00000000..7fa3cc19
Binary files /dev/null and b/fr/.gitbook/assets/gcp_credential/vertex_AI_enable.png differ
diff --git a/fr/.gitbook/assets/giphy.gif b/fr/.gitbook/assets/giphy.gif
new file mode 100644
index 00000000..67b89396
Binary files /dev/null and b/fr/.gitbook/assets/giphy.gif differ
diff --git a/fr/.gitbook/assets/google_ai/1.png b/fr/.gitbook/assets/google_ai/1.png
new file mode 100644
index 00000000..986cbb58
Binary files /dev/null and b/fr/.gitbook/assets/google_ai/1.png differ
diff --git a/fr/.gitbook/assets/google_ai/2.png b/fr/.gitbook/assets/google_ai/2.png
new file mode 100644
index 00000000..eb38783f
Binary files /dev/null and b/fr/.gitbook/assets/google_ai/2.png differ
diff --git a/fr/.gitbook/assets/google_ai/3.png b/fr/.gitbook/assets/google_ai/3.png
new file mode 100644
index 00000000..b9317a13
Binary files /dev/null and b/fr/.gitbook/assets/google_ai/3.png differ
diff --git a/fr/.gitbook/assets/google_ai/4.png b/fr/.gitbook/assets/google_ai/4.png
new file mode 100644
index 00000000..a4892c89
Binary files /dev/null and b/fr/.gitbook/assets/google_ai/4.png differ
diff --git a/fr/.gitbook/assets/google_ai/5.png b/fr/.gitbook/assets/google_ai/5.png
new file mode 100644
index 00000000..0a98c385
Binary files /dev/null and b/fr/.gitbook/assets/google_ai/5.png differ
diff --git a/fr/.gitbook/assets/google_ai/6.png b/fr/.gitbook/assets/google_ai/6.png
new file mode 100644
index 00000000..8147cce7
Binary files /dev/null and b/fr/.gitbook/assets/google_ai/6.png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..a526cf08
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..3bb4b8f6
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..34c6a450
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..3d01ff6e
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..e4476d4a
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..3d7f3708
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..acca8811
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..dbd0aa75
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..0ee4d8a6
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..6ad2816a
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..6e93ba22
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..96a22bd6
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..fdd17721
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..b3871bd9
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png
new file mode 100644
index 00000000..01d34008
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..7ef75937
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..9dd4614e
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..9020bb70
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..84a0ce96
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..340f570b
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c1b7ba8a
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..efdbc782
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..037d1f51
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..a623e97b
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..bcd88739
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..b082f202
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..f0b230ff
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..a15352be
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..7a74d953
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..f215b2ae
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..4eb0dd44
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..def92321
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..22b7d480
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..cc83af61
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..4530edde
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..68be3658
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ac18f752
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png
new file mode 100644
index 00000000..3c94a1dc
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..bc1f831a
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..b9aa1d82
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..15be701e
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5338dc1f
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..4dfcd5b3
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..6ac0d59c
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..558b4cad
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (1).png
new file mode 100644
index 00000000..d092f8d7
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..8e38fc1e
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (1) (2).png
new file mode 100644
index 00000000..803c3975
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (1).png
new file mode 100644
index 00000000..cca977e9
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (2) (1).png b/fr/.gitbook/assets/image (1) (1) (2) (1).png
new file mode 100644
index 00000000..59122a4f
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (2).png b/fr/.gitbook/assets/image (1) (1) (2).png
new file mode 100644
index 00000000..ce87876b
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (3) (1) (1).png b/fr/.gitbook/assets/image (1) (1) (3) (1) (1).png
new file mode 100644
index 00000000..9188b08c
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (3) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (3) (1).png b/fr/.gitbook/assets/image (1) (1) (3) (1).png
new file mode 100644
index 00000000..a669684b
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (3) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (1) (3).png b/fr/.gitbook/assets/image (1) (1) (3).png
new file mode 100644
index 00000000..a7aa0c6f
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (1) (1).png b/fr/.gitbook/assets/image (1) (1).png
new file mode 100644
index 00000000..8c466dad
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (2) (1).png b/fr/.gitbook/assets/image (1) (2) (1).png
new file mode 100644
index 00000000..ebba846f
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (1) (2).png b/fr/.gitbook/assets/image (1) (2).png
new file mode 100644
index 00000000..42228062
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (1) (3).png b/fr/.gitbook/assets/image (1) (3).png
new file mode 100644
index 00000000..d8512040
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (1) (4).png b/fr/.gitbook/assets/image (1) (4).png
new file mode 100644
index 00000000..f5860f26
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (4).png differ
diff --git a/fr/.gitbook/assets/image (1) (5).png b/fr/.gitbook/assets/image (1) (5).png
new file mode 100644
index 00000000..775a46e5
Binary files /dev/null and b/fr/.gitbook/assets/image (1) (5).png differ
diff --git a/fr/.gitbook/assets/image (1).png b/fr/.gitbook/assets/image (1).png
new file mode 100644
index 00000000..c80dfd58
Binary files /dev/null and b/fr/.gitbook/assets/image (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2627f3a5
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..619c9b67
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..d5db1644
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..0e574164
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..841850eb
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (1).png
new file mode 100644
index 00000000..84c68e31
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (10) (1) (1) (1) (2).png
new file mode 100644
index 00000000..f4565750
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (1).png b/fr/.gitbook/assets/image (10) (1) (1) (1).png
new file mode 100644
index 00000000..e4cfae74
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1) (2).png b/fr/.gitbook/assets/image (10) (1) (1) (2).png
new file mode 100644
index 00000000..b379ec18
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (1).png b/fr/.gitbook/assets/image (10) (1) (1).png
new file mode 100644
index 00000000..0a3f033b
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (1) (2).png b/fr/.gitbook/assets/image (10) (1) (2).png
new file mode 100644
index 00000000..d456aea7
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (10) (1).png b/fr/.gitbook/assets/image (10) (1).png
new file mode 100644
index 00000000..7f8047af
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (2) (1).png b/fr/.gitbook/assets/image (10) (2) (1).png
new file mode 100644
index 00000000..7f52f55a
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (10) (2).png b/fr/.gitbook/assets/image (10) (2).png
new file mode 100644
index 00000000..32f0646b
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (2).png differ
diff --git a/fr/.gitbook/assets/image (10) (3).png b/fr/.gitbook/assets/image (10) (3).png
new file mode 100644
index 00000000..ac53208d
Binary files /dev/null and b/fr/.gitbook/assets/image (10) (3).png differ
diff --git a/fr/.gitbook/assets/image (10).png b/fr/.gitbook/assets/image (10).png
new file mode 100644
index 00000000..dd905ffd
Binary files /dev/null and b/fr/.gitbook/assets/image (10).png differ
diff --git a/fr/.gitbook/assets/image (100).png b/fr/.gitbook/assets/image (100).png
new file mode 100644
index 00000000..1030565b
Binary files /dev/null and b/fr/.gitbook/assets/image (100).png differ
diff --git a/fr/.gitbook/assets/image (101).png b/fr/.gitbook/assets/image (101).png
new file mode 100644
index 00000000..43503a93
Binary files /dev/null and b/fr/.gitbook/assets/image (101).png differ
diff --git a/fr/.gitbook/assets/image (102).png b/fr/.gitbook/assets/image (102).png
new file mode 100644
index 00000000..b4bb4cd9
Binary files /dev/null and b/fr/.gitbook/assets/image (102).png differ
diff --git a/fr/.gitbook/assets/image (103).png b/fr/.gitbook/assets/image (103).png
new file mode 100644
index 00000000..661f4981
Binary files /dev/null and b/fr/.gitbook/assets/image (103).png differ
diff --git a/fr/.gitbook/assets/image (104).png b/fr/.gitbook/assets/image (104).png
new file mode 100644
index 00000000..72d1b916
Binary files /dev/null and b/fr/.gitbook/assets/image (104).png differ
diff --git a/fr/.gitbook/assets/image (105).png b/fr/.gitbook/assets/image (105).png
new file mode 100644
index 00000000..f39017cc
Binary files /dev/null and b/fr/.gitbook/assets/image (105).png differ
diff --git a/fr/.gitbook/assets/image (106).png b/fr/.gitbook/assets/image (106).png
new file mode 100644
index 00000000..b74bee50
Binary files /dev/null and b/fr/.gitbook/assets/image (106).png differ
diff --git a/fr/.gitbook/assets/image (107).png b/fr/.gitbook/assets/image (107).png
new file mode 100644
index 00000000..17453be4
Binary files /dev/null and b/fr/.gitbook/assets/image (107).png differ
diff --git a/fr/.gitbook/assets/image (108).png b/fr/.gitbook/assets/image (108).png
new file mode 100644
index 00000000..b0b9abe9
Binary files /dev/null and b/fr/.gitbook/assets/image (108).png differ
diff --git a/fr/.gitbook/assets/image (109).png b/fr/.gitbook/assets/image (109).png
new file mode 100644
index 00000000..8a34f838
Binary files /dev/null and b/fr/.gitbook/assets/image (109).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..8e74d8d2
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..39f86040
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..d040dbe8
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..a1f50e01
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5d08d059
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5288c1c5
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1) (1).png
new file mode 100644
index 00000000..06b0a6a6
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1) (2).png b/fr/.gitbook/assets/image (11) (1) (1) (2).png
new file mode 100644
index 00000000..4c68c399
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (11) (1) (1).png b/fr/.gitbook/assets/image (11) (1) (1).png
new file mode 100644
index 00000000..181ee0d4
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (1).png b/fr/.gitbook/assets/image (11) (1).png
new file mode 100644
index 00000000..8e191be9
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (1).png differ
diff --git a/fr/.gitbook/assets/image (11) (2).png b/fr/.gitbook/assets/image (11) (2).png
new file mode 100644
index 00000000..addf1166
Binary files /dev/null and b/fr/.gitbook/assets/image (11) (2).png differ
diff --git a/fr/.gitbook/assets/image (11).png b/fr/.gitbook/assets/image (11).png
new file mode 100644
index 00000000..d4a08105
Binary files /dev/null and b/fr/.gitbook/assets/image (11).png differ
diff --git a/fr/.gitbook/assets/image (110).png b/fr/.gitbook/assets/image (110).png
new file mode 100644
index 00000000..350efaa5
Binary files /dev/null and b/fr/.gitbook/assets/image (110).png differ
diff --git a/fr/.gitbook/assets/image (111).png b/fr/.gitbook/assets/image (111).png
new file mode 100644
index 00000000..62705295
Binary files /dev/null and b/fr/.gitbook/assets/image (111).png differ
diff --git a/fr/.gitbook/assets/image (112).png b/fr/.gitbook/assets/image (112).png
new file mode 100644
index 00000000..d0d5a7ad
Binary files /dev/null and b/fr/.gitbook/assets/image (112).png differ
diff --git a/fr/.gitbook/assets/image (113).png b/fr/.gitbook/assets/image (113).png
new file mode 100644
index 00000000..36fcbd16
Binary files /dev/null and b/fr/.gitbook/assets/image (113).png differ
diff --git a/fr/.gitbook/assets/image (114).png b/fr/.gitbook/assets/image (114).png
new file mode 100644
index 00000000..5d881f93
Binary files /dev/null and b/fr/.gitbook/assets/image (114).png differ
diff --git a/fr/.gitbook/assets/image (115).png b/fr/.gitbook/assets/image (115).png
new file mode 100644
index 00000000..29629d57
Binary files /dev/null and b/fr/.gitbook/assets/image (115).png differ
diff --git a/fr/.gitbook/assets/image (116).png b/fr/.gitbook/assets/image (116).png
new file mode 100644
index 00000000..a060a0a1
Binary files /dev/null and b/fr/.gitbook/assets/image (116).png differ
diff --git a/fr/.gitbook/assets/image (117).png b/fr/.gitbook/assets/image (117).png
new file mode 100644
index 00000000..32990a7d
Binary files /dev/null and b/fr/.gitbook/assets/image (117).png differ
diff --git a/fr/.gitbook/assets/image (118).png b/fr/.gitbook/assets/image (118).png
new file mode 100644
index 00000000..15ac7fea
Binary files /dev/null and b/fr/.gitbook/assets/image (118).png differ
diff --git a/fr/.gitbook/assets/image (119).png b/fr/.gitbook/assets/image (119).png
new file mode 100644
index 00000000..34cc00e1
Binary files /dev/null and b/fr/.gitbook/assets/image (119).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (12) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ae9b54c3
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (12) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5aa164fc
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (12) (1) (1) (1) (1).png
new file mode 100644
index 00000000..f93a6122
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (12) (1) (1) (1) (2).png
new file mode 100644
index 00000000..4c575dd8
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1) (1).png b/fr/.gitbook/assets/image (12) (1) (1) (1).png
new file mode 100644
index 00000000..ef4f7db1
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1) (2).png b/fr/.gitbook/assets/image (12) (1) (1) (2).png
new file mode 100644
index 00000000..c19a49ea
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (1).png b/fr/.gitbook/assets/image (12) (1) (1).png
new file mode 100644
index 00000000..deb4e36b
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (1) (2).png b/fr/.gitbook/assets/image (12) (1) (2).png
new file mode 100644
index 00000000..11ba8b6b
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (12) (1).png b/fr/.gitbook/assets/image (12) (1).png
new file mode 100644
index 00000000..0160ac3d
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (2) (1).png b/fr/.gitbook/assets/image (12) (2) (1).png
new file mode 100644
index 00000000..22f9a6ff
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (12) (2) (2).png b/fr/.gitbook/assets/image (12) (2) (2).png
new file mode 100644
index 00000000..edbd4a0c
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (2) (2).png differ
diff --git a/fr/.gitbook/assets/image (12) (2).png b/fr/.gitbook/assets/image (12) (2).png
new file mode 100644
index 00000000..149b5889
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (2).png differ
diff --git a/fr/.gitbook/assets/image (12) (3).png b/fr/.gitbook/assets/image (12) (3).png
new file mode 100644
index 00000000..d3cf907b
Binary files /dev/null and b/fr/.gitbook/assets/image (12) (3).png differ
diff --git a/fr/.gitbook/assets/image (12).png b/fr/.gitbook/assets/image (12).png
new file mode 100644
index 00000000..10c9e4bd
Binary files /dev/null and b/fr/.gitbook/assets/image (12).png differ
diff --git a/fr/.gitbook/assets/image (120).png b/fr/.gitbook/assets/image (120).png
new file mode 100644
index 00000000..67d36adc
Binary files /dev/null and b/fr/.gitbook/assets/image (120).png differ
diff --git a/fr/.gitbook/assets/image (121).png b/fr/.gitbook/assets/image (121).png
new file mode 100644
index 00000000..3a4b62d2
Binary files /dev/null and b/fr/.gitbook/assets/image (121).png differ
diff --git a/fr/.gitbook/assets/image (122).png b/fr/.gitbook/assets/image (122).png
new file mode 100644
index 00000000..7a519c93
Binary files /dev/null and b/fr/.gitbook/assets/image (122).png differ
diff --git a/fr/.gitbook/assets/image (123).png b/fr/.gitbook/assets/image (123).png
new file mode 100644
index 00000000..d60b1496
Binary files /dev/null and b/fr/.gitbook/assets/image (123).png differ
diff --git a/fr/.gitbook/assets/image (124).png b/fr/.gitbook/assets/image (124).png
new file mode 100644
index 00000000..33cfd22c
Binary files /dev/null and b/fr/.gitbook/assets/image (124).png differ
diff --git a/fr/.gitbook/assets/image (125).png b/fr/.gitbook/assets/image (125).png
new file mode 100644
index 00000000..a8713756
Binary files /dev/null and b/fr/.gitbook/assets/image (125).png differ
diff --git a/fr/.gitbook/assets/image (126).png b/fr/.gitbook/assets/image (126).png
new file mode 100644
index 00000000..9060a484
Binary files /dev/null and b/fr/.gitbook/assets/image (126).png differ
diff --git a/fr/.gitbook/assets/image (127).png b/fr/.gitbook/assets/image (127).png
new file mode 100644
index 00000000..2b542c81
Binary files /dev/null and b/fr/.gitbook/assets/image (127).png differ
diff --git a/fr/.gitbook/assets/image (128).png b/fr/.gitbook/assets/image (128).png
new file mode 100644
index 00000000..83583e62
Binary files /dev/null and b/fr/.gitbook/assets/image (128).png differ
diff --git a/fr/.gitbook/assets/image (129).png b/fr/.gitbook/assets/image (129).png
new file mode 100644
index 00000000..9950d727
Binary files /dev/null and b/fr/.gitbook/assets/image (129).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (13) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..eadf03a5
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (13) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..4f2268c3
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (13) (1) (1) (1) (1).png
new file mode 100644
index 00000000..8b3effe6
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1) (1).png b/fr/.gitbook/assets/image (13) (1) (1) (1).png
new file mode 100644
index 00000000..ba490a8c
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (13) (1) (1) (2) (1).png
new file mode 100644
index 00000000..8fb5c8b3
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1) (2).png b/fr/.gitbook/assets/image (13) (1) (1) (2).png
new file mode 100644
index 00000000..32204e65
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (13) (1) (1).png b/fr/.gitbook/assets/image (13) (1) (1).png
new file mode 100644
index 00000000..e1fb4fb1
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (1).png b/fr/.gitbook/assets/image (13) (1).png
new file mode 100644
index 00000000..4c09c833
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (2) (1).png b/fr/.gitbook/assets/image (13) (2) (1).png
new file mode 100644
index 00000000..1d83d9f4
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (13) (2) (2).png b/fr/.gitbook/assets/image (13) (2) (2).png
new file mode 100644
index 00000000..6a43418e
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (2) (2).png differ
diff --git a/fr/.gitbook/assets/image (13) (2).png b/fr/.gitbook/assets/image (13) (2).png
new file mode 100644
index 00000000..070e8fff
Binary files /dev/null and b/fr/.gitbook/assets/image (13) (2).png differ
diff --git a/fr/.gitbook/assets/image (13).png b/fr/.gitbook/assets/image (13).png
new file mode 100644
index 00000000..8435ddea
Binary files /dev/null and b/fr/.gitbook/assets/image (13).png differ
diff --git a/fr/.gitbook/assets/image (130).png b/fr/.gitbook/assets/image (130).png
new file mode 100644
index 00000000..e2955bf0
Binary files /dev/null and b/fr/.gitbook/assets/image (130).png differ
diff --git a/fr/.gitbook/assets/image (131).png b/fr/.gitbook/assets/image (131).png
new file mode 100644
index 00000000..50dbc679
Binary files /dev/null and b/fr/.gitbook/assets/image (131).png differ
diff --git a/fr/.gitbook/assets/image (132).png b/fr/.gitbook/assets/image (132).png
new file mode 100644
index 00000000..71ec7568
Binary files /dev/null and b/fr/.gitbook/assets/image (132).png differ
diff --git a/fr/.gitbook/assets/image (133).png b/fr/.gitbook/assets/image (133).png
new file mode 100644
index 00000000..dba6e212
Binary files /dev/null and b/fr/.gitbook/assets/image (133).png differ
diff --git a/fr/.gitbook/assets/image (134).png b/fr/.gitbook/assets/image (134).png
new file mode 100644
index 00000000..e7b987ce
Binary files /dev/null and b/fr/.gitbook/assets/image (134).png differ
diff --git a/fr/.gitbook/assets/image (135).png b/fr/.gitbook/assets/image (135).png
new file mode 100644
index 00000000..3e096df3
Binary files /dev/null and b/fr/.gitbook/assets/image (135).png differ
diff --git a/fr/.gitbook/assets/image (136).png b/fr/.gitbook/assets/image (136).png
new file mode 100644
index 00000000..fd3709f5
Binary files /dev/null and b/fr/.gitbook/assets/image (136).png differ
diff --git a/fr/.gitbook/assets/image (137).png b/fr/.gitbook/assets/image (137).png
new file mode 100644
index 00000000..fe6d18ed
Binary files /dev/null and b/fr/.gitbook/assets/image (137).png differ
diff --git a/fr/.gitbook/assets/image (138).png b/fr/.gitbook/assets/image (138).png
new file mode 100644
index 00000000..714bf944
Binary files /dev/null and b/fr/.gitbook/assets/image (138).png differ
diff --git a/fr/.gitbook/assets/image (139).png b/fr/.gitbook/assets/image (139).png
new file mode 100644
index 00000000..bde86b49
Binary files /dev/null and b/fr/.gitbook/assets/image (139).png differ
diff --git a/fr/.gitbook/assets/image (14) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (14) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..cea9d5b7
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (14) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (14) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..339c68b7
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (14) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (14) (1) (1) (1) (1).png
new file mode 100644
index 00000000..03618507
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (14) (1) (1) (1).png b/fr/.gitbook/assets/image (14) (1) (1) (1).png
new file mode 100644
index 00000000..066a3025
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (14) (1) (1) (2).png b/fr/.gitbook/assets/image (14) (1) (1) (2).png
new file mode 100644
index 00000000..0e7c5b04
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (14) (1) (1).png b/fr/.gitbook/assets/image (14) (1) (1).png
new file mode 100644
index 00000000..d0f7462f
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (14) (1).png b/fr/.gitbook/assets/image (14) (1).png
new file mode 100644
index 00000000..39e225a6
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (1).png differ
diff --git a/fr/.gitbook/assets/image (14) (2).png b/fr/.gitbook/assets/image (14) (2).png
new file mode 100644
index 00000000..92c99bd7
Binary files /dev/null and b/fr/.gitbook/assets/image (14) (2).png differ
diff --git a/fr/.gitbook/assets/image (14).png b/fr/.gitbook/assets/image (14).png
new file mode 100644
index 00000000..d52bd4da
Binary files /dev/null and b/fr/.gitbook/assets/image (14).png differ
diff --git a/fr/.gitbook/assets/image (140).png b/fr/.gitbook/assets/image (140).png
new file mode 100644
index 00000000..d3bec65d
Binary files /dev/null and b/fr/.gitbook/assets/image (140).png differ
diff --git a/fr/.gitbook/assets/image (141).png b/fr/.gitbook/assets/image (141).png
new file mode 100644
index 00000000..004a46b3
Binary files /dev/null and b/fr/.gitbook/assets/image (141).png differ
diff --git a/fr/.gitbook/assets/image (142).png b/fr/.gitbook/assets/image (142).png
new file mode 100644
index 00000000..d814dc41
Binary files /dev/null and b/fr/.gitbook/assets/image (142).png differ
diff --git a/fr/.gitbook/assets/image (143).png b/fr/.gitbook/assets/image (143).png
new file mode 100644
index 00000000..c622470e
Binary files /dev/null and b/fr/.gitbook/assets/image (143).png differ
diff --git a/fr/.gitbook/assets/image (144).png b/fr/.gitbook/assets/image (144).png
new file mode 100644
index 00000000..998565bc
Binary files /dev/null and b/fr/.gitbook/assets/image (144).png differ
diff --git a/fr/.gitbook/assets/image (145).png b/fr/.gitbook/assets/image (145).png
new file mode 100644
index 00000000..907a8ea8
Binary files /dev/null and b/fr/.gitbook/assets/image (145).png differ
diff --git a/fr/.gitbook/assets/image (146).png b/fr/.gitbook/assets/image (146).png
new file mode 100644
index 00000000..bc69c855
Binary files /dev/null and b/fr/.gitbook/assets/image (146).png differ
diff --git a/fr/.gitbook/assets/image (147).png b/fr/.gitbook/assets/image (147).png
new file mode 100644
index 00000000..84f102c7
Binary files /dev/null and b/fr/.gitbook/assets/image (147).png differ
diff --git a/fr/.gitbook/assets/image (148).png b/fr/.gitbook/assets/image (148).png
new file mode 100644
index 00000000..af3d88cb
Binary files /dev/null and b/fr/.gitbook/assets/image (148).png differ
diff --git a/fr/.gitbook/assets/image (149).png b/fr/.gitbook/assets/image (149).png
new file mode 100644
index 00000000..a46fc5de
Binary files /dev/null and b/fr/.gitbook/assets/image (149).png differ
diff --git a/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c99d558a
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..556cd567
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..434ea80d
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (15) (1) (1) (1) (1).png
new file mode 100644
index 00000000..66a11f53
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (1) (1) (1).png b/fr/.gitbook/assets/image (15) (1) (1) (1).png
new file mode 100644
index 00000000..0f639f00
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (1) (1).png b/fr/.gitbook/assets/image (15) (1) (1).png
new file mode 100644
index 00000000..888d0db3
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (1).png b/fr/.gitbook/assets/image (15) (1).png
new file mode 100644
index 00000000..5bd67829
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (2) (1) (1).png b/fr/.gitbook/assets/image (15) (2) (1) (1).png
new file mode 100644
index 00000000..42e43e05
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (2) (1).png b/fr/.gitbook/assets/image (15) (2) (1).png
new file mode 100644
index 00000000..3fe5e6ce
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (15) (2) (2).png b/fr/.gitbook/assets/image (15) (2) (2).png
new file mode 100644
index 00000000..024b6d8d
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (2) (2).png differ
diff --git a/fr/.gitbook/assets/image (15) (2).png b/fr/.gitbook/assets/image (15) (2).png
new file mode 100644
index 00000000..5f2011f3
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (2).png differ
diff --git a/fr/.gitbook/assets/image (15) (3).png b/fr/.gitbook/assets/image (15) (3).png
new file mode 100644
index 00000000..1b9a5002
Binary files /dev/null and b/fr/.gitbook/assets/image (15) (3).png differ
diff --git a/fr/.gitbook/assets/image (15).png b/fr/.gitbook/assets/image (15).png
new file mode 100644
index 00000000..21d1d25f
Binary files /dev/null and b/fr/.gitbook/assets/image (15).png differ
diff --git a/fr/.gitbook/assets/image (150).png b/fr/.gitbook/assets/image (150).png
new file mode 100644
index 00000000..bc9a669e
Binary files /dev/null and b/fr/.gitbook/assets/image (150).png differ
diff --git a/fr/.gitbook/assets/image (151).png b/fr/.gitbook/assets/image (151).png
new file mode 100644
index 00000000..756d00fd
Binary files /dev/null and b/fr/.gitbook/assets/image (151).png differ
diff --git a/fr/.gitbook/assets/image (152).png b/fr/.gitbook/assets/image (152).png
new file mode 100644
index 00000000..dd190d70
Binary files /dev/null and b/fr/.gitbook/assets/image (152).png differ
diff --git a/fr/.gitbook/assets/image (153).png b/fr/.gitbook/assets/image (153).png
new file mode 100644
index 00000000..3b61ca4e
Binary files /dev/null and b/fr/.gitbook/assets/image (153).png differ
diff --git a/fr/.gitbook/assets/image (154).png b/fr/.gitbook/assets/image (154).png
new file mode 100644
index 00000000..dbc8e0bb
Binary files /dev/null and b/fr/.gitbook/assets/image (154).png differ
diff --git a/fr/.gitbook/assets/image (155).png b/fr/.gitbook/assets/image (155).png
new file mode 100644
index 00000000..4c5c95ae
Binary files /dev/null and b/fr/.gitbook/assets/image (155).png differ
diff --git a/fr/.gitbook/assets/image (156).png b/fr/.gitbook/assets/image (156).png
new file mode 100644
index 00000000..79be6075
Binary files /dev/null and b/fr/.gitbook/assets/image (156).png differ
diff --git a/fr/.gitbook/assets/image (157).png b/fr/.gitbook/assets/image (157).png
new file mode 100644
index 00000000..a81894b8
Binary files /dev/null and b/fr/.gitbook/assets/image (157).png differ
diff --git a/fr/.gitbook/assets/image (158).png b/fr/.gitbook/assets/image (158).png
new file mode 100644
index 00000000..8f1b1956
Binary files /dev/null and b/fr/.gitbook/assets/image (158).png differ
diff --git a/fr/.gitbook/assets/image (159).png b/fr/.gitbook/assets/image (159).png
new file mode 100644
index 00000000..eda43ab5
Binary files /dev/null and b/fr/.gitbook/assets/image (159).png differ
diff --git a/fr/.gitbook/assets/image (16) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (16) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..d3bdadc0
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (16) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (16) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c624b1e0
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (16) (1) (1) (1).png b/fr/.gitbook/assets/image (16) (1) (1) (1).png
new file mode 100644
index 00000000..b082f202
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (16) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (16) (1) (1) (2) (1).png
new file mode 100644
index 00000000..c324cc5f
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (16) (1) (1) (2).png b/fr/.gitbook/assets/image (16) (1) (1) (2).png
new file mode 100644
index 00000000..8911e8d8
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (16) (1) (1).png b/fr/.gitbook/assets/image (16) (1) (1).png
new file mode 100644
index 00000000..c7254f23
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (16) (1).png b/fr/.gitbook/assets/image (16) (1).png
new file mode 100644
index 00000000..891b54ca
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (1).png differ
diff --git a/fr/.gitbook/assets/image (16) (2).png b/fr/.gitbook/assets/image (16) (2).png
new file mode 100644
index 00000000..e48c7512
Binary files /dev/null and b/fr/.gitbook/assets/image (16) (2).png differ
diff --git a/fr/.gitbook/assets/image (16).png b/fr/.gitbook/assets/image (16).png
new file mode 100644
index 00000000..9809fd3b
Binary files /dev/null and b/fr/.gitbook/assets/image (16).png differ
diff --git a/fr/.gitbook/assets/image (160).png b/fr/.gitbook/assets/image (160).png
new file mode 100644
index 00000000..6c9bea35
Binary files /dev/null and b/fr/.gitbook/assets/image (160).png differ
diff --git a/fr/.gitbook/assets/image (161).png b/fr/.gitbook/assets/image (161).png
new file mode 100644
index 00000000..267cc9f1
Binary files /dev/null and b/fr/.gitbook/assets/image (161).png differ
diff --git a/fr/.gitbook/assets/image (162).png b/fr/.gitbook/assets/image (162).png
new file mode 100644
index 00000000..28aa9b14
Binary files /dev/null and b/fr/.gitbook/assets/image (162).png differ
diff --git a/fr/.gitbook/assets/image (163).png b/fr/.gitbook/assets/image (163).png
new file mode 100644
index 00000000..e2676a66
Binary files /dev/null and b/fr/.gitbook/assets/image (163).png differ
diff --git a/fr/.gitbook/assets/image (164).png b/fr/.gitbook/assets/image (164).png
new file mode 100644
index 00000000..24bcff61
Binary files /dev/null and b/fr/.gitbook/assets/image (164).png differ
diff --git a/fr/.gitbook/assets/image (165).png b/fr/.gitbook/assets/image (165).png
new file mode 100644
index 00000000..5e0d0fad
Binary files /dev/null and b/fr/.gitbook/assets/image (165).png differ
diff --git a/fr/.gitbook/assets/image (166).png b/fr/.gitbook/assets/image (166).png
new file mode 100644
index 00000000..e5f16e8d
Binary files /dev/null and b/fr/.gitbook/assets/image (166).png differ
diff --git a/fr/.gitbook/assets/image (167).png b/fr/.gitbook/assets/image (167).png
new file mode 100644
index 00000000..e902eef2
Binary files /dev/null and b/fr/.gitbook/assets/image (167).png differ
diff --git a/fr/.gitbook/assets/image (168).png b/fr/.gitbook/assets/image (168).png
new file mode 100644
index 00000000..9d0ae755
Binary files /dev/null and b/fr/.gitbook/assets/image (168).png differ
diff --git a/fr/.gitbook/assets/image (169).png b/fr/.gitbook/assets/image (169).png
new file mode 100644
index 00000000..25eb81ba
Binary files /dev/null and b/fr/.gitbook/assets/image (169).png differ
diff --git a/fr/.gitbook/assets/image (17) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (17) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..f22be2bf
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (17) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (17) (1) (1) (1) (1).png
new file mode 100644
index 00000000..7767b3bb
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (17) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (17) (1) (1) (1) (2).png
new file mode 100644
index 00000000..57bcd68d
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (17) (1) (1) (1).png b/fr/.gitbook/assets/image (17) (1) (1) (1).png
new file mode 100644
index 00000000..724e8e27
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (17) (1) (1).png b/fr/.gitbook/assets/image (17) (1) (1).png
new file mode 100644
index 00000000..e1c6a718
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (17) (1) (2).png b/fr/.gitbook/assets/image (17) (1) (2).png
new file mode 100644
index 00000000..ae55297e
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (17) (1).png b/fr/.gitbook/assets/image (17) (1).png
new file mode 100644
index 00000000..f19aa369
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (1).png differ
diff --git a/fr/.gitbook/assets/image (17) (2).png b/fr/.gitbook/assets/image (17) (2).png
new file mode 100644
index 00000000..e2d1bcc3
Binary files /dev/null and b/fr/.gitbook/assets/image (17) (2).png differ
diff --git a/fr/.gitbook/assets/image (17).png b/fr/.gitbook/assets/image (17).png
new file mode 100644
index 00000000..004a2268
Binary files /dev/null and b/fr/.gitbook/assets/image (17).png differ
diff --git a/fr/.gitbook/assets/image (170).png b/fr/.gitbook/assets/image (170).png
new file mode 100644
index 00000000..9e2c6d6b
Binary files /dev/null and b/fr/.gitbook/assets/image (170).png differ
diff --git a/fr/.gitbook/assets/image (171).png b/fr/.gitbook/assets/image (171).png
new file mode 100644
index 00000000..18d42517
Binary files /dev/null and b/fr/.gitbook/assets/image (171).png differ
diff --git a/fr/.gitbook/assets/image (172) (1).png b/fr/.gitbook/assets/image (172) (1).png
new file mode 100644
index 00000000..76fc4d4f
Binary files /dev/null and b/fr/.gitbook/assets/image (172) (1).png differ
diff --git a/fr/.gitbook/assets/image (172).png b/fr/.gitbook/assets/image (172).png
new file mode 100644
index 00000000..ee3e8d8a
Binary files /dev/null and b/fr/.gitbook/assets/image (172).png differ
diff --git a/fr/.gitbook/assets/image (173).png b/fr/.gitbook/assets/image (173).png
new file mode 100644
index 00000000..4435db0b
Binary files /dev/null and b/fr/.gitbook/assets/image (173).png differ
diff --git a/fr/.gitbook/assets/image (174).png b/fr/.gitbook/assets/image (174).png
new file mode 100644
index 00000000..4435db0b
Binary files /dev/null and b/fr/.gitbook/assets/image (174).png differ
diff --git a/fr/.gitbook/assets/image (175).png b/fr/.gitbook/assets/image (175).png
new file mode 100644
index 00000000..b492743e
Binary files /dev/null and b/fr/.gitbook/assets/image (175).png differ
diff --git a/fr/.gitbook/assets/image (176).png b/fr/.gitbook/assets/image (176).png
new file mode 100644
index 00000000..7d658a87
Binary files /dev/null and b/fr/.gitbook/assets/image (176).png differ
diff --git a/fr/.gitbook/assets/image (177).png b/fr/.gitbook/assets/image (177).png
new file mode 100644
index 00000000..e0f562cd
Binary files /dev/null and b/fr/.gitbook/assets/image (177).png differ
diff --git a/fr/.gitbook/assets/image (178).png b/fr/.gitbook/assets/image (178).png
new file mode 100644
index 00000000..9e2d6224
Binary files /dev/null and b/fr/.gitbook/assets/image (178).png differ
diff --git a/fr/.gitbook/assets/image (179).png b/fr/.gitbook/assets/image (179).png
new file mode 100644
index 00000000..91e7effd
Binary files /dev/null and b/fr/.gitbook/assets/image (179).png differ
diff --git a/fr/.gitbook/assets/image (18) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (18) (1) (1) (1) (1).png
new file mode 100644
index 00000000..a4f60172
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (18) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (18) (1) (1) (1) (2).png
new file mode 100644
index 00000000..c77749e2
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (18) (1) (1) (1).png b/fr/.gitbook/assets/image (18) (1) (1) (1).png
new file mode 100644
index 00000000..8229bc3e
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (18) (1) (1).png b/fr/.gitbook/assets/image (18) (1) (1).png
new file mode 100644
index 00000000..82079491
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (18) (1) (2) (1).png b/fr/.gitbook/assets/image (18) (1) (2) (1).png
new file mode 100644
index 00000000..8e27a33f
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (18) (1) (2).png b/fr/.gitbook/assets/image (18) (1) (2).png
new file mode 100644
index 00000000..1c22f80f
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (18) (1).png b/fr/.gitbook/assets/image (18) (1).png
new file mode 100644
index 00000000..fc75b76c
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (1).png differ
diff --git a/fr/.gitbook/assets/image (18) (2).png b/fr/.gitbook/assets/image (18) (2).png
new file mode 100644
index 00000000..0977fe86
Binary files /dev/null and b/fr/.gitbook/assets/image (18) (2).png differ
diff --git a/fr/.gitbook/assets/image (18).png b/fr/.gitbook/assets/image (18).png
new file mode 100644
index 00000000..f651dbef
Binary files /dev/null and b/fr/.gitbook/assets/image (18).png differ
diff --git a/fr/.gitbook/assets/image (180).png b/fr/.gitbook/assets/image (180).png
new file mode 100644
index 00000000..f655c13d
Binary files /dev/null and b/fr/.gitbook/assets/image (180).png differ
diff --git a/fr/.gitbook/assets/image (181).png b/fr/.gitbook/assets/image (181).png
new file mode 100644
index 00000000..29e128a4
Binary files /dev/null and b/fr/.gitbook/assets/image (181).png differ
diff --git a/fr/.gitbook/assets/image (182).png b/fr/.gitbook/assets/image (182).png
new file mode 100644
index 00000000..9f1f8782
Binary files /dev/null and b/fr/.gitbook/assets/image (182).png differ
diff --git a/fr/.gitbook/assets/image (183).png b/fr/.gitbook/assets/image (183).png
new file mode 100644
index 00000000..8bccc4a3
Binary files /dev/null and b/fr/.gitbook/assets/image (183).png differ
diff --git a/fr/.gitbook/assets/image (184).png b/fr/.gitbook/assets/image (184).png
new file mode 100644
index 00000000..bb509fdb
Binary files /dev/null and b/fr/.gitbook/assets/image (184).png differ
diff --git a/fr/.gitbook/assets/image (185).png b/fr/.gitbook/assets/image (185).png
new file mode 100644
index 00000000..3204952c
Binary files /dev/null and b/fr/.gitbook/assets/image (185).png differ
diff --git a/fr/.gitbook/assets/image (186).png b/fr/.gitbook/assets/image (186).png
new file mode 100644
index 00000000..23c9f1ae
Binary files /dev/null and b/fr/.gitbook/assets/image (186).png differ
diff --git a/fr/.gitbook/assets/image (187).png b/fr/.gitbook/assets/image (187).png
new file mode 100644
index 00000000..bbd72231
Binary files /dev/null and b/fr/.gitbook/assets/image (187).png differ
diff --git a/fr/.gitbook/assets/image (188).png b/fr/.gitbook/assets/image (188).png
new file mode 100644
index 00000000..0305d3f3
Binary files /dev/null and b/fr/.gitbook/assets/image (188).png differ
diff --git a/fr/.gitbook/assets/image (189).png b/fr/.gitbook/assets/image (189).png
new file mode 100644
index 00000000..73e50d18
Binary files /dev/null and b/fr/.gitbook/assets/image (189).png differ
diff --git a/fr/.gitbook/assets/image (19) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (19) (1) (1) (1) (1).png
new file mode 100644
index 00000000..80cd68d8
Binary files /dev/null and b/fr/.gitbook/assets/image (19) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (19) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (19) (1) (1) (1) (2).png
new file mode 100644
index 00000000..fdb3193e
Binary files /dev/null and b/fr/.gitbook/assets/image (19) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (19) (1) (1) (1).png b/fr/.gitbook/assets/image (19) (1) (1) (1).png
new file mode 100644
index 00000000..63b3b7ce
Binary files /dev/null and b/fr/.gitbook/assets/image (19) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (19) (1) (1).png b/fr/.gitbook/assets/image (19) (1) (1).png
new file mode 100644
index 00000000..55a6b650
Binary files /dev/null and b/fr/.gitbook/assets/image (19) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (19) (1).png b/fr/.gitbook/assets/image (19) (1).png
new file mode 100644
index 00000000..fd7c9433
Binary files /dev/null and b/fr/.gitbook/assets/image (19) (1).png differ
diff --git a/fr/.gitbook/assets/image (19) (2).png b/fr/.gitbook/assets/image (19) (2).png
new file mode 100644
index 00000000..8bf627c5
Binary files /dev/null and b/fr/.gitbook/assets/image (19) (2).png differ
diff --git a/fr/.gitbook/assets/image (19).png b/fr/.gitbook/assets/image (19).png
new file mode 100644
index 00000000..af634c25
Binary files /dev/null and b/fr/.gitbook/assets/image (19).png differ
diff --git a/fr/.gitbook/assets/image (190).png b/fr/.gitbook/assets/image (190).png
new file mode 100644
index 00000000..a580944b
Binary files /dev/null and b/fr/.gitbook/assets/image (190).png differ
diff --git a/fr/.gitbook/assets/image (191).png b/fr/.gitbook/assets/image (191).png
new file mode 100644
index 00000000..6b36c1cb
Binary files /dev/null and b/fr/.gitbook/assets/image (191).png differ
diff --git a/fr/.gitbook/assets/image (192).png b/fr/.gitbook/assets/image (192).png
new file mode 100644
index 00000000..cf58731b
Binary files /dev/null and b/fr/.gitbook/assets/image (192).png differ
diff --git a/fr/.gitbook/assets/image (193).png b/fr/.gitbook/assets/image (193).png
new file mode 100644
index 00000000..17700181
Binary files /dev/null and b/fr/.gitbook/assets/image (193).png differ
diff --git a/fr/.gitbook/assets/image (194).png b/fr/.gitbook/assets/image (194).png
new file mode 100644
index 00000000..e3dbe87b
Binary files /dev/null and b/fr/.gitbook/assets/image (194).png differ
diff --git a/fr/.gitbook/assets/image (195).png b/fr/.gitbook/assets/image (195).png
new file mode 100644
index 00000000..ff22a4be
Binary files /dev/null and b/fr/.gitbook/assets/image (195).png differ
diff --git a/fr/.gitbook/assets/image (196).png b/fr/.gitbook/assets/image (196).png
new file mode 100644
index 00000000..c0f67f2e
Binary files /dev/null and b/fr/.gitbook/assets/image (196).png differ
diff --git a/fr/.gitbook/assets/image (197).png b/fr/.gitbook/assets/image (197).png
new file mode 100644
index 00000000..a4084d45
Binary files /dev/null and b/fr/.gitbook/assets/image (197).png differ
diff --git a/fr/.gitbook/assets/image (198).png b/fr/.gitbook/assets/image (198).png
new file mode 100644
index 00000000..4e861530
Binary files /dev/null and b/fr/.gitbook/assets/image (198).png differ
diff --git a/fr/.gitbook/assets/image (199).png b/fr/.gitbook/assets/image (199).png
new file mode 100644
index 00000000..c1728326
Binary files /dev/null and b/fr/.gitbook/assets/image (199).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..bc895c9b
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..3895b165
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..6d23847f
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..e36552aa
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..55272b56
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..66551af4
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..0dd60a40
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ec7296d3
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..f85ddd58
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..83628ae5
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..e1058db8
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..11f35920
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..97b8a02f
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5530c9d7
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..2969ad4e
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..3c616586
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..f8a9cf1e
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..08fb33e7
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..9e01b57b
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..585285ee
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c7a0b62d
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..1abc8106
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..900cafe3
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5f379772
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..7960c0e8
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..f7164c75
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c7d0f855
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2a0c7459
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..50cb5469
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..0a3b7402
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c12e3060
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..c3877ec5
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..d136f640
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1) (1).png
new file mode 100644
index 00000000..0f1f566f
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1) (1).png
new file mode 100644
index 00000000..d9ce2e62
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (1) (2).png
new file mode 100644
index 00000000..5e09d784
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (1).png b/fr/.gitbook/assets/image (2) (1) (1).png
new file mode 100644
index 00000000..f464802c
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (2) (1).png b/fr/.gitbook/assets/image (2) (1) (2) (1).png
new file mode 100644
index 00000000..29ffc492
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (1) (2).png b/fr/.gitbook/assets/image (2) (1) (2).png
new file mode 100644
index 00000000..2316cf50
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (1).png b/fr/.gitbook/assets/image (2) (1).png
new file mode 100644
index 00000000..6db61d0e
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (2).png b/fr/.gitbook/assets/image (2) (2).png
new file mode 100644
index 00000000..bc3c8655
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (2).png differ
diff --git a/fr/.gitbook/assets/image (2) (3).png b/fr/.gitbook/assets/image (2) (3).png
new file mode 100644
index 00000000..c8e34502
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (3).png differ
diff --git a/fr/.gitbook/assets/image (2) (4) (1).png b/fr/.gitbook/assets/image (2) (4) (1).png
new file mode 100644
index 00000000..66534d13
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (4) (1).png differ
diff --git a/fr/.gitbook/assets/image (2) (4).png b/fr/.gitbook/assets/image (2) (4).png
new file mode 100644
index 00000000..aee18b7b
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (4).png differ
diff --git a/fr/.gitbook/assets/image (2) (5).png b/fr/.gitbook/assets/image (2) (5).png
new file mode 100644
index 00000000..5eb16098
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (5).png differ
diff --git a/fr/.gitbook/assets/image (2) (6).png b/fr/.gitbook/assets/image (2) (6).png
new file mode 100644
index 00000000..4926de0a
Binary files /dev/null and b/fr/.gitbook/assets/image (2) (6).png differ
diff --git a/fr/.gitbook/assets/image (2).png b/fr/.gitbook/assets/image (2).png
new file mode 100644
index 00000000..02b1c802
Binary files /dev/null and b/fr/.gitbook/assets/image (2).png differ
diff --git a/fr/.gitbook/assets/image (20) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (20) (1) (1) (1) (1).png
new file mode 100644
index 00000000..05704748
Binary files /dev/null and b/fr/.gitbook/assets/image (20) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (20) (1) (1) (1).png b/fr/.gitbook/assets/image (20) (1) (1) (1).png
new file mode 100644
index 00000000..b732ea1e
Binary files /dev/null and b/fr/.gitbook/assets/image (20) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (20) (1) (1).png b/fr/.gitbook/assets/image (20) (1) (1).png
new file mode 100644
index 00000000..3d3bcc9b
Binary files /dev/null and b/fr/.gitbook/assets/image (20) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (20) (1).png b/fr/.gitbook/assets/image (20) (1).png
new file mode 100644
index 00000000..3a52e8b9
Binary files /dev/null and b/fr/.gitbook/assets/image (20) (1).png differ
diff --git a/fr/.gitbook/assets/image (20) (2).png b/fr/.gitbook/assets/image (20) (2).png
new file mode 100644
index 00000000..24a24cfa
Binary files /dev/null and b/fr/.gitbook/assets/image (20) (2).png differ
diff --git a/fr/.gitbook/assets/image (20).png b/fr/.gitbook/assets/image (20).png
new file mode 100644
index 00000000..c851f1ad
Binary files /dev/null and b/fr/.gitbook/assets/image (20).png differ
diff --git a/fr/.gitbook/assets/image (200).png b/fr/.gitbook/assets/image (200).png
new file mode 100644
index 00000000..762763d0
Binary files /dev/null and b/fr/.gitbook/assets/image (200).png differ
diff --git a/fr/.gitbook/assets/image (201).png b/fr/.gitbook/assets/image (201).png
new file mode 100644
index 00000000..b04ffcda
Binary files /dev/null and b/fr/.gitbook/assets/image (201).png differ
diff --git a/fr/.gitbook/assets/image (202).png b/fr/.gitbook/assets/image (202).png
new file mode 100644
index 00000000..c1aa9905
Binary files /dev/null and b/fr/.gitbook/assets/image (202).png differ
diff --git a/fr/.gitbook/assets/image (203).png b/fr/.gitbook/assets/image (203).png
new file mode 100644
index 00000000..0fab1bd9
Binary files /dev/null and b/fr/.gitbook/assets/image (203).png differ
diff --git a/fr/.gitbook/assets/image (204).png b/fr/.gitbook/assets/image (204).png
new file mode 100644
index 00000000..416758cb
Binary files /dev/null and b/fr/.gitbook/assets/image (204).png differ
diff --git a/fr/.gitbook/assets/image (205).png b/fr/.gitbook/assets/image (205).png
new file mode 100644
index 00000000..1c557770
Binary files /dev/null and b/fr/.gitbook/assets/image (205).png differ
diff --git a/fr/.gitbook/assets/image (206).png b/fr/.gitbook/assets/image (206).png
new file mode 100644
index 00000000..16884367
Binary files /dev/null and b/fr/.gitbook/assets/image (206).png differ
diff --git a/fr/.gitbook/assets/image (207).png b/fr/.gitbook/assets/image (207).png
new file mode 100644
index 00000000..784971af
Binary files /dev/null and b/fr/.gitbook/assets/image (207).png differ
diff --git a/fr/.gitbook/assets/image (208).png b/fr/.gitbook/assets/image (208).png
new file mode 100644
index 00000000..ccfd24a6
Binary files /dev/null and b/fr/.gitbook/assets/image (208).png differ
diff --git a/fr/.gitbook/assets/image (209).png b/fr/.gitbook/assets/image (209).png
new file mode 100644
index 00000000..f6897b2f
Binary files /dev/null and b/fr/.gitbook/assets/image (209).png differ
diff --git a/fr/.gitbook/assets/image (21) (1) (1) (1).png b/fr/.gitbook/assets/image (21) (1) (1) (1).png
new file mode 100644
index 00000000..18bdf929
Binary files /dev/null and b/fr/.gitbook/assets/image (21) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (21) (1) (1).png b/fr/.gitbook/assets/image (21) (1) (1).png
new file mode 100644
index 00000000..44d1dc48
Binary files /dev/null and b/fr/.gitbook/assets/image (21) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (21) (1) (2).png b/fr/.gitbook/assets/image (21) (1) (2).png
new file mode 100644
index 00000000..e06028b3
Binary files /dev/null and b/fr/.gitbook/assets/image (21) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (21) (1).png b/fr/.gitbook/assets/image (21) (1).png
new file mode 100644
index 00000000..7b874167
Binary files /dev/null and b/fr/.gitbook/assets/image (21) (1).png differ
diff --git a/fr/.gitbook/assets/image (21).png b/fr/.gitbook/assets/image (21).png
new file mode 100644
index 00000000..f432e251
Binary files /dev/null and b/fr/.gitbook/assets/image (21).png differ
diff --git a/fr/.gitbook/assets/image (210).png b/fr/.gitbook/assets/image (210).png
new file mode 100644
index 00000000..c054a4bb
Binary files /dev/null and b/fr/.gitbook/assets/image (210).png differ
diff --git a/fr/.gitbook/assets/image (211).png b/fr/.gitbook/assets/image (211).png
new file mode 100644
index 00000000..f5256bad
Binary files /dev/null and b/fr/.gitbook/assets/image (211).png differ
diff --git a/fr/.gitbook/assets/image (212).png b/fr/.gitbook/assets/image (212).png
new file mode 100644
index 00000000..38cb61f3
Binary files /dev/null and b/fr/.gitbook/assets/image (212).png differ
diff --git a/fr/.gitbook/assets/image (213).png b/fr/.gitbook/assets/image (213).png
new file mode 100644
index 00000000..e4313c54
Binary files /dev/null and b/fr/.gitbook/assets/image (213).png differ
diff --git a/fr/.gitbook/assets/image (214).png b/fr/.gitbook/assets/image (214).png
new file mode 100644
index 00000000..228c7bf1
Binary files /dev/null and b/fr/.gitbook/assets/image (214).png differ
diff --git a/fr/.gitbook/assets/image (215).png b/fr/.gitbook/assets/image (215).png
new file mode 100644
index 00000000..0a36c645
Binary files /dev/null and b/fr/.gitbook/assets/image (215).png differ
diff --git a/fr/.gitbook/assets/image (216).png b/fr/.gitbook/assets/image (216).png
new file mode 100644
index 00000000..126b0001
Binary files /dev/null and b/fr/.gitbook/assets/image (216).png differ
diff --git a/fr/.gitbook/assets/image (217).png b/fr/.gitbook/assets/image (217).png
new file mode 100644
index 00000000..ce41b0b2
Binary files /dev/null and b/fr/.gitbook/assets/image (217).png differ
diff --git a/fr/.gitbook/assets/image (218).png b/fr/.gitbook/assets/image (218).png
new file mode 100644
index 00000000..e1b50c9e
Binary files /dev/null and b/fr/.gitbook/assets/image (218).png differ
diff --git a/fr/.gitbook/assets/image (219).png b/fr/.gitbook/assets/image (219).png
new file mode 100644
index 00000000..fd886cce
Binary files /dev/null and b/fr/.gitbook/assets/image (219).png differ
diff --git a/fr/.gitbook/assets/image (22) (1) (1).png b/fr/.gitbook/assets/image (22) (1) (1).png
new file mode 100644
index 00000000..b56c5e31
Binary files /dev/null and b/fr/.gitbook/assets/image (22) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (22) (1).png b/fr/.gitbook/assets/image (22) (1).png
new file mode 100644
index 00000000..bde4e6cf
Binary files /dev/null and b/fr/.gitbook/assets/image (22) (1).png differ
diff --git a/fr/.gitbook/assets/image (22).png b/fr/.gitbook/assets/image (22).png
new file mode 100644
index 00000000..d90a3ab5
Binary files /dev/null and b/fr/.gitbook/assets/image (22).png differ
diff --git a/fr/.gitbook/assets/image (220).png b/fr/.gitbook/assets/image (220).png
new file mode 100644
index 00000000..b3f5555a
Binary files /dev/null and b/fr/.gitbook/assets/image (220).png differ
diff --git a/fr/.gitbook/assets/image (221).png b/fr/.gitbook/assets/image (221).png
new file mode 100644
index 00000000..ebf9e42a
Binary files /dev/null and b/fr/.gitbook/assets/image (221).png differ
diff --git a/fr/.gitbook/assets/image (222).png b/fr/.gitbook/assets/image (222).png
new file mode 100644
index 00000000..dd6b84dd
Binary files /dev/null and b/fr/.gitbook/assets/image (222).png differ
diff --git a/fr/.gitbook/assets/image (223).png b/fr/.gitbook/assets/image (223).png
new file mode 100644
index 00000000..eed24cda
Binary files /dev/null and b/fr/.gitbook/assets/image (223).png differ
diff --git a/fr/.gitbook/assets/image (224).png b/fr/.gitbook/assets/image (224).png
new file mode 100644
index 00000000..8e71bbe4
Binary files /dev/null and b/fr/.gitbook/assets/image (224).png differ
diff --git a/fr/.gitbook/assets/image (225).png b/fr/.gitbook/assets/image (225).png
new file mode 100644
index 00000000..ea423fd4
Binary files /dev/null and b/fr/.gitbook/assets/image (225).png differ
diff --git a/fr/.gitbook/assets/image (226).png b/fr/.gitbook/assets/image (226).png
new file mode 100644
index 00000000..4ccae983
Binary files /dev/null and b/fr/.gitbook/assets/image (226).png differ
diff --git a/fr/.gitbook/assets/image (227).png b/fr/.gitbook/assets/image (227).png
new file mode 100644
index 00000000..15e7a591
Binary files /dev/null and b/fr/.gitbook/assets/image (227).png differ
diff --git a/fr/.gitbook/assets/image (228).png b/fr/.gitbook/assets/image (228).png
new file mode 100644
index 00000000..657b4bd8
Binary files /dev/null and b/fr/.gitbook/assets/image (228).png differ
diff --git a/fr/.gitbook/assets/image (229).png b/fr/.gitbook/assets/image (229).png
new file mode 100644
index 00000000..3edebcc0
Binary files /dev/null and b/fr/.gitbook/assets/image (229).png differ
diff --git a/fr/.gitbook/assets/image (23) (1) (1).png b/fr/.gitbook/assets/image (23) (1) (1).png
new file mode 100644
index 00000000..a179f99f
Binary files /dev/null and b/fr/.gitbook/assets/image (23) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (23) (1) (2).png b/fr/.gitbook/assets/image (23) (1) (2).png
new file mode 100644
index 00000000..0cc470ce
Binary files /dev/null and b/fr/.gitbook/assets/image (23) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (23) (1).png b/fr/.gitbook/assets/image (23) (1).png
new file mode 100644
index 00000000..851200ea
Binary files /dev/null and b/fr/.gitbook/assets/image (23) (1).png differ
diff --git a/fr/.gitbook/assets/image (23).png b/fr/.gitbook/assets/image (23).png
new file mode 100644
index 00000000..cc800c1f
Binary files /dev/null and b/fr/.gitbook/assets/image (23).png differ
diff --git a/fr/.gitbook/assets/image (230).png b/fr/.gitbook/assets/image (230).png
new file mode 100644
index 00000000..96cc56fe
Binary files /dev/null and b/fr/.gitbook/assets/image (230).png differ
diff --git a/fr/.gitbook/assets/image (231).png b/fr/.gitbook/assets/image (231).png
new file mode 100644
index 00000000..b056dde9
Binary files /dev/null and b/fr/.gitbook/assets/image (231).png differ
diff --git a/fr/.gitbook/assets/image (232).png b/fr/.gitbook/assets/image (232).png
new file mode 100644
index 00000000..0e6572e6
Binary files /dev/null and b/fr/.gitbook/assets/image (232).png differ
diff --git a/fr/.gitbook/assets/image (233).png b/fr/.gitbook/assets/image (233).png
new file mode 100644
index 00000000..d8bf5e63
Binary files /dev/null and b/fr/.gitbook/assets/image (233).png differ
diff --git a/fr/.gitbook/assets/image (234).png b/fr/.gitbook/assets/image (234).png
new file mode 100644
index 00000000..dd43b43c
Binary files /dev/null and b/fr/.gitbook/assets/image (234).png differ
diff --git a/fr/.gitbook/assets/image (235).png b/fr/.gitbook/assets/image (235).png
new file mode 100644
index 00000000..1502ecba
Binary files /dev/null and b/fr/.gitbook/assets/image (235).png differ
diff --git a/fr/.gitbook/assets/image (236).png b/fr/.gitbook/assets/image (236).png
new file mode 100644
index 00000000..aeb202a5
Binary files /dev/null and b/fr/.gitbook/assets/image (236).png differ
diff --git a/fr/.gitbook/assets/image (237).png b/fr/.gitbook/assets/image (237).png
new file mode 100644
index 00000000..b8f1612c
Binary files /dev/null and b/fr/.gitbook/assets/image (237).png differ
diff --git a/fr/.gitbook/assets/image (238).png b/fr/.gitbook/assets/image (238).png
new file mode 100644
index 00000000..5fe767ad
Binary files /dev/null and b/fr/.gitbook/assets/image (238).png differ
diff --git a/fr/.gitbook/assets/image (239).png b/fr/.gitbook/assets/image (239).png
new file mode 100644
index 00000000..d0c08c85
Binary files /dev/null and b/fr/.gitbook/assets/image (239).png differ
diff --git a/fr/.gitbook/assets/image (24) (1).png b/fr/.gitbook/assets/image (24) (1).png
new file mode 100644
index 00000000..b129842c
Binary files /dev/null and b/fr/.gitbook/assets/image (24) (1).png differ
diff --git a/fr/.gitbook/assets/image (24).png b/fr/.gitbook/assets/image (24).png
new file mode 100644
index 00000000..82413b59
Binary files /dev/null and b/fr/.gitbook/assets/image (24).png differ
diff --git a/fr/.gitbook/assets/image (240).png b/fr/.gitbook/assets/image (240).png
new file mode 100644
index 00000000..f2e87855
Binary files /dev/null and b/fr/.gitbook/assets/image (240).png differ
diff --git a/fr/.gitbook/assets/image (241).png b/fr/.gitbook/assets/image (241).png
new file mode 100644
index 00000000..420c6804
Binary files /dev/null and b/fr/.gitbook/assets/image (241).png differ
diff --git a/fr/.gitbook/assets/image (242).png b/fr/.gitbook/assets/image (242).png
new file mode 100644
index 00000000..f055ff30
Binary files /dev/null and b/fr/.gitbook/assets/image (242).png differ
diff --git a/fr/.gitbook/assets/image (243).png b/fr/.gitbook/assets/image (243).png
new file mode 100644
index 00000000..fea1ce7b
Binary files /dev/null and b/fr/.gitbook/assets/image (243).png differ
diff --git a/fr/.gitbook/assets/image (244).png b/fr/.gitbook/assets/image (244).png
new file mode 100644
index 00000000..b1e7497d
Binary files /dev/null and b/fr/.gitbook/assets/image (244).png differ
diff --git a/fr/.gitbook/assets/image (245).png b/fr/.gitbook/assets/image (245).png
new file mode 100644
index 00000000..bfbe6579
Binary files /dev/null and b/fr/.gitbook/assets/image (245).png differ
diff --git a/fr/.gitbook/assets/image (246).png b/fr/.gitbook/assets/image (246).png
new file mode 100644
index 00000000..6e3fefb4
Binary files /dev/null and b/fr/.gitbook/assets/image (246).png differ
diff --git a/fr/.gitbook/assets/image (247).png b/fr/.gitbook/assets/image (247).png
new file mode 100644
index 00000000..94f1ca24
Binary files /dev/null and b/fr/.gitbook/assets/image (247).png differ
diff --git a/fr/.gitbook/assets/image (248).png b/fr/.gitbook/assets/image (248).png
new file mode 100644
index 00000000..5a2e9cf1
Binary files /dev/null and b/fr/.gitbook/assets/image (248).png differ
diff --git a/fr/.gitbook/assets/image (249).png b/fr/.gitbook/assets/image (249).png
new file mode 100644
index 00000000..fdfdba23
Binary files /dev/null and b/fr/.gitbook/assets/image (249).png differ
diff --git a/fr/.gitbook/assets/image (25) (1) (1).png b/fr/.gitbook/assets/image (25) (1) (1).png
new file mode 100644
index 00000000..e2b67a32
Binary files /dev/null and b/fr/.gitbook/assets/image (25) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (25) (1).png b/fr/.gitbook/assets/image (25) (1).png
new file mode 100644
index 00000000..6e990403
Binary files /dev/null and b/fr/.gitbook/assets/image (25) (1).png differ
diff --git a/fr/.gitbook/assets/image (25).png b/fr/.gitbook/assets/image (25).png
new file mode 100644
index 00000000..51761efd
Binary files /dev/null and b/fr/.gitbook/assets/image (25).png differ
diff --git a/fr/.gitbook/assets/image (250).png b/fr/.gitbook/assets/image (250).png
new file mode 100644
index 00000000..7f62e6b4
Binary files /dev/null and b/fr/.gitbook/assets/image (250).png differ
diff --git a/fr/.gitbook/assets/image (251).png b/fr/.gitbook/assets/image (251).png
new file mode 100644
index 00000000..4bb42530
Binary files /dev/null and b/fr/.gitbook/assets/image (251).png differ
diff --git a/fr/.gitbook/assets/image (252).png b/fr/.gitbook/assets/image (252).png
new file mode 100644
index 00000000..72e5341b
Binary files /dev/null and b/fr/.gitbook/assets/image (252).png differ
diff --git a/fr/.gitbook/assets/image (253).png b/fr/.gitbook/assets/image (253).png
new file mode 100644
index 00000000..8f7a1f6d
Binary files /dev/null and b/fr/.gitbook/assets/image (253).png differ
diff --git a/fr/.gitbook/assets/image (254).png b/fr/.gitbook/assets/image (254).png
new file mode 100644
index 00000000..45b6f49f
Binary files /dev/null and b/fr/.gitbook/assets/image (254).png differ
diff --git a/fr/.gitbook/assets/image (255).png b/fr/.gitbook/assets/image (255).png
new file mode 100644
index 00000000..3fc2f81a
Binary files /dev/null and b/fr/.gitbook/assets/image (255).png differ
diff --git a/fr/.gitbook/assets/image (256).png b/fr/.gitbook/assets/image (256).png
new file mode 100644
index 00000000..8dc2b06f
Binary files /dev/null and b/fr/.gitbook/assets/image (256).png differ
diff --git a/fr/.gitbook/assets/image (257).png b/fr/.gitbook/assets/image (257).png
new file mode 100644
index 00000000..76a158f5
Binary files /dev/null and b/fr/.gitbook/assets/image (257).png differ
diff --git a/fr/.gitbook/assets/image (258).png b/fr/.gitbook/assets/image (258).png
new file mode 100644
index 00000000..85b49271
Binary files /dev/null and b/fr/.gitbook/assets/image (258).png differ
diff --git a/fr/.gitbook/assets/image (259).png b/fr/.gitbook/assets/image (259).png
new file mode 100644
index 00000000..ba6235fd
Binary files /dev/null and b/fr/.gitbook/assets/image (259).png differ
diff --git a/fr/.gitbook/assets/image (26).png b/fr/.gitbook/assets/image (26).png
new file mode 100644
index 00000000..6c72c3cb
Binary files /dev/null and b/fr/.gitbook/assets/image (26).png differ
diff --git a/fr/.gitbook/assets/image (260).png b/fr/.gitbook/assets/image (260).png
new file mode 100644
index 00000000..680bf32f
Binary files /dev/null and b/fr/.gitbook/assets/image (260).png differ
diff --git a/fr/.gitbook/assets/image (261).png b/fr/.gitbook/assets/image (261).png
new file mode 100644
index 00000000..482ff7bd
Binary files /dev/null and b/fr/.gitbook/assets/image (261).png differ
diff --git a/fr/.gitbook/assets/image (262).png b/fr/.gitbook/assets/image (262).png
new file mode 100644
index 00000000..d6b00970
Binary files /dev/null and b/fr/.gitbook/assets/image (262).png differ
diff --git a/fr/.gitbook/assets/image (263).png b/fr/.gitbook/assets/image (263).png
new file mode 100644
index 00000000..75e8c17e
Binary files /dev/null and b/fr/.gitbook/assets/image (263).png differ
diff --git a/fr/.gitbook/assets/image (264).png b/fr/.gitbook/assets/image (264).png
new file mode 100644
index 00000000..a9c5cbe4
Binary files /dev/null and b/fr/.gitbook/assets/image (264).png differ
diff --git a/fr/.gitbook/assets/image (265).png b/fr/.gitbook/assets/image (265).png
new file mode 100644
index 00000000..1b58bf4c
Binary files /dev/null and b/fr/.gitbook/assets/image (265).png differ
diff --git a/fr/.gitbook/assets/image (266).png b/fr/.gitbook/assets/image (266).png
new file mode 100644
index 00000000..08a94eb8
Binary files /dev/null and b/fr/.gitbook/assets/image (266).png differ
diff --git a/fr/.gitbook/assets/image (267).png b/fr/.gitbook/assets/image (267).png
new file mode 100644
index 00000000..34f553e7
Binary files /dev/null and b/fr/.gitbook/assets/image (267).png differ
diff --git a/fr/.gitbook/assets/image (268).png b/fr/.gitbook/assets/image (268).png
new file mode 100644
index 00000000..e00d55b0
Binary files /dev/null and b/fr/.gitbook/assets/image (268).png differ
diff --git a/fr/.gitbook/assets/image (269).png b/fr/.gitbook/assets/image (269).png
new file mode 100644
index 00000000..b11c5219
Binary files /dev/null and b/fr/.gitbook/assets/image (269).png differ
diff --git a/fr/.gitbook/assets/image (27) (1) (1).png b/fr/.gitbook/assets/image (27) (1) (1).png
new file mode 100644
index 00000000..88bca02c
Binary files /dev/null and b/fr/.gitbook/assets/image (27) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (27) (1).png b/fr/.gitbook/assets/image (27) (1).png
new file mode 100644
index 00000000..117fabc6
Binary files /dev/null and b/fr/.gitbook/assets/image (27) (1).png differ
diff --git a/fr/.gitbook/assets/image (27).png b/fr/.gitbook/assets/image (27).png
new file mode 100644
index 00000000..26be8099
Binary files /dev/null and b/fr/.gitbook/assets/image (27).png differ
diff --git a/fr/.gitbook/assets/image (270).png b/fr/.gitbook/assets/image (270).png
new file mode 100644
index 00000000..879e7e4d
Binary files /dev/null and b/fr/.gitbook/assets/image (270).png differ
diff --git a/fr/.gitbook/assets/image (271).png b/fr/.gitbook/assets/image (271).png
new file mode 100644
index 00000000..d0b63f5d
Binary files /dev/null and b/fr/.gitbook/assets/image (271).png differ
diff --git a/fr/.gitbook/assets/image (272).png b/fr/.gitbook/assets/image (272).png
new file mode 100644
index 00000000..adc51147
Binary files /dev/null and b/fr/.gitbook/assets/image (272).png differ
diff --git a/fr/.gitbook/assets/image (273).png b/fr/.gitbook/assets/image (273).png
new file mode 100644
index 00000000..1153171c
Binary files /dev/null and b/fr/.gitbook/assets/image (273).png differ
diff --git a/fr/.gitbook/assets/image (274).png b/fr/.gitbook/assets/image (274).png
new file mode 100644
index 00000000..34a15295
Binary files /dev/null and b/fr/.gitbook/assets/image (274).png differ
diff --git a/fr/.gitbook/assets/image (275).png b/fr/.gitbook/assets/image (275).png
new file mode 100644
index 00000000..8701f663
Binary files /dev/null and b/fr/.gitbook/assets/image (275).png differ
diff --git a/fr/.gitbook/assets/image (276).png b/fr/.gitbook/assets/image (276).png
new file mode 100644
index 00000000..d6892a94
Binary files /dev/null and b/fr/.gitbook/assets/image (276).png differ
diff --git a/fr/.gitbook/assets/image (277).png b/fr/.gitbook/assets/image (277).png
new file mode 100644
index 00000000..eb998173
Binary files /dev/null and b/fr/.gitbook/assets/image (277).png differ
diff --git a/fr/.gitbook/assets/image (278).png b/fr/.gitbook/assets/image (278).png
new file mode 100644
index 00000000..26353df7
Binary files /dev/null and b/fr/.gitbook/assets/image (278).png differ
diff --git a/fr/.gitbook/assets/image (279).png b/fr/.gitbook/assets/image (279).png
new file mode 100644
index 00000000..ca6650cf
Binary files /dev/null and b/fr/.gitbook/assets/image (279).png differ
diff --git a/fr/.gitbook/assets/image (28).png b/fr/.gitbook/assets/image (28).png
new file mode 100644
index 00000000..8e11f425
Binary files /dev/null and b/fr/.gitbook/assets/image (28).png differ
diff --git a/fr/.gitbook/assets/image (280).png b/fr/.gitbook/assets/image (280).png
new file mode 100644
index 00000000..58eebcb2
Binary files /dev/null and b/fr/.gitbook/assets/image (280).png differ
diff --git a/fr/.gitbook/assets/image (281).png b/fr/.gitbook/assets/image (281).png
new file mode 100644
index 00000000..79e81472
Binary files /dev/null and b/fr/.gitbook/assets/image (281).png differ
diff --git a/fr/.gitbook/assets/image (282).png b/fr/.gitbook/assets/image (282).png
new file mode 100644
index 00000000..de7b3f14
Binary files /dev/null and b/fr/.gitbook/assets/image (282).png differ
diff --git a/fr/.gitbook/assets/image (283).png b/fr/.gitbook/assets/image (283).png
new file mode 100644
index 00000000..725b8abc
Binary files /dev/null and b/fr/.gitbook/assets/image (283).png differ
diff --git a/fr/.gitbook/assets/image (284).png b/fr/.gitbook/assets/image (284).png
new file mode 100644
index 00000000..1ee68cae
Binary files /dev/null and b/fr/.gitbook/assets/image (284).png differ
diff --git a/fr/.gitbook/assets/image (285).png b/fr/.gitbook/assets/image (285).png
new file mode 100644
index 00000000..0b4d2832
Binary files /dev/null and b/fr/.gitbook/assets/image (285).png differ
diff --git a/fr/.gitbook/assets/image (286).png b/fr/.gitbook/assets/image (286).png
new file mode 100644
index 00000000..2e24b6ef
Binary files /dev/null and b/fr/.gitbook/assets/image (286).png differ
diff --git a/fr/.gitbook/assets/image (287).png b/fr/.gitbook/assets/image (287).png
new file mode 100644
index 00000000..9ed28b43
Binary files /dev/null and b/fr/.gitbook/assets/image (287).png differ
diff --git a/fr/.gitbook/assets/image (288).png b/fr/.gitbook/assets/image (288).png
new file mode 100644
index 00000000..b44a6999
Binary files /dev/null and b/fr/.gitbook/assets/image (288).png differ
diff --git a/fr/.gitbook/assets/image (289).png b/fr/.gitbook/assets/image (289).png
new file mode 100644
index 00000000..3145a05e
Binary files /dev/null and b/fr/.gitbook/assets/image (289).png differ
diff --git a/fr/.gitbook/assets/image (29) (1).png b/fr/.gitbook/assets/image (29) (1).png
new file mode 100644
index 00000000..6fca6bb5
Binary files /dev/null and b/fr/.gitbook/assets/image (29) (1).png differ
diff --git a/fr/.gitbook/assets/image (29).png b/fr/.gitbook/assets/image (29).png
new file mode 100644
index 00000000..9e7ddff4
Binary files /dev/null and b/fr/.gitbook/assets/image (29).png differ
diff --git a/fr/.gitbook/assets/image (290).png b/fr/.gitbook/assets/image (290).png
new file mode 100644
index 00000000..c64d812e
Binary files /dev/null and b/fr/.gitbook/assets/image (290).png differ
diff --git a/fr/.gitbook/assets/image (291).png b/fr/.gitbook/assets/image (291).png
new file mode 100644
index 00000000..a5172bac
Binary files /dev/null and b/fr/.gitbook/assets/image (291).png differ
diff --git a/fr/.gitbook/assets/image (292).png b/fr/.gitbook/assets/image (292).png
new file mode 100644
index 00000000..de66549b
Binary files /dev/null and b/fr/.gitbook/assets/image (292).png differ
diff --git a/fr/.gitbook/assets/image (293).png b/fr/.gitbook/assets/image (293).png
new file mode 100644
index 00000000..3e05a94b
Binary files /dev/null and b/fr/.gitbook/assets/image (293).png differ
diff --git a/fr/.gitbook/assets/image (294).png b/fr/.gitbook/assets/image (294).png
new file mode 100644
index 00000000..b3c75245
Binary files /dev/null and b/fr/.gitbook/assets/image (294).png differ
diff --git a/fr/.gitbook/assets/image (295).png b/fr/.gitbook/assets/image (295).png
new file mode 100644
index 00000000..bd40d2ea
Binary files /dev/null and b/fr/.gitbook/assets/image (295).png differ
diff --git a/fr/.gitbook/assets/image (296).png b/fr/.gitbook/assets/image (296).png
new file mode 100644
index 00000000..feb1e71a
Binary files /dev/null and b/fr/.gitbook/assets/image (296).png differ
diff --git a/fr/.gitbook/assets/image (297).png b/fr/.gitbook/assets/image (297).png
new file mode 100644
index 00000000..f02ffafa
Binary files /dev/null and b/fr/.gitbook/assets/image (297).png differ
diff --git a/fr/.gitbook/assets/image (298).png b/fr/.gitbook/assets/image (298).png
new file mode 100644
index 00000000..3b4df9ad
Binary files /dev/null and b/fr/.gitbook/assets/image (298).png differ
diff --git a/fr/.gitbook/assets/image (299).png b/fr/.gitbook/assets/image (299).png
new file mode 100644
index 00000000..9c6a156d
Binary files /dev/null and b/fr/.gitbook/assets/image (299).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..d3bdadc0
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..8aac93ff
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..032405c2
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..faa43441
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..b1ae287b
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..7c8b4107
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..95fc122a
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..02226006
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..ff4b32e5
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..dd3ab103
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..e215cc1f
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..6b190a07
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..31b162f2
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..cd73ca2a
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..27f2db43
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..625903f2
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..61bc4530
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..429682af
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..fead7383
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..03663655
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..f303c3dc
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..1e4bde69
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..c4d5738f
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..7433bbac
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..82a27cc7
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2c72824b
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (1).png
new file mode 100644
index 00000000..9ae78a3f
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..1d0e3797
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (1) (2).png
new file mode 100644
index 00000000..09dafdad
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (1).png
new file mode 100644
index 00000000..f20d76bb
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (3) (1) (1) (2) (1).png
new file mode 100644
index 00000000..6dbc792d
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (1) (2).png
new file mode 100644
index 00000000..1c7ee1dd
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (1).png b/fr/.gitbook/assets/image (3) (1) (1).png
new file mode 100644
index 00000000..d975a7a2
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (1) (2).png b/fr/.gitbook/assets/image (3) (1) (2).png
new file mode 100644
index 00000000..42ec9997
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (1).png b/fr/.gitbook/assets/image (3) (1).png
new file mode 100644
index 00000000..c46f0eea
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (2).png b/fr/.gitbook/assets/image (3) (2).png
new file mode 100644
index 00000000..245724ff
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (2).png differ
diff --git a/fr/.gitbook/assets/image (3) (3) (1) (1).png b/fr/.gitbook/assets/image (3) (3) (1) (1).png
new file mode 100644
index 00000000..8fba76d4
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (3) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (3) (1).png b/fr/.gitbook/assets/image (3) (3) (1).png
new file mode 100644
index 00000000..05ee968d
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (3) (1).png differ
diff --git a/fr/.gitbook/assets/image (3) (3).png b/fr/.gitbook/assets/image (3) (3).png
new file mode 100644
index 00000000..23d23a73
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (3).png differ
diff --git a/fr/.gitbook/assets/image (3) (4).png b/fr/.gitbook/assets/image (3) (4).png
new file mode 100644
index 00000000..ce87876b
Binary files /dev/null and b/fr/.gitbook/assets/image (3) (4).png differ
diff --git a/fr/.gitbook/assets/image (3).png b/fr/.gitbook/assets/image (3).png
new file mode 100644
index 00000000..0c783233
Binary files /dev/null and b/fr/.gitbook/assets/image (3).png differ
diff --git a/fr/.gitbook/assets/image (30) (1).png b/fr/.gitbook/assets/image (30) (1).png
new file mode 100644
index 00000000..c6eed90f
Binary files /dev/null and b/fr/.gitbook/assets/image (30) (1).png differ
diff --git a/fr/.gitbook/assets/image (30).png b/fr/.gitbook/assets/image (30).png
new file mode 100644
index 00000000..8a874854
Binary files /dev/null and b/fr/.gitbook/assets/image (30).png differ
diff --git a/fr/.gitbook/assets/image (300).png b/fr/.gitbook/assets/image (300).png
new file mode 100644
index 00000000..7efb9fac
Binary files /dev/null and b/fr/.gitbook/assets/image (300).png differ
diff --git a/fr/.gitbook/assets/image (301).png b/fr/.gitbook/assets/image (301).png
new file mode 100644
index 00000000..f10e797d
Binary files /dev/null and b/fr/.gitbook/assets/image (301).png differ
diff --git a/fr/.gitbook/assets/image (302).png b/fr/.gitbook/assets/image (302).png
new file mode 100644
index 00000000..2b50a563
Binary files /dev/null and b/fr/.gitbook/assets/image (302).png differ
diff --git a/fr/.gitbook/assets/image (303).png b/fr/.gitbook/assets/image (303).png
new file mode 100644
index 00000000..908ade0f
Binary files /dev/null and b/fr/.gitbook/assets/image (303).png differ
diff --git a/fr/.gitbook/assets/image (304).png b/fr/.gitbook/assets/image (304).png
new file mode 100644
index 00000000..c7cfe6fc
Binary files /dev/null and b/fr/.gitbook/assets/image (304).png differ
diff --git a/fr/.gitbook/assets/image (305).png b/fr/.gitbook/assets/image (305).png
new file mode 100644
index 00000000..19cd6739
Binary files /dev/null and b/fr/.gitbook/assets/image (305).png differ
diff --git a/fr/.gitbook/assets/image (306).png b/fr/.gitbook/assets/image (306).png
new file mode 100644
index 00000000..e5b6ebcf
Binary files /dev/null and b/fr/.gitbook/assets/image (306).png differ
diff --git a/fr/.gitbook/assets/image (307).png b/fr/.gitbook/assets/image (307).png
new file mode 100644
index 00000000..28a07fb8
Binary files /dev/null and b/fr/.gitbook/assets/image (307).png differ
diff --git a/fr/.gitbook/assets/image (308).png b/fr/.gitbook/assets/image (308).png
new file mode 100644
index 00000000..ff84f388
Binary files /dev/null and b/fr/.gitbook/assets/image (308).png differ
diff --git a/fr/.gitbook/assets/image (309).png b/fr/.gitbook/assets/image (309).png
new file mode 100644
index 00000000..b32ac009
Binary files /dev/null and b/fr/.gitbook/assets/image (309).png differ
diff --git a/fr/.gitbook/assets/image (31).png b/fr/.gitbook/assets/image (31).png
new file mode 100644
index 00000000..7470f0c2
Binary files /dev/null and b/fr/.gitbook/assets/image (31).png differ
diff --git a/fr/.gitbook/assets/image (310).png b/fr/.gitbook/assets/image (310).png
new file mode 100644
index 00000000..b32ac009
Binary files /dev/null and b/fr/.gitbook/assets/image (310).png differ
diff --git a/fr/.gitbook/assets/image (311).png b/fr/.gitbook/assets/image (311).png
new file mode 100644
index 00000000..ff3d6da3
Binary files /dev/null and b/fr/.gitbook/assets/image (311).png differ
diff --git a/fr/.gitbook/assets/image (312).png b/fr/.gitbook/assets/image (312).png
new file mode 100644
index 00000000..adf91df9
Binary files /dev/null and b/fr/.gitbook/assets/image (312).png differ
diff --git a/fr/.gitbook/assets/image (313).png b/fr/.gitbook/assets/image (313).png
new file mode 100644
index 00000000..13560ca1
Binary files /dev/null and b/fr/.gitbook/assets/image (313).png differ
diff --git a/fr/.gitbook/assets/image (314).png b/fr/.gitbook/assets/image (314).png
new file mode 100644
index 00000000..95b21316
Binary files /dev/null and b/fr/.gitbook/assets/image (314).png differ
diff --git a/fr/.gitbook/assets/image (315).png b/fr/.gitbook/assets/image (315).png
new file mode 100644
index 00000000..99cede57
Binary files /dev/null and b/fr/.gitbook/assets/image (315).png differ
diff --git a/fr/.gitbook/assets/image (316).png b/fr/.gitbook/assets/image (316).png
new file mode 100644
index 00000000..84b81c8f
Binary files /dev/null and b/fr/.gitbook/assets/image (316).png differ
diff --git a/fr/.gitbook/assets/image (317).png b/fr/.gitbook/assets/image (317).png
new file mode 100644
index 00000000..3c6b86de
Binary files /dev/null and b/fr/.gitbook/assets/image (317).png differ
diff --git a/fr/.gitbook/assets/image (318).png b/fr/.gitbook/assets/image (318).png
new file mode 100644
index 00000000..9ae53e59
Binary files /dev/null and b/fr/.gitbook/assets/image (318).png differ
diff --git a/fr/.gitbook/assets/image (319).png b/fr/.gitbook/assets/image (319).png
new file mode 100644
index 00000000..adf41819
Binary files /dev/null and b/fr/.gitbook/assets/image (319).png differ
diff --git a/fr/.gitbook/assets/image (32).png b/fr/.gitbook/assets/image (32).png
new file mode 100644
index 00000000..840d2d2c
Binary files /dev/null and b/fr/.gitbook/assets/image (32).png differ
diff --git a/fr/.gitbook/assets/image (320).png b/fr/.gitbook/assets/image (320).png
new file mode 100644
index 00000000..44756a08
Binary files /dev/null and b/fr/.gitbook/assets/image (320).png differ
diff --git a/fr/.gitbook/assets/image (321).png b/fr/.gitbook/assets/image (321).png
new file mode 100644
index 00000000..cdcc8d35
Binary files /dev/null and b/fr/.gitbook/assets/image (321).png differ
diff --git a/fr/.gitbook/assets/image (322).png b/fr/.gitbook/assets/image (322).png
new file mode 100644
index 00000000..ea0e075c
Binary files /dev/null and b/fr/.gitbook/assets/image (322).png differ
diff --git a/fr/.gitbook/assets/image (323).png b/fr/.gitbook/assets/image (323).png
new file mode 100644
index 00000000..d04408b0
Binary files /dev/null and b/fr/.gitbook/assets/image (323).png differ
diff --git a/fr/.gitbook/assets/image (324).png b/fr/.gitbook/assets/image (324).png
new file mode 100644
index 00000000..a7b2c307
Binary files /dev/null and b/fr/.gitbook/assets/image (324).png differ
diff --git a/fr/.gitbook/assets/image (325).png b/fr/.gitbook/assets/image (325).png
new file mode 100644
index 00000000..051e1d4f
Binary files /dev/null and b/fr/.gitbook/assets/image (325).png differ
diff --git a/fr/.gitbook/assets/image (326).png b/fr/.gitbook/assets/image (326).png
new file mode 100644
index 00000000..727bac73
Binary files /dev/null and b/fr/.gitbook/assets/image (326).png differ
diff --git a/fr/.gitbook/assets/image (327).png b/fr/.gitbook/assets/image (327).png
new file mode 100644
index 00000000..ec5ed9b8
Binary files /dev/null and b/fr/.gitbook/assets/image (327).png differ
diff --git a/fr/.gitbook/assets/image (328).png b/fr/.gitbook/assets/image (328).png
new file mode 100644
index 00000000..eb7052a4
Binary files /dev/null and b/fr/.gitbook/assets/image (328).png differ
diff --git a/fr/.gitbook/assets/image (329).png b/fr/.gitbook/assets/image (329).png
new file mode 100644
index 00000000..c593d5b8
Binary files /dev/null and b/fr/.gitbook/assets/image (329).png differ
diff --git a/fr/.gitbook/assets/image (33).png b/fr/.gitbook/assets/image (33).png
new file mode 100644
index 00000000..6e7bc1d4
Binary files /dev/null and b/fr/.gitbook/assets/image (33).png differ
diff --git a/fr/.gitbook/assets/image (330).png b/fr/.gitbook/assets/image (330).png
new file mode 100644
index 00000000..02ef696d
Binary files /dev/null and b/fr/.gitbook/assets/image (330).png differ
diff --git a/fr/.gitbook/assets/image (331).png b/fr/.gitbook/assets/image (331).png
new file mode 100644
index 00000000..3da18717
Binary files /dev/null and b/fr/.gitbook/assets/image (331).png differ
diff --git a/fr/.gitbook/assets/image (332).png b/fr/.gitbook/assets/image (332).png
new file mode 100644
index 00000000..1b8da3c6
Binary files /dev/null and b/fr/.gitbook/assets/image (332).png differ
diff --git a/fr/.gitbook/assets/image (333).png b/fr/.gitbook/assets/image (333).png
new file mode 100644
index 00000000..d33634ce
Binary files /dev/null and b/fr/.gitbook/assets/image (333).png differ
diff --git a/fr/.gitbook/assets/image (334).png b/fr/.gitbook/assets/image (334).png
new file mode 100644
index 00000000..c974fd73
Binary files /dev/null and b/fr/.gitbook/assets/image (334).png differ
diff --git a/fr/.gitbook/assets/image (335).png b/fr/.gitbook/assets/image (335).png
new file mode 100644
index 00000000..3c1000d5
Binary files /dev/null and b/fr/.gitbook/assets/image (335).png differ
diff --git a/fr/.gitbook/assets/image (336).png b/fr/.gitbook/assets/image (336).png
new file mode 100644
index 00000000..1364c9fa
Binary files /dev/null and b/fr/.gitbook/assets/image (336).png differ
diff --git a/fr/.gitbook/assets/image (337).png b/fr/.gitbook/assets/image (337).png
new file mode 100644
index 00000000..8d085117
Binary files /dev/null and b/fr/.gitbook/assets/image (337).png differ
diff --git a/fr/.gitbook/assets/image (34).png b/fr/.gitbook/assets/image (34).png
new file mode 100644
index 00000000..b433207a
Binary files /dev/null and b/fr/.gitbook/assets/image (34).png differ
diff --git a/fr/.gitbook/assets/image (35).png b/fr/.gitbook/assets/image (35).png
new file mode 100644
index 00000000..76fc4d4f
Binary files /dev/null and b/fr/.gitbook/assets/image (35).png differ
diff --git a/fr/.gitbook/assets/image (36) (1).png b/fr/.gitbook/assets/image (36) (1).png
new file mode 100644
index 00000000..08d7ca74
Binary files /dev/null and b/fr/.gitbook/assets/image (36) (1).png differ
diff --git a/fr/.gitbook/assets/image (36).png b/fr/.gitbook/assets/image (36).png
new file mode 100644
index 00000000..6b154378
Binary files /dev/null and b/fr/.gitbook/assets/image (36).png differ
diff --git a/fr/.gitbook/assets/image (37) (1).png b/fr/.gitbook/assets/image (37) (1).png
new file mode 100644
index 00000000..071dd61c
Binary files /dev/null and b/fr/.gitbook/assets/image (37) (1).png differ
diff --git a/fr/.gitbook/assets/image (37).png b/fr/.gitbook/assets/image (37).png
new file mode 100644
index 00000000..b08c4ddc
Binary files /dev/null and b/fr/.gitbook/assets/image (37).png differ
diff --git a/fr/.gitbook/assets/image (38) (1) (1).png b/fr/.gitbook/assets/image (38) (1) (1).png
new file mode 100644
index 00000000..5c6cdf10
Binary files /dev/null and b/fr/.gitbook/assets/image (38) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (38) (1).png b/fr/.gitbook/assets/image (38) (1).png
new file mode 100644
index 00000000..32c0f035
Binary files /dev/null and b/fr/.gitbook/assets/image (38) (1).png differ
diff --git a/fr/.gitbook/assets/image (38).png b/fr/.gitbook/assets/image (38).png
new file mode 100644
index 00000000..31db2749
Binary files /dev/null and b/fr/.gitbook/assets/image (38).png differ
diff --git a/fr/.gitbook/assets/image (39) (1).png b/fr/.gitbook/assets/image (39) (1).png
new file mode 100644
index 00000000..dde5e942
Binary files /dev/null and b/fr/.gitbook/assets/image (39) (1).png differ
diff --git a/fr/.gitbook/assets/image (39).png b/fr/.gitbook/assets/image (39).png
new file mode 100644
index 00000000..2400c5dc
Binary files /dev/null and b/fr/.gitbook/assets/image (39).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..fff8514b
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..82fb7ff9
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ea118f46
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..19dfb487
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..ba25dada
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..3578f9e1
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..f38c3016
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..f6ccab6a
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..6bc3f51c
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..82d8ba36
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..cc1e6972
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..920b8945
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..3092272d
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c0edca89
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..8db0e191
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..1ab0212d
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..bada2fe6
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..c3893a5a
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2d1a0c10
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..5ce488ab
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..9d857bcd
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..370d859c
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..6baf30b8
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (3).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (3).png
new file mode 100644
index 00000000..05c11c7d
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1) (1).png
new file mode 100644
index 00000000..98071c51
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1) (1).png
new file mode 100644
index 00000000..c1bb3365
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (1).png
new file mode 100644
index 00000000..75b90e93
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (4) (1) (2) (1) (1).png
new file mode 100644
index 00000000..5d0c0141
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (2) (1).png b/fr/.gitbook/assets/image (4) (1) (2) (1).png
new file mode 100644
index 00000000..54e7a64e
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (2).png b/fr/.gitbook/assets/image (4) (1) (2).png
new file mode 100644
index 00000000..f128d34e
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (1) (3).png b/fr/.gitbook/assets/image (4) (1) (3).png
new file mode 100644
index 00000000..bd572796
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (4) (1).png b/fr/.gitbook/assets/image (4) (1).png
new file mode 100644
index 00000000..c0901edb
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (2).png b/fr/.gitbook/assets/image (4) (2).png
new file mode 100644
index 00000000..87f7d80f
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (2).png differ
diff --git a/fr/.gitbook/assets/image (4) (3) (1).png b/fr/.gitbook/assets/image (4) (3) (1).png
new file mode 100644
index 00000000..d4aa4fe6
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (3) (1).png differ
diff --git a/fr/.gitbook/assets/image (4) (3).png b/fr/.gitbook/assets/image (4) (3).png
new file mode 100644
index 00000000..c8342008
Binary files /dev/null and b/fr/.gitbook/assets/image (4) (3).png differ
diff --git a/fr/.gitbook/assets/image (4).png b/fr/.gitbook/assets/image (4).png
new file mode 100644
index 00000000..010e4714
Binary files /dev/null and b/fr/.gitbook/assets/image (4).png differ
diff --git a/fr/.gitbook/assets/image (40).png b/fr/.gitbook/assets/image (40).png
new file mode 100644
index 00000000..a32cfba1
Binary files /dev/null and b/fr/.gitbook/assets/image (40).png differ
diff --git a/fr/.gitbook/assets/image (41).png b/fr/.gitbook/assets/image (41).png
new file mode 100644
index 00000000..3c6a0e8f
Binary files /dev/null and b/fr/.gitbook/assets/image (41).png differ
diff --git a/fr/.gitbook/assets/image (42).png b/fr/.gitbook/assets/image (42).png
new file mode 100644
index 00000000..f3bacffc
Binary files /dev/null and b/fr/.gitbook/assets/image (42).png differ
diff --git a/fr/.gitbook/assets/image (43).png b/fr/.gitbook/assets/image (43).png
new file mode 100644
index 00000000..53140bf6
Binary files /dev/null and b/fr/.gitbook/assets/image (43).png differ
diff --git a/fr/.gitbook/assets/image (44).png b/fr/.gitbook/assets/image (44).png
new file mode 100644
index 00000000..37b86f5e
Binary files /dev/null and b/fr/.gitbook/assets/image (44).png differ
diff --git a/fr/.gitbook/assets/image (45).png b/fr/.gitbook/assets/image (45).png
new file mode 100644
index 00000000..271be4f5
Binary files /dev/null and b/fr/.gitbook/assets/image (45).png differ
diff --git a/fr/.gitbook/assets/image (46).png b/fr/.gitbook/assets/image (46).png
new file mode 100644
index 00000000..a817d39d
Binary files /dev/null and b/fr/.gitbook/assets/image (46).png differ
diff --git a/fr/.gitbook/assets/image (47).png b/fr/.gitbook/assets/image (47).png
new file mode 100644
index 00000000..98ee4c12
Binary files /dev/null and b/fr/.gitbook/assets/image (47).png differ
diff --git a/fr/.gitbook/assets/image (48).png b/fr/.gitbook/assets/image (48).png
new file mode 100644
index 00000000..4f264640
Binary files /dev/null and b/fr/.gitbook/assets/image (48).png differ
diff --git a/fr/.gitbook/assets/image (49).png b/fr/.gitbook/assets/image (49).png
new file mode 100644
index 00000000..c57ce0db
Binary files /dev/null and b/fr/.gitbook/assets/image (49).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..8b3f22d1
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..7327ba99
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..6798fc57
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png
new file mode 100644
index 00000000..e58fad39
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..2e754028
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..f1c0f754
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..ac1b4de9
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..a99621b3
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..35e23324
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..7cb303e7
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..f38c3016
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..31ba94ab
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..9d9da9cb
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..b07c2549
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ac8d8708
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..dc697fd3
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..ae46289c
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..82a62d3c
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..fc10c2c7
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..63a4b868
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1) (1).png
new file mode 100644
index 00000000..9d857bcd
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1) (1).png
new file mode 100644
index 00000000..c62ffad2
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (1) (2).png
new file mode 100644
index 00000000..ff87b170
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (1).png b/fr/.gitbook/assets/image (5) (1) (1).png
new file mode 100644
index 00000000..51329fec
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (1) (2).png b/fr/.gitbook/assets/image (5) (1) (2).png
new file mode 100644
index 00000000..5cf127ec
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (1).png b/fr/.gitbook/assets/image (5) (1).png
new file mode 100644
index 00000000..8b69ddc3
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (1).png differ
diff --git a/fr/.gitbook/assets/image (5) (2).png b/fr/.gitbook/assets/image (5) (2).png
new file mode 100644
index 00000000..85a77ebd
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (2).png differ
diff --git a/fr/.gitbook/assets/image (5) (3).png b/fr/.gitbook/assets/image (5) (3).png
new file mode 100644
index 00000000..4b6f3caf
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (3).png differ
diff --git a/fr/.gitbook/assets/image (5) (4).png b/fr/.gitbook/assets/image (5) (4).png
new file mode 100644
index 00000000..c2fe2124
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (4).png differ
diff --git a/fr/.gitbook/assets/image (5) (5).png b/fr/.gitbook/assets/image (5) (5).png
new file mode 100644
index 00000000..a67be3c7
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (5).png differ
diff --git a/fr/.gitbook/assets/image (5) (6).png b/fr/.gitbook/assets/image (5) (6).png
new file mode 100644
index 00000000..8cae20db
Binary files /dev/null and b/fr/.gitbook/assets/image (5) (6).png differ
diff --git a/fr/.gitbook/assets/image (5).png b/fr/.gitbook/assets/image (5).png
new file mode 100644
index 00000000..42dfa78e
Binary files /dev/null and b/fr/.gitbook/assets/image (5).png differ
diff --git a/fr/.gitbook/assets/image (50).png b/fr/.gitbook/assets/image (50).png
new file mode 100644
index 00000000..ee42d003
Binary files /dev/null and b/fr/.gitbook/assets/image (50).png differ
diff --git a/fr/.gitbook/assets/image (51).png b/fr/.gitbook/assets/image (51).png
new file mode 100644
index 00000000..8ab2351e
Binary files /dev/null and b/fr/.gitbook/assets/image (51).png differ
diff --git a/fr/.gitbook/assets/image (52).png b/fr/.gitbook/assets/image (52).png
new file mode 100644
index 00000000..4cb1b4a9
Binary files /dev/null and b/fr/.gitbook/assets/image (52).png differ
diff --git a/fr/.gitbook/assets/image (53).png b/fr/.gitbook/assets/image (53).png
new file mode 100644
index 00000000..98f95c27
Binary files /dev/null and b/fr/.gitbook/assets/image (53).png differ
diff --git a/fr/.gitbook/assets/image (54).png b/fr/.gitbook/assets/image (54).png
new file mode 100644
index 00000000..73793197
Binary files /dev/null and b/fr/.gitbook/assets/image (54).png differ
diff --git a/fr/.gitbook/assets/image (55).png b/fr/.gitbook/assets/image (55).png
new file mode 100644
index 00000000..9633de50
Binary files /dev/null and b/fr/.gitbook/assets/image (55).png differ
diff --git a/fr/.gitbook/assets/image (56).png b/fr/.gitbook/assets/image (56).png
new file mode 100644
index 00000000..2d47d097
Binary files /dev/null and b/fr/.gitbook/assets/image (56).png differ
diff --git a/fr/.gitbook/assets/image (57).png b/fr/.gitbook/assets/image (57).png
new file mode 100644
index 00000000..e4b4c3f9
Binary files /dev/null and b/fr/.gitbook/assets/image (57).png differ
diff --git a/fr/.gitbook/assets/image (58).png b/fr/.gitbook/assets/image (58).png
new file mode 100644
index 00000000..383cb564
Binary files /dev/null and b/fr/.gitbook/assets/image (58).png differ
diff --git a/fr/.gitbook/assets/image (59).png b/fr/.gitbook/assets/image (59).png
new file mode 100644
index 00000000..4e8dd10a
Binary files /dev/null and b/fr/.gitbook/assets/image (59).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..6730b1b9
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..4996b1d0
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..568fbe6b
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c8568fc8
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..ba6f5153
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ef6d8157
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..52dbd74e
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..9c59d546
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (2).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (2).png
new file mode 100644
index 00000000..631f5d69
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..95cd6e1d
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..cdfbe504
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..619f2a15
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..ae521cdd
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..c8b0b3f3
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (3).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (3).png
new file mode 100644
index 00000000..e7a404eb
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (1).png
new file mode 100644
index 00000000..8688b58c
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (6) (1) (1) (1) (2).png
new file mode 100644
index 00000000..d2b2b36b
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1) (1).png
new file mode 100644
index 00000000..4a205bdb
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (1).png b/fr/.gitbook/assets/image (6) (1) (1).png
new file mode 100644
index 00000000..8650e278
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (1) (2).png b/fr/.gitbook/assets/image (6) (1) (2).png
new file mode 100644
index 00000000..a9a62b0c
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (1).png b/fr/.gitbook/assets/image (6) (1).png
new file mode 100644
index 00000000..efaeecc8
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (1).png differ
diff --git a/fr/.gitbook/assets/image (6) (2).png b/fr/.gitbook/assets/image (6) (2).png
new file mode 100644
index 00000000..d7617d21
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (2).png differ
diff --git a/fr/.gitbook/assets/image (6) (3).png b/fr/.gitbook/assets/image (6) (3).png
new file mode 100644
index 00000000..cb24c93d
Binary files /dev/null and b/fr/.gitbook/assets/image (6) (3).png differ
diff --git a/fr/.gitbook/assets/image (6).png b/fr/.gitbook/assets/image (6).png
new file mode 100644
index 00000000..358b54b1
Binary files /dev/null and b/fr/.gitbook/assets/image (6).png differ
diff --git a/fr/.gitbook/assets/image (60).png b/fr/.gitbook/assets/image (60).png
new file mode 100644
index 00000000..b099b007
Binary files /dev/null and b/fr/.gitbook/assets/image (60).png differ
diff --git a/fr/.gitbook/assets/image (61).png b/fr/.gitbook/assets/image (61).png
new file mode 100644
index 00000000..79ffbded
Binary files /dev/null and b/fr/.gitbook/assets/image (61).png differ
diff --git a/fr/.gitbook/assets/image (62).png b/fr/.gitbook/assets/image (62).png
new file mode 100644
index 00000000..97b8fa60
Binary files /dev/null and b/fr/.gitbook/assets/image (62).png differ
diff --git a/fr/.gitbook/assets/image (63).png b/fr/.gitbook/assets/image (63).png
new file mode 100644
index 00000000..7bb5754a
Binary files /dev/null and b/fr/.gitbook/assets/image (63).png differ
diff --git a/fr/.gitbook/assets/image (64).png b/fr/.gitbook/assets/image (64).png
new file mode 100644
index 00000000..8782e07d
Binary files /dev/null and b/fr/.gitbook/assets/image (64).png differ
diff --git a/fr/.gitbook/assets/image (65).png b/fr/.gitbook/assets/image (65).png
new file mode 100644
index 00000000..6d2342f8
Binary files /dev/null and b/fr/.gitbook/assets/image (65).png differ
diff --git a/fr/.gitbook/assets/image (66).png b/fr/.gitbook/assets/image (66).png
new file mode 100644
index 00000000..675182ef
Binary files /dev/null and b/fr/.gitbook/assets/image (66).png differ
diff --git a/fr/.gitbook/assets/image (67).png b/fr/.gitbook/assets/image (67).png
new file mode 100644
index 00000000..049b1740
Binary files /dev/null and b/fr/.gitbook/assets/image (67).png differ
diff --git a/fr/.gitbook/assets/image (68).png b/fr/.gitbook/assets/image (68).png
new file mode 100644
index 00000000..b494b784
Binary files /dev/null and b/fr/.gitbook/assets/image (68).png differ
diff --git a/fr/.gitbook/assets/image (69).png b/fr/.gitbook/assets/image (69).png
new file mode 100644
index 00000000..cb7a995d
Binary files /dev/null and b/fr/.gitbook/assets/image (69).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..5e416f0e
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..a911824f
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..4c374bd1
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..f3d7516a
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..333726dc
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..cdfbe504
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..98d15ed2
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..3af481de
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..ec7c36fe
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2d9376e5
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (7) (1) (1) (1) (2).png
new file mode 100644
index 00000000..730d7732
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1) (1).png
new file mode 100644
index 00000000..040b67cd
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (1).png b/fr/.gitbook/assets/image (7) (1) (1).png
new file mode 100644
index 00000000..95f6aa3f
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (1) (2).png b/fr/.gitbook/assets/image (7) (1) (2).png
new file mode 100644
index 00000000..c1a9d1ba
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (7) (1).png b/fr/.gitbook/assets/image (7) (1).png
new file mode 100644
index 00000000..6b39bacd
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (2) (1).png b/fr/.gitbook/assets/image (7) (2) (1).png
new file mode 100644
index 00000000..c0cb1668
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (7) (2) (2).png b/fr/.gitbook/assets/image (7) (2) (2).png
new file mode 100644
index 00000000..750a4dec
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (2) (2).png differ
diff --git a/fr/.gitbook/assets/image (7) (2).png b/fr/.gitbook/assets/image (7) (2).png
new file mode 100644
index 00000000..b2590f89
Binary files /dev/null and b/fr/.gitbook/assets/image (7) (2).png differ
diff --git a/fr/.gitbook/assets/image (7).png b/fr/.gitbook/assets/image (7).png
new file mode 100644
index 00000000..b9804240
Binary files /dev/null and b/fr/.gitbook/assets/image (7).png differ
diff --git a/fr/.gitbook/assets/image (70).png b/fr/.gitbook/assets/image (70).png
new file mode 100644
index 00000000..a068612f
Binary files /dev/null and b/fr/.gitbook/assets/image (70).png differ
diff --git a/fr/.gitbook/assets/image (71).png b/fr/.gitbook/assets/image (71).png
new file mode 100644
index 00000000..60465c5a
Binary files /dev/null and b/fr/.gitbook/assets/image (71).png differ
diff --git a/fr/.gitbook/assets/image (72).png b/fr/.gitbook/assets/image (72).png
new file mode 100644
index 00000000..18e0650a
Binary files /dev/null and b/fr/.gitbook/assets/image (72).png differ
diff --git a/fr/.gitbook/assets/image (73).png b/fr/.gitbook/assets/image (73).png
new file mode 100644
index 00000000..eb313caa
Binary files /dev/null and b/fr/.gitbook/assets/image (73).png differ
diff --git a/fr/.gitbook/assets/image (74).png b/fr/.gitbook/assets/image (74).png
new file mode 100644
index 00000000..c4486f67
Binary files /dev/null and b/fr/.gitbook/assets/image (74).png differ
diff --git a/fr/.gitbook/assets/image (75).png b/fr/.gitbook/assets/image (75).png
new file mode 100644
index 00000000..89738bd0
Binary files /dev/null and b/fr/.gitbook/assets/image (75).png differ
diff --git a/fr/.gitbook/assets/image (76).png b/fr/.gitbook/assets/image (76).png
new file mode 100644
index 00000000..822b64c6
Binary files /dev/null and b/fr/.gitbook/assets/image (76).png differ
diff --git a/fr/.gitbook/assets/image (77).png b/fr/.gitbook/assets/image (77).png
new file mode 100644
index 00000000..96a4803b
Binary files /dev/null and b/fr/.gitbook/assets/image (77).png differ
diff --git a/fr/.gitbook/assets/image (78).png b/fr/.gitbook/assets/image (78).png
new file mode 100644
index 00000000..b94f78c1
Binary files /dev/null and b/fr/.gitbook/assets/image (78).png differ
diff --git a/fr/.gitbook/assets/image (79).png b/fr/.gitbook/assets/image (79).png
new file mode 100644
index 00000000..d5a07c4d
Binary files /dev/null and b/fr/.gitbook/assets/image (79).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..b2bf4e1d
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..56ff6078
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..108fccd8
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..c26dd6ec
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2163a982
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..f4815f46
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..061fa98a
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..9f67744b
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..635f5bff
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..17c51cda
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..da09887a
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..72a2fbfb
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..f1a5558c
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (1).png
new file mode 100644
index 00000000..820fa75f
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (8) (1) (1) (1) (2).png
new file mode 100644
index 00000000..fc799e6a
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1) (1).png
new file mode 100644
index 00000000..b95af4d0
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1) (1).png b/fr/.gitbook/assets/image (8) (1) (1).png
new file mode 100644
index 00000000..d71d4bf4
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (1).png b/fr/.gitbook/assets/image (8) (1).png
new file mode 100644
index 00000000..cb2296c0
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (2) (1) (1).png b/fr/.gitbook/assets/image (8) (2) (1) (1).png
new file mode 100644
index 00000000..9721de0b
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (2) (1).png b/fr/.gitbook/assets/image (8) (2) (1).png
new file mode 100644
index 00000000..c715f651
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (8) (2).png b/fr/.gitbook/assets/image (8) (2).png
new file mode 100644
index 00000000..d57c0b07
Binary files /dev/null and b/fr/.gitbook/assets/image (8) (2).png differ
diff --git a/fr/.gitbook/assets/image (8).png b/fr/.gitbook/assets/image (8).png
new file mode 100644
index 00000000..8c466dad
Binary files /dev/null and b/fr/.gitbook/assets/image (8).png differ
diff --git a/fr/.gitbook/assets/image (80).png b/fr/.gitbook/assets/image (80).png
new file mode 100644
index 00000000..b01b0ca3
Binary files /dev/null and b/fr/.gitbook/assets/image (80).png differ
diff --git a/fr/.gitbook/assets/image (81).png b/fr/.gitbook/assets/image (81).png
new file mode 100644
index 00000000..54665a31
Binary files /dev/null and b/fr/.gitbook/assets/image (81).png differ
diff --git a/fr/.gitbook/assets/image (82).png b/fr/.gitbook/assets/image (82).png
new file mode 100644
index 00000000..c668dd18
Binary files /dev/null and b/fr/.gitbook/assets/image (82).png differ
diff --git a/fr/.gitbook/assets/image (83).png b/fr/.gitbook/assets/image (83).png
new file mode 100644
index 00000000..bbb0da47
Binary files /dev/null and b/fr/.gitbook/assets/image (83).png differ
diff --git a/fr/.gitbook/assets/image (84).png b/fr/.gitbook/assets/image (84).png
new file mode 100644
index 00000000..a7f2b684
Binary files /dev/null and b/fr/.gitbook/assets/image (84).png differ
diff --git a/fr/.gitbook/assets/image (85).png b/fr/.gitbook/assets/image (85).png
new file mode 100644
index 00000000..1e867fb8
Binary files /dev/null and b/fr/.gitbook/assets/image (85).png differ
diff --git a/fr/.gitbook/assets/image (86).png b/fr/.gitbook/assets/image (86).png
new file mode 100644
index 00000000..1fa4bdf9
Binary files /dev/null and b/fr/.gitbook/assets/image (86).png differ
diff --git a/fr/.gitbook/assets/image (87).png b/fr/.gitbook/assets/image (87).png
new file mode 100644
index 00000000..2f020cde
Binary files /dev/null and b/fr/.gitbook/assets/image (87).png differ
diff --git a/fr/.gitbook/assets/image (88).png b/fr/.gitbook/assets/image (88).png
new file mode 100644
index 00000000..b2716d71
Binary files /dev/null and b/fr/.gitbook/assets/image (88).png differ
diff --git a/fr/.gitbook/assets/image (89).png b/fr/.gitbook/assets/image (89).png
new file mode 100644
index 00000000..dcb2d13e
Binary files /dev/null and b/fr/.gitbook/assets/image (89).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..2a56c02c
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..439ae037
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..da16bd74
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..0961390e
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..388b22a7
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..bc01445f
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1).png
new file mode 100644
index 00000000..e403f932
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2) (1) (1).png
new file mode 100644
index 00000000..6cf7ae39
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..1484e2b0
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2).png
new file mode 100644
index 00000000..68b63505
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (3).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (3).png
new file mode 100644
index 00000000..9b90b2a4
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (1).png
new file mode 100644
index 00000000..e12e56ef
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (2) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (2) (1).png
new file mode 100644
index 00000000..dc53fe76
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (2).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (2).png
new file mode 100644
index 00000000..28393fd4
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (2).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1) (3).png b/fr/.gitbook/assets/image (9) (1) (1) (1) (3).png
new file mode 100644
index 00000000..2643724f
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1) (3).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1) (1).png
new file mode 100644
index 00000000..f4f59da1
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1) (1).png b/fr/.gitbook/assets/image (9) (1) (1).png
new file mode 100644
index 00000000..701b82d1
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (1).png b/fr/.gitbook/assets/image (9) (1).png
new file mode 100644
index 00000000..3e08d6f8
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (2) (1).png b/fr/.gitbook/assets/image (9) (2) (1).png
new file mode 100644
index 00000000..2bc45dca
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (2) (1).png differ
diff --git a/fr/.gitbook/assets/image (9) (2).png b/fr/.gitbook/assets/image (9) (2).png
new file mode 100644
index 00000000..d660c992
Binary files /dev/null and b/fr/.gitbook/assets/image (9) (2).png differ
diff --git a/fr/.gitbook/assets/image (9).png b/fr/.gitbook/assets/image (9).png
new file mode 100644
index 00000000..68de06c9
Binary files /dev/null and b/fr/.gitbook/assets/image (9).png differ
diff --git a/fr/.gitbook/assets/image (90).png b/fr/.gitbook/assets/image (90).png
new file mode 100644
index 00000000..92235f44
Binary files /dev/null and b/fr/.gitbook/assets/image (90).png differ
diff --git a/fr/.gitbook/assets/image (91).png b/fr/.gitbook/assets/image (91).png
new file mode 100644
index 00000000..7c80698f
Binary files /dev/null and b/fr/.gitbook/assets/image (91).png differ
diff --git a/fr/.gitbook/assets/image (92).png b/fr/.gitbook/assets/image (92).png
new file mode 100644
index 00000000..38b19459
Binary files /dev/null and b/fr/.gitbook/assets/image (92).png differ
diff --git a/fr/.gitbook/assets/image (93).png b/fr/.gitbook/assets/image (93).png
new file mode 100644
index 00000000..e6d72c4b
Binary files /dev/null and b/fr/.gitbook/assets/image (93).png differ
diff --git a/fr/.gitbook/assets/image (94).png b/fr/.gitbook/assets/image (94).png
new file mode 100644
index 00000000..5c3e1805
Binary files /dev/null and b/fr/.gitbook/assets/image (94).png differ
diff --git a/fr/.gitbook/assets/image (95) (1).png b/fr/.gitbook/assets/image (95) (1).png
new file mode 100644
index 00000000..cdf7bcfa
Binary files /dev/null and b/fr/.gitbook/assets/image (95) (1).png differ
diff --git a/fr/.gitbook/assets/image (95).png b/fr/.gitbook/assets/image (95).png
new file mode 100644
index 00000000..30c2d25c
Binary files /dev/null and b/fr/.gitbook/assets/image (95).png differ
diff --git a/fr/.gitbook/assets/image (96).png b/fr/.gitbook/assets/image (96).png
new file mode 100644
index 00000000..431b030e
Binary files /dev/null and b/fr/.gitbook/assets/image (96).png differ
diff --git a/fr/.gitbook/assets/image (97).png b/fr/.gitbook/assets/image (97).png
new file mode 100644
index 00000000..131ee883
Binary files /dev/null and b/fr/.gitbook/assets/image (97).png differ
diff --git a/fr/.gitbook/assets/image (98).png b/fr/.gitbook/assets/image (98).png
new file mode 100644
index 00000000..a7db7aac
Binary files /dev/null and b/fr/.gitbook/assets/image (98).png differ
diff --git a/fr/.gitbook/assets/image (99).png b/fr/.gitbook/assets/image (99).png
new file mode 100644
index 00000000..0460f1bc
Binary files /dev/null and b/fr/.gitbook/assets/image (99).png differ
diff --git a/fr/.gitbook/assets/image.png b/fr/.gitbook/assets/image.png
new file mode 100644
index 00000000..8c7a44f8
Binary files /dev/null and b/fr/.gitbook/assets/image.png differ
diff --git a/fr/.gitbook/assets/image_airtable (1).png b/fr/.gitbook/assets/image_airtable (1).png
new file mode 100644
index 00000000..f32ff749
Binary files /dev/null and b/fr/.gitbook/assets/image_airtable (1).png differ
diff --git a/fr/.gitbook/assets/image_airtable.png b/fr/.gitbook/assets/image_airtable.png
new file mode 100644
index 00000000..f32ff749
Binary files /dev/null and b/fr/.gitbook/assets/image_airtable.png differ
diff --git a/fr/.gitbook/assets/image_csv (1).png b/fr/.gitbook/assets/image_csv (1).png
new file mode 100644
index 00000000..2815c268
Binary files /dev/null and b/fr/.gitbook/assets/image_csv (1).png differ
diff --git a/fr/.gitbook/assets/image_csv.png b/fr/.gitbook/assets/image_csv.png
new file mode 100644
index 00000000..2815c268
Binary files /dev/null and b/fr/.gitbook/assets/image_csv.png differ
diff --git a/fr/.gitbook/assets/image_custom-loader (1).png b/fr/.gitbook/assets/image_custom-loader (1).png
new file mode 100644
index 00000000..4a2cfcf7
Binary files /dev/null and b/fr/.gitbook/assets/image_custom-loader (1).png differ
diff --git a/fr/.gitbook/assets/image_custom-loader.png b/fr/.gitbook/assets/image_custom-loader.png
new file mode 100644
index 00000000..4a2cfcf7
Binary files /dev/null and b/fr/.gitbook/assets/image_custom-loader.png differ
diff --git a/fr/.gitbook/assets/image_openAI (1).png b/fr/.gitbook/assets/image_openAI (1).png
new file mode 100644
index 00000000..9ad11174
Binary files /dev/null and b/fr/.gitbook/assets/image_openAI (1).png differ
diff --git a/fr/.gitbook/assets/image_openAI.png b/fr/.gitbook/assets/image_openAI.png
new file mode 100644
index 00000000..9ad11174
Binary files /dev/null and b/fr/.gitbook/assets/image_openAI.png differ
diff --git a/fr/.gitbook/assets/langwatch/langwatch-creds.png b/fr/.gitbook/assets/langwatch/langwatch-creds.png
new file mode 100644
index 00000000..6bf0bdab
Binary files /dev/null and b/fr/.gitbook/assets/langwatch/langwatch-creds.png differ
diff --git a/fr/.gitbook/assets/langwatch/langwatch-input.png b/fr/.gitbook/assets/langwatch/langwatch-input.png
new file mode 100644
index 00000000..01708d77
Binary files /dev/null and b/fr/.gitbook/assets/langwatch/langwatch-input.png differ
diff --git a/fr/.gitbook/assets/langwatch/langwatch-screenshot.png b/fr/.gitbook/assets/langwatch/langwatch-screenshot.png
new file mode 100644
index 00000000..e13553db
Binary files /dev/null and b/fr/.gitbook/assets/langwatch/langwatch-screenshot.png differ
diff --git a/fr/.gitbook/assets/longGIF.gif b/fr/.gitbook/assets/longGIF.gif
new file mode 100644
index 00000000..0e51d24f
Binary files /dev/null and b/fr/.gitbook/assets/longGIF.gif differ
diff --git a/fr/.gitbook/assets/mas01.png b/fr/.gitbook/assets/mas01.png
new file mode 100644
index 00000000..93eea934
Binary files /dev/null and b/fr/.gitbook/assets/mas01.png differ
diff --git a/fr/.gitbook/assets/mas04.png b/fr/.gitbook/assets/mas04.png
new file mode 100644
index 00000000..718db44c
Binary files /dev/null and b/fr/.gitbook/assets/mas04.png differ
diff --git a/fr/.gitbook/assets/mas05.png b/fr/.gitbook/assets/mas05.png
new file mode 100644
index 00000000..6094f848
Binary files /dev/null and b/fr/.gitbook/assets/mas05.png differ
diff --git a/fr/.gitbook/assets/mas06.png b/fr/.gitbook/assets/mas06.png
new file mode 100644
index 00000000..eeb86668
Binary files /dev/null and b/fr/.gitbook/assets/mas06.png differ
diff --git a/fr/.gitbook/assets/mas07.png b/fr/.gitbook/assets/mas07.png
new file mode 100644
index 00000000..697eb048
Binary files /dev/null and b/fr/.gitbook/assets/mas07.png differ
diff --git a/fr/.gitbook/assets/mas08.png b/fr/.gitbook/assets/mas08.png
new file mode 100644
index 00000000..1fee1997
Binary files /dev/null and b/fr/.gitbook/assets/mas08.png differ
diff --git a/fr/.gitbook/assets/mem0/api-key.png b/fr/.gitbook/assets/mem0/api-key.png
new file mode 100644
index 00000000..06b900ce
Binary files /dev/null and b/fr/.gitbook/assets/mem0/api-key.png differ
diff --git a/fr/.gitbook/assets/mem0/creds.png b/fr/.gitbook/assets/mem0/creds.png
new file mode 100644
index 00000000..2ce5ad64
Binary files /dev/null and b/fr/.gitbook/assets/mem0/creds.png differ
diff --git a/fr/.gitbook/assets/mem0/flowise-chat-1.png b/fr/.gitbook/assets/mem0/flowise-chat-1.png
new file mode 100644
index 00000000..9cb2b0a4
Binary files /dev/null and b/fr/.gitbook/assets/mem0/flowise-chat-1.png differ
diff --git a/fr/.gitbook/assets/mem0/flowise-chat-2.png b/fr/.gitbook/assets/mem0/flowise-chat-2.png
new file mode 100644
index 00000000..01ffac8f
Binary files /dev/null and b/fr/.gitbook/assets/mem0/flowise-chat-2.png differ
diff --git a/fr/.gitbook/assets/mem0/flowise-flow.png b/fr/.gitbook/assets/mem0/flowise-flow.png
new file mode 100644
index 00000000..3a452b25
Binary files /dev/null and b/fr/.gitbook/assets/mem0/flowise-flow.png differ
diff --git a/fr/.gitbook/assets/mem0/flowise-memory.png b/fr/.gitbook/assets/mem0/flowise-memory.png
new file mode 100644
index 00000000..621066ca
Binary files /dev/null and b/fr/.gitbook/assets/mem0/flowise-memory.png differ
diff --git a/fr/.gitbook/assets/mem0/mem0-settings.png b/fr/.gitbook/assets/mem0/mem0-settings.png
new file mode 100644
index 00000000..3fc16a87
Binary files /dev/null and b/fr/.gitbook/assets/mem0/mem0-settings.png differ
diff --git a/fr/.gitbook/assets/mem0/settings.png b/fr/.gitbook/assets/mem0/settings.png
new file mode 100644
index 00000000..f7200f13
Binary files /dev/null and b/fr/.gitbook/assets/mem0/settings.png differ
diff --git a/fr/.gitbook/assets/migration-guide/cloud-migration/3.png b/fr/.gitbook/assets/migration-guide/cloud-migration/3.png
new file mode 100644
index 00000000..451ad970
Binary files /dev/null and b/fr/.gitbook/assets/migration-guide/cloud-migration/3.png differ
diff --git a/fr/.gitbook/assets/mistral_ai/1.png b/fr/.gitbook/assets/mistral_ai/1.png
new file mode 100644
index 00000000..0f7052a3
Binary files /dev/null and b/fr/.gitbook/assets/mistral_ai/1.png differ
diff --git a/fr/.gitbook/assets/mistral_ai/2.png b/fr/.gitbook/assets/mistral_ai/2.png
new file mode 100644
index 00000000..da08971f
Binary files /dev/null and b/fr/.gitbook/assets/mistral_ai/2.png differ
diff --git a/fr/.gitbook/assets/mistral_ai/3.png b/fr/.gitbook/assets/mistral_ai/3.png
new file mode 100644
index 00000000..cab2f1ff
Binary files /dev/null and b/fr/.gitbook/assets/mistral_ai/3.png differ
diff --git a/fr/.gitbook/assets/mistral_ai/4.png b/fr/.gitbook/assets/mistral_ai/4.png
new file mode 100644
index 00000000..64606413
Binary files /dev/null and b/fr/.gitbook/assets/mistral_ai/4.png differ
diff --git a/fr/.gitbook/assets/multi-agent-diagram.svg b/fr/.gitbook/assets/multi-agent-diagram.svg
new file mode 100644
index 00000000..07de3d51
--- /dev/null
+++ b/fr/.gitbook/assets/multi-agent-diagram.svg
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/fr/.gitbook/assets/multi-docs-apple.png b/fr/.gitbook/assets/multi-docs-apple.png
new file mode 100644
index 00000000..16761aa6
Binary files /dev/null and b/fr/.gitbook/assets/multi-docs-apple.png differ
diff --git a/fr/.gitbook/assets/multi-docs-console.png b/fr/.gitbook/assets/multi-docs-console.png
new file mode 100644
index 00000000..f7182f9e
Binary files /dev/null and b/fr/.gitbook/assets/multi-docs-console.png differ
diff --git a/fr/.gitbook/assets/multi-docs-tesla.png b/fr/.gitbook/assets/multi-docs-tesla.png
new file mode 100644
index 00000000..9a639ff1
Binary files /dev/null and b/fr/.gitbook/assets/multi-docs-tesla.png differ
diff --git a/fr/.gitbook/assets/multi-docs-upload.png b/fr/.gitbook/assets/multi-docs-upload.png
new file mode 100644
index 00000000..b24c3b67
Binary files /dev/null and b/fr/.gitbook/assets/multi-docs-upload.png differ
diff --git a/fr/.gitbook/assets/multi-docs-upsert.png b/fr/.gitbook/assets/multi-docs-upsert.png
new file mode 100644
index 00000000..e0b3b679
Binary files /dev/null and b/fr/.gitbook/assets/multi-docs-upsert.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-container-exists.png b/fr/.gitbook/assets/nvidia-nim-container-exists.png
new file mode 100644
index 00000000..ac7008cd
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-container-exists.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-1.png b/fr/.gitbook/assets/nvidia-nim-local-1.png
new file mode 100644
index 00000000..456a272b
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-1.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-2.png b/fr/.gitbook/assets/nvidia-nim-local-2.png
new file mode 100644
index 00000000..9b8b696f
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-2.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-3.png b/fr/.gitbook/assets/nvidia-nim-local-3.png
new file mode 100644
index 00000000..941dc67d
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-3.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-4.png b/fr/.gitbook/assets/nvidia-nim-local-4.png
new file mode 100644
index 00000000..f1de04d9
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-4.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-5.png b/fr/.gitbook/assets/nvidia-nim-local-5.png
new file mode 100644
index 00000000..be5dd548
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-5.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-6.png b/fr/.gitbook/assets/nvidia-nim-local-6.png
new file mode 100644
index 00000000..1e736e31
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-6.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-7.png b/fr/.gitbook/assets/nvidia-nim-local-7.png
new file mode 100644
index 00000000..b58fa30e
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-7.png differ
diff --git a/fr/.gitbook/assets/nvidia-nim-local-8.png b/fr/.gitbook/assets/nvidia-nim-local-8.png
new file mode 100644
index 00000000..0d835c5e
Binary files /dev/null and b/fr/.gitbook/assets/nvidia-nim-local-8.png differ
diff --git a/fr/.gitbook/assets/openai_openapi.yaml b/fr/.gitbook/assets/openai_openapi.yaml
new file mode 100644
index 00000000..6d77f43c
--- /dev/null
+++ b/fr/.gitbook/assets/openai_openapi.yaml
@@ -0,0 +1,3196 @@
+openapi: 3.0.0
+info:
+ title: OpenAI API
+ description: APIs for sampling from and fine-tuning language models
+ version: '1.1.0'
+servers:
+ - url: https://api.openai.com/v1
+tags:
+- name: OpenAI
+ description: The OpenAI REST API
+paths:
+ /engines:
+ get:
+ operationId: listEngines
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListEnginesResponse'
+ x-oaiMeta:
+ name: List engines
+ group: engines
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/engines \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Engine.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listEngines();
+ response: |
+ {
+ "data": [
+ {
+ "id": "engine-id-0",
+ "object": "engine",
+ "owner": "organization-owner",
+ "ready": true
+ },
+ {
+ "id": "engine-id-2",
+ "object": "engine",
+ "owner": "organization-owner",
+ "ready": true
+ },
+ {
+ "id": "engine-id-3",
+ "object": "engine",
+ "owner": "openai",
+ "ready": false
+ },
+ ],
+ "object": "list"
+ }
+
+ /engines/{engine_id}:
+ get:
+ operationId: retrieveEngine
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: Retrieves a model instance, providing basic information about it such as the owner and availability.
+ parameters:
+ - in: path
+ name: engine_id
+ required: true
+ schema:
+ type: string
+ # ideally this will be an actual ID, so this will always work from browser
+ example:
+ davinci
+ description: &engine_id_description >
+ The ID of the engine to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Engine'
+ x-oaiMeta:
+ name: Retrieve engine
+ group: engines
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/engines/VAR_model_id \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Engine.retrieve("VAR_model_id")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveEngine("VAR_model_id");
+ response: |
+ {
+ "id": "VAR_model_id",
+ "object": "engine",
+ "owner": "openai",
+ "ready": true
+ }
+
+ /completions:
+ post:
+ operationId: createCompletion
+ tags:
+ - OpenAI
+ summary: Creates a completion for the provided prompt and parameters
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCompletionRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCompletionResponse'
+ x-oaiMeta:
+ name: Create completion
+ group: completions
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/completions \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "model": "VAR_model_id",
+ "prompt": "Say this is a test",
+ "max_tokens": 7,
+ "temperature": 0
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Completion.create(
+ model="VAR_model_id",
+ prompt="Say this is a test",
+ max_tokens=7,
+ temperature=0
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createCompletion({
+ model: "VAR_model_id",
+ prompt: "Say this is a test",
+ max_tokens: 7,
+ temperature: 0,
+ });
+ parameters: |
+ {
+ "model": "VAR_model_id",
+ "prompt": "Say this is a test",
+ "max_tokens": 7,
+ "temperature": 0,
+ "top_p": 1,
+ "n": 1,
+ "stream": false,
+ "logprobs": null,
+ "stop": "\n"
+ }
+ response: |
+ {
+ "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
+ "object": "text_completion",
+ "created": 1589478378,
+ "model": "VAR_model_id",
+ "choices": [
+ {
+ "text": "\n\nThis is indeed a test",
+ "index": 0,
+ "logprobs": null,
+ "finish_reason": "length"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 5,
+ "completion_tokens": 7,
+ "total_tokens": 12
+ }
+ }
+
+ /edits:
+ post:
+ operationId: createEdit
+ tags:
+ - OpenAI
+ summary: Creates a new edit for the provided input, instruction, and parameters
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEditRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEditResponse'
+ x-oaiMeta:
+ name: Create edit
+ group: edits
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/edits \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "model": "VAR_model_id",
+ "input": "What day of the wek is it?",
+ "instruction": "Fix the spelling mistakes"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Edit.create(
+ model="VAR_model_id",
+ input="What day of the wek is it?",
+ instruction="Fix the spelling mistakes"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createEdit({
+ model: "VAR_model_id",
+ input: "What day of the wek is it?",
+ instruction: "Fix the spelling mistakes",
+ });
+ parameters: |
+ {
+ "model": "VAR_model_id",
+ "input": "What day of the wek is it?",
+ "instruction": "Fix the spelling mistakes",
+ }
+ response: |
+ {
+ "object": "edit",
+ "created": 1589478378,
+ "choices": [
+ {
+ "text": "What day of the week is it?",
+ "index": 0,
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 25,
+ "completion_tokens": 32,
+ "total_tokens": 57
+ }
+ }
+
+ /images/generations:
+ post:
+ operationId: createImage
+ tags:
+ - OpenAI
+ summary: Creates an image given a prompt.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateImageRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ x-oaiMeta:
+ name: Create image
+ group: images
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/images/generations \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "prompt": "A cute baby sea otter",
+ "n": 2,
+ "size": "1024x1024"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Image.create(
+ prompt="A cute baby sea otter",
+ n=2,
+ size="1024x1024"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createImage({
+ prompt: "A cute baby sea otter",
+ n: 2,
+ size: "1024x1024",
+ });
+ parameters: |
+ {
+ "prompt": "A cute baby sea otter",
+ "n": 2,
+ "size": "1024x1024"
+ }
+ response: |
+ {
+ "created": 1589478378,
+ "data": [
+ {
+ "url": "https://..."
+ },
+ {
+ "url": "https://..."
+ }
+ ]
+ }
+
+ /images/edits:
+ post:
+ operationId: createImageEdit
+ tags:
+ - OpenAI
+ summary: Creates an edited or extended image given an original image and a prompt.
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateImageEditRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ x-oaiMeta:
+ name: Create image edit
+ group: images
+ path: create-edit
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/images/edits \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -F image='@otter.png' \
+ -F mask='@mask.png' \
+ -F prompt="A cute baby sea otter wearing a beret" \
+ -F n=2 \
+ -F size="1024x1024"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Image.create_edit(
+ image=open("otter.png", "rb"),
+ mask=open("mask.png", "rb"),
+ prompt="A cute baby sea otter wearing a beret",
+ n=2,
+ size="1024x1024"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createImageEdit(
+ fs.createReadStream("otter.png"),
+ fs.createReadStream("mask.png"),
+ "A cute baby sea otter wearing a beret",
+ 2,
+ "1024x1024"
+ );
+ response: |
+ {
+ "created": 1589478378,
+ "data": [
+ {
+ "url": "https://..."
+ },
+ {
+ "url": "https://..."
+ }
+ ]
+ }
+
+ /images/variations:
+ post:
+ operationId: createImageVariation
+ tags:
+ - OpenAI
+ summary: Creates a variation of a given image.
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateImageVariationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ x-oaiMeta:
+ name: Create image variation
+ group: images
+ path: create-variation
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/images/variations \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -F image='@otter.png' \
+ -F n=2 \
+ -F size="1024x1024"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Image.create_variation(
+ image=open("otter.png", "rb"),
+ n=2,
+ size="1024x1024"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createImageVariation(
+ fs.createReadStream("otter.png"),
+ 2,
+ "1024x1024"
+ );
+ response: |
+ {
+ "created": 1589478378,
+ "data": [
+ {
+ "url": "https://..."
+ },
+ {
+ "url": "https://..."
+ }
+ ]
+ }
+
+ /embeddings:
+ post:
+ operationId: createEmbedding
+ tags:
+ - OpenAI
+ summary: Creates an embedding vector representing the input text.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEmbeddingRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEmbeddingResponse'
+ x-oaiMeta:
+ name: Create embeddings
+ group: embeddings
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/embeddings \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"input": "The food was delicious and the waiter...",
+ "model": "text-embedding-ada-002"}'
+
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Embedding.create(
+ model="text-embedding-ada-002",
+ input="The food was delicious and the waiter..."
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createEmbedding({
+ model: "text-embedding-ada-002",
+ input: "The food was delicious and the waiter...",
+ });
+ parameters: |
+ {
+ "model": "text-embedding-ada-002",
+ "input": "The food was delicious and the waiter..."
+ }
+ response: |
+ {
+ "object": "list",
+ "data": [
+ {
+ "object": "embedding",
+ "embedding": [
+ 0.0023064255,
+ -0.009327292,
+ .... (1056 floats total for ada)
+ -0.0028842222,
+ ],
+ "index": 0
+ }
+ ],
+ "model": "text-embedding-ada-002",
+ "usage": {
+ "prompt_tokens": 8,
+ "total_tokens": 8
+ }
+ }
+
+ /engines/{engine_id}/search:
+ post:
+ operationId: createSearch
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: |
+ The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them.
+
+ To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When `file` is set, the search endpoint searches over all the documents in the given file and returns up to the `max_rerank` number of documents. These documents will be returned along with their search scores.
+
+ The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query.
+ parameters:
+ - in: path
+ name: engine_id
+ required: true
+ schema:
+ type: string
+ example: davinci
+ description: The ID of the engine to use for this request. You can select one of `ada`, `babbage`, `curie`, or `davinci`.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateSearchRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateSearchResponse'
+ x-oaiMeta:
+ name: Create search
+ group: searches
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/engines/davinci/search \
+ -H "Content-Type: application/json" \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "documents": ["White House", "hospital", "school"],
+ "query": "the president"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Engine("davinci").search(
+ documents=["White House", "hospital", "school"],
+ query="the president"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createSearch("davinci", {
+ documents: ["White House", "hospital", "school"],
+ query: "the president",
+ });
+ parameters: |
+ {
+ "documents": [
+ "White House",
+ "hospital",
+ "school"
+ ],
+ "query": "the president"
+ }
+ response: |
+ {
+ "data": [
+ {
+ "document": 0,
+ "object": "search_result",
+ "score": 215.412
+ },
+ {
+ "document": 1,
+ "object": "search_result",
+ "score": 40.316
+ },
+ {
+ "document": 2,
+ "object": "search_result",
+ "score": 55.226
+ }
+ ],
+ "object": "list"
+ }
+
+ /files:
+ get:
+ operationId: listFiles
+ tags:
+ - OpenAI
+ summary: Returns a list of files that belong to the user's organization.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListFilesResponse'
+ x-oaiMeta:
+ name: List files
+ group: files
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listFiles();
+ response: |
+ {
+ "data": [
+ {
+ "id": "file-ccdDZrC3iZVNiQVeEA6Z66wf",
+ "object": "file",
+ "bytes": 175,
+ "created_at": 1613677385,
+ "filename": "train.jsonl",
+ "purpose": "search"
+ },
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "bytes": 140,
+ "created_at": 1613779121,
+ "filename": "puppy.jsonl",
+ "purpose": "search"
+ }
+ ],
+ "object": "list"
+ }
+ post:
+ operationId: createFile
+ tags:
+ - OpenAI
+ summary: |
+ Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit.
+
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateFileRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFile'
+ x-oaiMeta:
+ name: Upload file
+ group: files
+ path: upload
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -F purpose="fine-tune" \
+ -F file='@mydata.jsonl'
+
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.create(
+ file=open("mydata.jsonl", "rb"),
+ purpose='fine-tune'
+ )
+ node.js: |
+ const fs = require("fs");
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createFile(
+ fs.createReadStream("mydata.jsonl"),
+ "fine-tune"
+ );
+ response: |
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "bytes": 140,
+ "created_at": 1613779121,
+ "filename": "mydata.jsonl",
+ "purpose": "fine-tune"
+ }
+
+ /files/{file_id}:
+ delete:
+ operationId: deleteFile
+ tags:
+ - OpenAI
+ summary: Delete a file.
+ parameters:
+ - in: path
+ name: file_id
+ required: true
+ schema:
+ type: string
+ description: The ID of the file to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteFileResponse'
+ x-oaiMeta:
+ name: Delete file
+ group: files
+ path: delete
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \
+ -X DELETE \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.delete("file-XjGxS3KTG0uNmNOK362iJua3")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.deleteFile("file-XjGxS3KTG0uNmNOK362iJua3");
+ response: |
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "deleted": true
+ }
+ get:
+ operationId: retrieveFile
+ tags:
+ - OpenAI
+ summary: Returns information about a specific file.
+ parameters:
+ - in: path
+ name: file_id
+ required: true
+ schema:
+ type: string
+ description: The ID of the file to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFile'
+ x-oaiMeta:
+ name: Retrieve file
+ group: files
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.retrieve("file-XjGxS3KTG0uNmNOK362iJua3")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveFile("file-XjGxS3KTG0uNmNOK362iJua3");
+ response: |
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "bytes": 140,
+ "created_at": 1613779657,
+ "filename": "mydata.jsonl",
+ "purpose": "fine-tune"
+ }
+
+ /files/{file_id}/content:
+ get:
+ operationId: downloadFile
+ tags:
+ - OpenAI
+ summary: Returns the contents of the specified file
+ parameters:
+ - in: path
+ name: file_id
+ required: true
+ schema:
+ type: string
+ description: The ID of the file to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: string
+ x-oaiMeta:
+ name: Retrieve file content
+ group: files
+ path: retrieve-content
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3/content \
+ -H 'Authorization: Bearer YOUR_API_KEY' > file.jsonl
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ content = openai.File.download("file-XjGxS3KTG0uNmNOK362iJua3")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.downloadFile("file-XjGxS3KTG0uNmNOK362iJua3");
+
+ /answers:
+ post:
+ operationId: createAnswer
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: |
+ Answers the specified question using the provided documents and examples.
+
+ The endpoint first [searches](/docs/api-reference/searches) over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for [completion](/docs/api-reference/completions).
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateAnswerRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateAnswerResponse'
+ x-oaiMeta:
+ name: Create answer
+ group: answers
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/answers \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "documents": ["Puppy A is happy.", "Puppy B is sad."],
+ "question": "which puppy is happy?",
+ "search_model": "ada",
+ "model": "curie",
+ "examples_context": "In 2017, U.S. life expectancy was 78.6 years.",
+ "examples": [["What is human life expectancy in the United States?","78 years."]],
+ "max_tokens": 5,
+ "stop": ["\n", "<|endoftext|>"]
+ }'
+
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Answer.create(
+ search_model="ada",
+ model="curie",
+ question="which puppy is happy?",
+ documents=["Puppy A is happy.", "Puppy B is sad."],
+ examples_context="In 2017, U.S. life expectancy was 78.6 years.",
+ examples=[["What is human life expectancy in the United States?","78 years."]],
+ max_tokens=5,
+ stop=["\n", "<|endoftext|>"],
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createAnswer({
+ search_model: "ada",
+ model: "curie",
+ question: "which puppy is happy?",
+ documents: ["Puppy A is happy.", "Puppy B is sad."],
+ examples_context: "In 2017, U.S. life expectancy was 78.6 years.",
+ examples: [["What is human life expectancy in the United States?","78 years."]],
+ max_tokens: 5,
+ stop: ["\n", "<|endoftext|>"],
+ });
+ parameters: |
+ {
+ "documents": ["Puppy A is happy.", "Puppy B is sad."],
+ "question": "which puppy is happy?",
+ "search_model": "ada",
+ "model": "curie",
+ "examples_context": "In 2017, U.S. life expectancy was 78.6 years.",
+ "examples": [["What is human life expectancy in the United States?","78 years."]],
+ "max_tokens": 5,
+ "stop": ["\n", "<|endoftext|>"]
+ }
+ response: |
+ {
+ "answers": [
+ "puppy A."
+ ],
+ "completion": "cmpl-2euVa1kmKUuLpSX600M41125Mo9NI",
+ "model": "curie:2020-05-03",
+ "object": "answer",
+ "search_model": "ada",
+ "selected_documents": [
+ {
+ "document": 0,
+ "text": "Puppy A is happy. "
+ },
+ {
+ "document": 1,
+ "text": "Puppy B is sad. "
+ }
+ ]
+ }
+
+ /classifications:
+ post:
+ operationId: createClassification
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: |
+ Classifies the specified `query` using provided examples.
+
+ The endpoint first [searches](/docs/api-reference/searches) over the labeled examples
+ to select the ones most relevant for the particular query. Then, the relevant examples
+ are combined with the query to construct a prompt to produce the final label via the
+ [completions](/docs/api-reference/completions) endpoint.
+
+ Labeled examples can be provided via an uploaded `file`, or explicitly listed in the
+ request using the `examples` parameter for quick tests and small scale use cases.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateClassificationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateClassificationResponse'
+ x-oaiMeta:
+ name: Create classification
+ group: classifications
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/classifications \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "examples": [
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]],
+ "query": "It is a raining day :(",
+ "search_model": "ada",
+ "model": "curie",
+ "labels":["Positive", "Negative", "Neutral"]
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Classification.create(
+ search_model="ada",
+ model="curie",
+ examples=[
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]
+ ],
+ query="It is a raining day :(",
+ labels=["Positive", "Negative", "Neutral"],
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createClassification({
+ search_model: "ada",
+ model: "curie",
+ examples: [
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]
+ ],
+ query:"It is a raining day :(",
+ labels: ["Positive", "Negative", "Neutral"],
+ });
+ parameters: |
+ {
+ "examples": [
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]
+ ],
+ "labels": ["Positive", "Negative", "Neutral"],
+ "query": "It is a raining day :(",
+ "search_model": "ada",
+ "model": "curie"
+ }
+ response: |
+ {
+ "completion": "cmpl-2euN7lUVZ0d4RKbQqRV79IiiE6M1f",
+ "label": "Negative",
+ "model": "curie:2020-05-03",
+ "object": "classification",
+ "search_model": "ada",
+ "selected_examples": [
+ {
+ "document": 1,
+ "label": "Negative",
+ "text": "I am sad."
+ },
+ {
+ "document": 0,
+ "label": "Positive",
+ "text": "A happy moment"
+ },
+ {
+ "document": 2,
+ "label": "Positive",
+ "text": "I am feeling awesome"
+ }
+ ]
+ }
+
+ /fine-tunes:
+ post:
+ operationId: createFineTune
+ tags:
+ - OpenAI
+ summary: |
+ Creates a job that fine-tunes a specified model from a given dataset.
+
+ Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+
+ [Learn more about Fine-tuning](/docs/guides/fine-tuning)
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateFineTuneRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FineTune'
+ x-oaiMeta:
+ name: Create fine-tune
+ group: fine-tunes
+ path: create
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -d '{
+ "training_file": "file-XGinujblHPwGLSztz8cPS8XY"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.create(training_file="file-XGinujblHPwGLSztz8cPS8XY")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createFineTune({
+ training_file: "file-XGinujblHPwGLSztz8cPS8XY",
+ });
+ response: |
+ {
+ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807352,
+ "events": [
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807352,
+ "level": "info",
+ "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
+ }
+ ],
+ "fine_tuned_model": null,
+ "hyperparams": {
+ "batch_size": 4,
+ "learning_rate_multiplier": 0.1,
+ "n_epochs": 4,
+ "prompt_loss_weight": 0.1,
+ },
+ "organization_id": "org-...",
+ "result_files": [],
+ "status": "pending",
+ "validation_files": [],
+ "training_files": [
+ {
+ "id": "file-XGinujblHPwGLSztz8cPS8XY",
+ "object": "file",
+ "bytes": 1547276,
+ "created_at": 1610062281,
+ "filename": "my-data-train.jsonl",
+ "purpose": "fine-tune-train"
+ }
+ ],
+ "updated_at": 1614807352,
+ }
+ get:
+ operationId: listFineTunes
+ tags:
+ - OpenAI
+ summary: |
+ List your organization's fine-tuning jobs
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListFineTunesResponse'
+ x-oaiMeta:
+ name: List fine-tunes
+ group: fine-tunes
+ path: list
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listFineTunes();
+ response: |
+ {
+ "object": "list",
+ "data": [
+ {
+ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807352,
+ "fine_tuned_model": null,
+ "hyperparams": { ... },
+ "organization_id": "org-...",
+ "result_files": [],
+ "status": "pending",
+ "validation_files": [],
+ "training_files": [ { ... } ],
+ "updated_at": 1614807352,
+ },
+ { ... },
+ { ... }
+ ]
+ }
+
+ /fine-tunes/{fine_tune_id}:
+ get:
+ operationId: retrieveFineTune
+ tags:
+ - OpenAI
+ summary: |
+ Gets info about the fine-tune job.
+
+ [Learn more about Fine-tuning](/docs/guides/fine-tuning)
+ parameters:
+ - in: path
+ name: fine_tune_id
+ required: true
+ schema:
+ type: string
+ example:
+ ft-AF1WoRqd3aJAHsqc9NY7iL8F
+ description: |
+ The ID of the fine-tune job
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FineTune'
+ x-oaiMeta:
+ name: Retrieve fine-tune
+ group: fine-tunes
+ path: retrieve
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.retrieve(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveFineTune("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
+ response: |
+ {
+ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807352,
+ "events": [
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807352,
+ "level": "info",
+ "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807356,
+ "level": "info",
+ "message": "Job started."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807861,
+ "level": "info",
+ "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Job succeeded."
+ }
+ ],
+ "fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20",
+ "hyperparams": {
+ "batch_size": 4,
+ "learning_rate_multiplier": 0.1,
+ "n_epochs": 4,
+ "prompt_loss_weight": 0.1,
+ },
+ "organization_id": "org-...",
+ "result_files": [
+ {
+ "id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT",
+ "object": "file",
+ "bytes": 81509,
+ "created_at": 1614807863,
+ "filename": "compiled_results.csv",
+ "purpose": "fine-tune-results"
+ }
+ ],
+ "status": "succeeded",
+ "validation_files": [],
+ "training_files": [
+ {
+ "id": "file-XGinujblHPwGLSztz8cPS8XY",
+ "object": "file",
+ "bytes": 1547276,
+ "created_at": 1610062281,
+ "filename": "my-data-train.jsonl",
+ "purpose": "fine-tune-train"
+ }
+ ],
+ "updated_at": 1614807865,
+ }
+
+ /fine-tunes/{fine_tune_id}/cancel:
+ post:
+ operationId: cancelFineTune
+ tags:
+ - OpenAI
+ summary: |
+ Immediately cancel a fine-tune job.
+ parameters:
+ - in: path
+ name: fine_tune_id
+ required: true
+ schema:
+ type: string
+ example:
+ ft-AF1WoRqd3aJAHsqc9NY7iL8F
+ description: |
+ The ID of the fine-tune job to cancel
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FineTune'
+ x-oaiMeta:
+ name: Cancel fine-tune
+ group: fine-tunes
+ path: cancel
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.cancel(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.cancelFineTune("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
+ response: |
+ {
+ "id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807770,
+ "events": [ { ... } ],
+ "fine_tuned_model": null,
+ "hyperparams": { ... },
+ "organization_id": "org-...",
+ "result_files": [],
+ "status": "cancelled",
+ "validation_files": [],
+ "training_files": [
+ {
+ "id": "file-XGinujblHPwGLSztz8cPS8XY",
+ "object": "file",
+ "bytes": 1547276,
+ "created_at": 1610062281,
+ "filename": "my-data-train.jsonl",
+ "purpose": "fine-tune-train"
+ }
+ ],
+ "updated_at": 1614807789,
+ }
+
+ /fine-tunes/{fine_tune_id}/events:
+ get:
+ operationId: listFineTuneEvents
+ tags:
+ - OpenAI
+ summary: |
+ Get fine-grained status updates for a fine-tune job.
+ parameters:
+ - in: path
+ name: fine_tune_id
+ required: true
+ schema:
+ type: string
+ example:
+ ft-AF1WoRqd3aJAHsqc9NY7iL8F
+ description: |
+ The ID of the fine-tune job to get events for.
+ - in: query
+ name: stream
+ required: false
+ schema:
+ type: boolean
+ default: false
+ description: |
+ Whether to stream events for the fine-tune job. If set to true,
+ events will be sent as data-only
+ [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
+ as they become available. The stream will terminate with a
+ `data: [DONE]` message when the job is finished (succeeded, cancelled,
+ or failed).
+
+ If set to false, only events generated so far will be returned.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListFineTuneEventsResponse'
+ x-oaiMeta:
+ name: List fine-tune events
+ group: fine-tunes
+ path: events
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.list_events(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listFineTuneEvents("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
+ response: |
+ {
+ "object": "list",
+ "data": [
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807352,
+ "level": "info",
+ "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807356,
+ "level": "info",
+ "message": "Job started."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807861,
+ "level": "info",
+ "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Job succeeded."
+ }
+ ]
+ }
+
+ /models:
+ get:
+ operationId: listModels
+ tags:
+ - OpenAI
+ summary: Lists the currently available models, and provides basic information about each one such as the owner and availability.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListModelsResponse'
+ x-oaiMeta:
+ name: List models
+ group: models
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/models \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Model.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listModels();
+ response: |
+ {
+ "data": [
+ {
+ "id": "model-id-0",
+ "object": "model",
+ "owned_by": "organization-owner",
+ "permission": [...]
+ },
+ {
+ "id": "model-id-1",
+ "object": "model",
+ "owned_by": "organization-owner",
+ "permission": [...]
+ },
+ {
+ "id": "model-id-2",
+ "object": "model",
+ "owned_by": "openai",
+ "permission": [...]
+ },
+ ],
+ "object": "list"
+ }
+
+ /models/{model}:
+ get:
+ operationId: retrieveModel
+ tags:
+ - OpenAI
+ summary: Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+ parameters:
+ - in: path
+ name: model
+ required: true
+ schema:
+ type: string
+ # ideally this will be an actual ID, so this will always work from browser
+ example:
+ text-davinci-001
+ description:
+ The ID of the model to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Model'
+ x-oaiMeta:
+ name: Retrieve model
+ group: models
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/models/VAR_model_id \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Model.retrieve("VAR_model_id")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveModel("VAR_model_id");
+ response: |
+ {
+ "id": "VAR_model_id",
+ "object": "model",
+ "owned_by": "openai",
+ "permission": [...]
+ }
+ delete:
+ operationId: deleteModel
+ tags:
+ - OpenAI
+ summary: Delete a fine-tuned model. You must have the Owner role in your organization.
+ parameters:
+ - in: path
+ name: model
+ required: true
+ schema:
+ type: string
+ example: curie:ft-acmeco-2021-03-03-21-44-20
+ description: The model to delete
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteModelResponse'
+ x-oaiMeta:
+ name: Delete fine-tune model
+ group: fine-tunes
+ path: delete-model
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 \
+ -X DELETE \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Model.delete("curie:ft-acmeco-2021-03-03-21-44-20")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.deleteModel('curie:ft-acmeco-2021-03-03-21-44-20');
+ response: |
+ {
+ "id": "curie:ft-acmeco-2021-03-03-21-44-20",
+ "object": "model",
+ "deleted": true
+ }
+
+ /moderations:
+ post:
+ operationId: createModeration
+ tags:
+ - OpenAI
+ summary: Classifies if text violates OpenAI's Content Policy
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateModerationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateModerationResponse'
+ x-oaiMeta:
+ name: Create moderation
+ group: moderations
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/moderations \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "input": "I want to kill them."
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Moderation.create(
+ input="I want to kill them.",
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createModeration({
+ input: "I want to kill them.",
+ });
+ parameters: |
+ {
+ "input": "I want to kill them."
+ }
+ response: |
+ {
+ "id": "modr-5MWoLO",
+ "model": "text-moderation-001",
+ "results": [
+ {
+ "categories": {
+ "hate": false,
+ "hate/threatening": true,
+ "self-harm": false,
+ "sexual": false,
+ "sexual/minors": false,
+ "violence": true,
+ "violence/graphic": false
+ },
+ "category_scores": {
+ "hate": 0.22714105248451233,
+ "hate/threatening": 0.4132447838783264,
+ "self-harm": 0.005232391878962517,
+ "sexual": 0.01407341007143259,
+ "sexual/minors": 0.0038522258400917053,
+ "violence": 0.9223177433013916,
+ "violence/graphic": 0.036865197122097015
+ },
+ "flagged": true
+ }
+ ]
+ }
+
+components:
+ schemas:
+ ListEnginesResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Engine'
+ required:
+ - object
+ - data
+
+ ListModelsResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Model'
+ required:
+ - object
+ - data
+
+ DeleteModelResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ deleted:
+ type: boolean
+ required:
+ - id
+ - object
+ - deleted
+
+ CreateCompletionRequest:
+ type: object
+ properties:
+ model: &model_configuration
+ description: ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
+ type: string
+ prompt:
+ description: &completions_prompt_description |
+ The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.
+
+ Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.
+ default: '<|endoftext|>'
+ nullable: true
+ oneOf:
+ - type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ items:
+ type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[1212, 318, 257, 1332, 13]"
+ - type: array
+ minItems: 1
+ items:
+ type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[[1212, 318, 257, 1332, 13]]"
+ suffix:
+ description:
+ The suffix that comes after a completion of inserted text.
+ default: null
+ nullable: true
+ type: string
+ example: "test."
+ max_tokens:
+ type: integer
+ minimum: 0
+ default: 16
+ example: 16
+ nullable: true
+ description: &completions_max_tokens_description |
+ The maximum number of [tokens](/tokenizer) to generate in the completion.
+
+ The token count of your prompt plus `max_tokens` cannot exceed the model's context length. Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
+ temperature:
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 1
+ example: 1
+ nullable: true
+ description: &completions_temperature_description |
+ What [sampling temperature](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277) to use. Higher values means the model will take more risks. Try 0.9 for more creative applications, and 0 (argmax sampling) for ones with a well-defined answer.
+
+ We generally recommend altering this or `top_p` but not both.
+ top_p:
+ type: number
+ minimum: 0
+ maximum: 1
+ default: 1
+ example: 1
+ nullable: true
+ description: &completions_top_p_description |
+ An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
+
+ We generally recommend altering this or `temperature` but not both.
+ n:
+ type: integer
+ minimum: 1
+ maximum: 128
+ default: 1
+ example: 1
+ nullable: true
+ description: &completions_completions_description |
+ How many completions to generate for each prompt.
+
+ **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
+ stream:
+ description: >
+ Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
+ as they become available, with the stream terminated by a `data: [DONE]` message.
+ type: boolean
+ nullable: true
+ default: false
+ logprobs: &completions_logprobs_configuration
+ type: integer
+ minimum: 0
+ maximum: 5
+ default: null
+ nullable: true
+ description: &completions_logprobs_description |
+ Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
+
+ The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case.
+ echo:
+ type: boolean
+ default: false
+ nullable: true
+ description: &completions_echo_description >
+ Echo back the prompt in addition to the completion
+ stop:
+ description: &completions_stop_description >
+ Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
+ default: null
+ nullable: true
+ oneOf:
+ - type: string
+ default: <|endoftext|>
+ example: "\n"
+ nullable: true
+ - type: array
+ minItems: 1
+ maxItems: 4
+ items:
+ type: string
+ example: '["\n"]'
+ presence_penalty:
+ type: number
+ default: 0
+ minimum: -2
+ maximum: 2
+ nullable: true
+ description: &completions_presence_penalty_description |
+ Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
+
+ [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details)
+ frequency_penalty:
+ type: number
+ default: 0
+ minimum: -2
+ maximum: 2
+ nullable: true
+ description: &completions_frequency_penalty_description |
+ Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+
+ [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details)
+ best_of:
+ type: integer
+ default: 1
+ minimum: 0
+ maximum: 20
+ nullable: true
+ description: &completions_best_of_description |
+ Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.
+
+ When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.
+
+ **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
+ logit_bias: &completions_logit_bias
+ type: object
+ x-oaiTypeLabel: map
+ default: null
+ nullable: true
+ description: &completions_logit_bias_description |
+ Modify the likelihood of specified tokens appearing in the completion.
+
+ Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
+
+ As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated.
+ user: &end_user_param_configuration
+ type: string
+ example: user-1234
+ description: |
+ A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ required:
+ - model
+
+ CreateCompletionResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ model:
+ type: string
+ choices:
+ type: array
+ items:
+ type: object
+ properties:
+ text:
+ type: string
+ index:
+ type: integer
+ logprobs:
+ type: object
+ nullable: true
+ properties:
+ tokens:
+ type: array
+ items:
+ type: string
+ token_logprobs:
+ type: array
+ items:
+ type: number
+ top_logprobs:
+ type: array
+ items:
+ type: object
+ text_offset:
+ type: array
+ items:
+ type: integer
+ finish_reason:
+ type: string
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ completion_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - completion_tokens
+ - total_tokens
+ required:
+ - id
+ - object
+ - created
+ - model
+ - choices
+
+ CreateEditRequest:
+ type: object
+ properties:
+ model: *model_configuration
+ input:
+ description:
+ The input text to use as a starting point for the edit.
+ type: string
+ default: ''
+ nullable: true
+ example: "What day of the wek is it?"
+ instruction:
+ description:
+ The instruction that tells the model how to edit the prompt.
+ type: string
+ example: "Fix the spelling mistakes."
+ n:
+ type: integer
+ minimum: 1
+ maximum: 20
+ default: 1
+ example: 1
+ nullable: true
+ description:
+ How many edits to generate for the input and instruction.
+ temperature:
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 1
+ example: 1
+ nullable: true
+ description: *completions_temperature_description
+ top_p:
+ type: number
+ minimum: 0
+ maximum: 1
+ default: 1
+ example: 1
+ nullable: true
+ description: *completions_top_p_description
+ required:
+ - model
+ - instruction
+
+ CreateEditResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ created:
+ type: integer
+ choices:
+ type: array
+ items:
+ type: object
+ properties:
+ text:
+ type: string
+ index:
+ type: integer
+ logprobs:
+ type: object
+ nullable: true
+ properties:
+ tokens:
+ type: array
+ items:
+ type: string
+ token_logprobs:
+ type: array
+ items:
+ type: number
+ top_logprobs:
+ type: array
+ items:
+ type: object
+ text_offset:
+ type: array
+ items:
+ type: integer
+ finish_reason:
+ type: string
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ completion_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - completion_tokens
+ - total_tokens
+ required:
+ - object
+ - created
+ - choices
+ - usage
+
+ CreateImageRequest:
+ type: object
+ properties:
+ prompt:
+ description: A text description of the desired image(s). The maximum length is 1000 characters.
+ type: string
+ example: "A cute baby sea otter"
+ n: &images_n
+ type: integer
+ minimum: 1
+ maximum: 10
+ default: 1
+ example: 1
+ nullable: true
+ description: The number of images to generate. Must be between 1 and 10.
+ size: &images_size
+ type: string
+ enum: ["256x256", "512x512", "1024x1024"]
+ default: "1024x1024"
+ example: "1024x1024"
+ nullable: true
+ description: The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ response_format: &images_response_format
+ type: string
+ enum: ["url", "b64_json"]
+ default: "url"
+ example: "url"
+ nullable: true
+ description: The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ user: *end_user_param_configuration
+ required:
+ - prompt
+
+ ImagesResponse:
+ properties:
+ created:
+ type: integer
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ url:
+ type: string
+ b64_json:
+ type: string
+ required:
+ - created
+ - data
+
+ CreateImageEditRequest:
+ type: object
+ properties:
+ image:
+ description: The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask.
+ type: string
+ format: binary
+ mask:
+ description: An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.
+ type: string
+ format: binary
+ prompt:
+ description: A text description of the desired image(s). The maximum length is 1000 characters.
+ type: string
+ example: "A cute baby sea otter wearing a beret"
+ n: *images_n
+ size: *images_size
+ response_format: *images_response_format
+ user: *end_user_param_configuration
+ required:
+ - prompt
+ - image
+
+ CreateImageVariationRequest:
+ type: object
+ properties:
+ image:
+ description: The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.
+ type: string
+ format: binary
+ n: *images_n
+ size: *images_size
+ response_format: *images_response_format
+ user: *end_user_param_configuration
+ required:
+ - image
+
+ CreateModerationRequest:
+ type: object
+ properties:
+ input:
+ description: The input text to classify
+ oneOf:
+ - type: string
+ default: ''
+ example: "I want to kill them."
+ - type: array
+ items:
+ type: string
+ default: ''
+ example: "I want to kill them."
+ model:
+ description: |
+ Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`.
+
+ The default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`.
+ type: string
+ nullable: false
+ default: "text-moderation-latest"
+ example: "text-moderation-stable"
+ required:
+ - input
+
+ CreateModerationResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ model:
+ type: string
+ results:
+ type: array
+ items:
+ type: object
+ properties:
+ flagged:
+ type: boolean
+ categories:
+ type: object
+ properties:
+ hate:
+ type: boolean
+ hate/threatening:
+ type: boolean
+ self-harm:
+ type: boolean
+ sexual:
+ type: boolean
+ sexual/minors:
+ type: boolean
+ violence:
+ type: boolean
+ violence/graphic:
+ type: boolean
+ required:
+ - hate
+ - hate/threatening
+ - self-harm
+ - sexual
+ - sexual/minors
+ - violence
+ - violence/graphic
+ category_scores:
+ type: object
+ properties:
+ hate:
+ type: number
+ hate/threatening:
+ type: number
+ self-harm:
+ type: number
+ sexual:
+ type: number
+ sexual/minors:
+ type: number
+ violence:
+ type: number
+ violence/graphic:
+ type: number
+ required:
+ - hate
+ - hate/threatening
+ - self-harm
+ - sexual
+ - sexual/minors
+ - violence
+ - violence/graphic
+ required:
+ - flagged
+ - categories
+ - category_scores
+ required:
+ - id
+ - model
+ - results
+
+ CreateSearchRequest:
+ type: object
+ properties:
+ query:
+ description: Query to search against the documents.
+ type: string
+ example: "the president"
+ minLength: 1
+ documents:
+ description: |
+ Up to 200 documents to search over, provided as a list of strings.
+
+ The maximum document length (in tokens) is 2034 minus the number of tokens in the query.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: array
+ minItems: 1
+ maxItems: 200
+ items:
+ type: string
+ nullable: true
+ example: "['White House', 'hospital', 'school']"
+ file:
+ description: |
+ The ID of an uploaded file that contains documents to search over.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: string
+ nullable: true
+ max_rerank:
+ description: |
+ The maximum number of documents to be re-ranked and returned by search.
+
+ This flag only takes effect when `file` is set.
+ type: integer
+ minimum: 1
+ default: 200
+ nullable: true
+ return_metadata: &return_metadata_configuration
+ description: |
+ A special boolean flag for showing metadata. If set to `true`, each document entry in the returned JSON will contain a "metadata" field.
+
+ This flag only takes effect when `file` is set.
+ type: boolean
+ default: false
+ nullable: true
+ user: *end_user_param_configuration
+ required:
+ - query
+
+ CreateSearchResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ object:
+ type: string
+ document:
+ type: integer
+ score:
+ type: number
+
+ ListFilesResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ required:
+ - object
+ - data
+
+ CreateFileRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ file:
+ description: |
+ Name of the [JSON Lines](https://jsonlines.readthedocs.io/en/latest/) file to be uploaded.
+
+ If the `purpose` is set to "fine-tune", each line is a JSON record with "prompt" and "completion" fields representing your [training examples](/docs/guides/fine-tuning/prepare-training-data).
+ type: string
+ format: binary
+ purpose:
+ description: |
+ The intended purpose of the uploaded documents.
+
+ Use "fine-tune" for [Fine-tuning](/docs/api-reference/fine-tunes). This allows us to validate the format of the uploaded file.
+
+ type: string
+ required:
+ - file
+ - purpose
+
+ DeleteFileResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ deleted:
+ type: boolean
+ required:
+ - id
+ - object
+ - deleted
+
+ CreateAnswerRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ model:
+ description: ID of the model to use for completion. You can select one of `ada`, `babbage`, `curie`, or `davinci`.
+ type: string
+ question:
+ description: Question to get answered.
+ type: string
+ minLength: 1
+ example: "What is the capital of Japan?"
+ examples:
+ description: List of (question, answer) pairs that will help steer the model towards the tone and answer format you'd like. We recommend adding 2 to 3 examples.
+ type: array
+ minItems: 1
+ maxItems: 200
+ items:
+ type: array
+ minItems: 2
+ maxItems: 2
+ items:
+ type: string
+ minLength: 1
+ example: "[['What is the capital of Canada?', 'Ottawa'], ['Which province is Ottawa in?', 'Ontario']]"
+ examples_context:
+ description: A text snippet containing the contextual information used to generate the answers for the `examples` you provide.
+ type: string
+ example: "Ottawa, Canada's capital, is located in the east of southern Ontario, near the city of Montréal and the U.S. border."
+ documents:
+ description: |
+ List of documents from which the answer for the input `question` should be derived. If this is an empty list, the question will be answered based on the question-answer examples.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: array
+ maxItems: 200
+ items:
+ type: string
+ example: "['Japan is an island country in East Asia, located in the northwest Pacific Ocean.', 'Tokyo is the capital and most populous prefecture of Japan.']"
+ nullable: true
+ file:
+ description: |
+ The ID of an uploaded file that contains documents to search over. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: string
+ nullable: true
+ search_model: &search_model_configuration
+ description: ID of the model to use for [Search](/docs/api-reference/searches/create). You can select one of `ada`, `babbage`, `curie`, or `davinci`.
+ type: string
+ default: ada
+ nullable: true
+ max_rerank:
+ description: The maximum number of documents to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost.
+ type: integer
+ default: 200
+ nullable: true
+ temperature:
+ description: What [sampling temperature](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277) to use. Higher values mean the model will take more risks and value 0 (argmax sampling) works better for scenarios with a well-defined answer.
+ type: number
+ default: 0
+ nullable: true
+ logprobs: &context_completions_logprobs_configuration
+ type: integer
+ minimum: 0
+ maximum: 5
+ default: null
+ nullable: true
+ description: |
+ Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
+
+ The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case.
+
+ When `logprobs` is set, `completion` will be automatically added into `expand` to get the logprobs.
+ max_tokens:
+ description: The maximum number of tokens allowed for the generated answer
+ type: integer
+ default: 16
+ nullable: true
+ stop:
+ description: *completions_stop_description
+ default: null
+ oneOf:
+ - type: string
+ default: <|endoftext|>
+ example: "\n"
+ - type: array
+ minItems: 1
+ maxItems: 4
+ items:
+ type: string
+ example: '["\n"]'
+ nullable: true
+ n:
+ description: How many answers to generate for each question.
+ type: integer
+ minimum: 1
+ maximum: 10
+ default: 1
+ nullable: true
+ logit_bias: *completions_logit_bias
+ return_metadata: *return_metadata_configuration
+ return_prompt: &return_prompt_configuration
+ description: If set to `true`, the returned JSON will include a "prompt" field containing the final prompt that was used to request a completion. This is mainly useful for debugging purposes.
+ type: boolean
+ default: false
+ nullable: true
+ expand: &expand_configuration
+ description: If an object name is in the list, we provide the full information of the object; otherwise, we only provide the object ID. Currently we support `completion` and `file` objects for expansion.
+ type: array
+ items: {}
+ nullable: true
+ default: []
+ user: *end_user_param_configuration
+ required:
+ - model
+ - question
+ - examples
+ - examples_context
+
+ CreateAnswerResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ search_model:
+ type: string
+ completion:
+ type: string
+ answers:
+ type: array
+ items:
+ type: string
+ selected_documents:
+ type: array
+ items:
+ type: object
+ properties:
+ document:
+ type: integer
+ text:
+ type: string
+
+ CreateClassificationRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ model: *model_configuration
+ query:
+ description: Query to be classified.
+ type: string
+ minLength: 1
+ example: "The plot is not very attractive."
+ examples:
+ description: |
+ A list of examples with labels, in the following format:
+
+ `[["The movie is so interesting.", "Positive"], ["It is quite boring.", "Negative"], ...]`
+
+ All the label strings will be normalized to be capitalized.
+
+ You should specify either `examples` or `file`, but not both.
+ type: array
+ minItems: 2
+ maxItems: 200
+ items:
+ type: array
+ minItems: 2
+ maxItems: 2
+ items:
+ type: string
+ minLength: 1
+ example: "[['Do not see this film.', 'Negative'], ['Smart, provocative and blisteringly funny.', 'Positive']]"
+ nullable: true
+ file:
+ description: |
+ The ID of the uploaded file that contains training examples. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose.
+
+ You should specify either `examples` or `file`, but not both.
+ type: string
+ nullable: true
+ labels:
+ description: The set of categories being classified. If not specified, candidate labels will be automatically collected from the examples you provide. All the label strings will be normalized to be capitalized.
+ type: array
+ minItems: 2
+ maxItems: 200
+ default: null
+ items:
+ type: string
+ example: ["Positive", "Negative"]
+ nullable: true
+ search_model: *search_model_configuration
+ temperature:
+ description:
+ What sampling `temperature` to use. Higher values mean the model will take more risks. Try 0.9 for more creative applications, and 0 (argmax sampling) for ones with a well-defined answer.
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 0
+ nullable: true
+ example: 0
+ logprobs: *context_completions_logprobs_configuration
+ max_examples:
+ description: The maximum number of examples to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost.
+ type: integer
+ default: 200
+ nullable: true
+ logit_bias: *completions_logit_bias
+ return_prompt: *return_prompt_configuration
+ return_metadata: *return_metadata_configuration
+ expand: *expand_configuration
+ user: *end_user_param_configuration
+ required:
+ - model
+ - query
+
+ CreateClassificationResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ search_model:
+ type: string
+ completion:
+ type: string
+ label:
+ type: string
+ selected_examples:
+ type: array
+ items:
+ type: object
+ properties:
+ document:
+ type: integer
+ text:
+ type: string
+ label:
+ type: string
+
+ CreateFineTuneRequest:
+ type: object
+ properties:
+ training_file:
+ description: |
+ The ID of an uploaded file that contains training data.
+
+ See [upload file](/docs/api-reference/files/upload) for how to upload a file.
+
+ Your dataset must be formatted as a JSONL file, where each training
+ example is a JSON object with the keys "prompt" and "completion".
+ Additionally, you must upload your file with the purpose `fine-tune`.
+
+ See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details.
+ type: string
+ example: "file-ajSREls59WBbvgSzJSVWxMCB"
+ validation_file:
+ description: |
+ The ID of an uploaded file that contains validation data.
+
+ If you provide this file, the data is used to generate validation
+ metrics periodically during fine-tuning. These metrics can be viewed in
+ the [fine-tuning results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model).
+ Your train and validation data should be mutually exclusive.
+
+ Your dataset must be formatted as a JSONL file, where each validation
+ example is a JSON object with the keys "prompt" and "completion".
+ Additionally, you must upload your file with the purpose `fine-tune`.
+
+ See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details.
+ type: string
+ nullable: true
+ example: "file-XjSREls59WBbvgSzJSVWxMCa"
+ model:
+ description: |
+ The name of the base model to fine-tune. You can select one of "ada",
+ "babbage", "curie", "davinci", or a fine-tuned model created after 2022-04-21.
+ To learn more about these models, see the
+ [Models](https://beta.openai.com/docs/models) documentation.
+ default: "curie"
+ type: string
+ nullable: true
+ n_epochs:
+ description: |
+ The number of epochs to train the model for. An epoch refers to one
+ full cycle through the training dataset.
+ default: 4
+ type: integer
+ nullable: true
+ batch_size:
+ description: |
+ The batch size to use for training. The batch size is the number of
+ training examples used to train a single forward and backward pass.
+
+ By default, the batch size will be dynamically configured to be
+ ~0.2% of the number of examples in the training set, capped at 256 -
+ in general, we've found that larger batch sizes tend to work better
+ for larger datasets.
+ default: null
+ type: integer
+ nullable: true
+ learning_rate_multiplier:
+ description: |
+ The learning rate multiplier to use for training.
+ The fine-tuning learning rate is the original learning rate used for
+ pretraining multiplied by this value.
+
+ By default, the learning rate multiplier is the 0.05, 0.1, or 0.2
+ depending on final `batch_size` (larger learning rates tend to
+ perform better with larger batch sizes). We recommend experimenting
+ with values in the range 0.02 to 0.2 to see what produces the best
+ results.
+ default: null
+ type: number
+ nullable: true
+ prompt_loss_weight:
+ description: |
+ The weight to use for loss on the prompt tokens. This controls how
+ much the model tries to learn to generate the prompt (as compared
+ to the completion which always has a weight of 1.0), and can add
+ a stabilizing effect to training when completions are short.
+
+ If prompts are extremely long (relative to completions), it may make
+ sense to reduce this weight so as to avoid over-prioritizing
+ learning the prompt.
+ default: 0.01
+ type: number
+ nullable: true
+ compute_classification_metrics:
+ description: |
+ If set, we calculate classification-specific metrics such as accuracy
+ and F-1 score using the validation set at the end of every epoch.
+ These metrics can be viewed in the [results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model).
+
+ In order to compute classification metrics, you must provide a
+ `validation_file`. Additionally, you must
+ specify `classification_n_classes` for multiclass classification or
+ `classification_positive_class` for binary classification.
+ type: boolean
+ default: false
+ nullable: true
+ classification_n_classes:
+ description: |
+ The number of classes in a classification task.
+
+ This parameter is required for multiclass classification.
+ type: integer
+ default: null
+ nullable: true
+ classification_positive_class:
+ description: |
+ The positive class in binary classification.
+
+ This parameter is needed to generate precision, recall, and F1
+ metrics when doing binary classification.
+ type: string
+ default: null
+ nullable: true
+ classification_betas:
+ description: |
+ If this is provided, we calculate F-beta scores at the specified
+ beta values. The F-beta score is a generalization of F-1 score.
+ This is only used for binary classification.
+
+ With a beta of 1 (i.e. the F-1 score), precision and recall are
+ given the same weight. A larger beta score puts more weight on
+ recall and less on precision. A smaller beta score puts more weight
+ on precision and less on recall.
+ type: array
+ items:
+ type: number
+ example: [0.6, 1, 1.5, 2]
+ default: null
+ nullable: true
+ suffix:
+ description: |
+ A string of up to 40 characters that will be added to your fine-tuned model name.
+
+ For example, a `suffix` of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`.
+ type: string
+ minLength: 1
+ maxLength: 40
+ default: null
+ nullable: true
+ required:
+ - training_file
+
+ ListFineTunesResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/FineTune'
+ required:
+ - object
+ - data
+
+ ListFineTuneEventsResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/FineTuneEvent'
+ required:
+ - object
+ - data
+
+ CreateEmbeddingRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ model: *model_configuration
+ input:
+ description: |
+ Input text to get embeddings for, encoded as a string or array of tokens. To get embeddings for multiple inputs in a single request, pass an array of strings or array of token arrays. Each input must not exceed 8192 tokens in length.
+ example: "The quick brown fox jumped over the lazy dog"
+ oneOf:
+ - type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ items:
+ type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[1212, 318, 257, 1332, 13]"
+ - type: array
+ minItems: 1
+ items:
+ type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[[1212, 318, 257, 1332, 13]]"
+ user: *end_user_param_configuration
+ required:
+ - model
+ - input
+
+ CreateEmbeddingResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ index:
+ type: integer
+ object:
+ type: string
+ embedding:
+ type: array
+ items:
+ type: number
+ required:
+ - index
+ - object
+ - embedding
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - total_tokens
+ required:
+ - object
+ - model
+ - data
+ - usage
+
+ Engine:
+ title: Engine
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ nullable: true
+ ready:
+ type: boolean
+ required:
+ - id
+ - object
+ - created
+ - ready
+
+ Model:
+ title: Model
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ owned_by:
+ type: string
+ required:
+ - id
+ - object
+ - created
+ - owned_by
+
+ OpenAIFile:
+ title: OpenAIFile
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ bytes:
+ type: integer
+ created_at:
+ type: integer
+ filename:
+ type: string
+ purpose:
+ type: string
+ status:
+ type: string
+ status_details:
+ type: object
+ nullable: true
+ required:
+ - id
+ - object
+ - bytes
+ - created_at
+ - filename
+ - purpose
+
+ FineTune:
+ title: FineTune
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created_at:
+ type: integer
+ updated_at:
+ type: integer
+ model:
+ type: string
+ fine_tuned_model:
+ type: string
+ nullable: true
+ organization_id:
+ type: string
+ status:
+ type: string
+ hyperparams:
+ type: object
+ training_files:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ validation_files:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ result_files:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ events:
+ type: array
+ items:
+ $ref: '#/components/schemas/FineTuneEvent'
+ required:
+ - id
+ - object
+ - created_at
+ - updated_at
+ - model
+ - fine_tuned_model
+ - organization_id
+ - status
+ - hyperparams
+ - training_files
+ - validation_files
+ - result_files
+
+ FineTuneEvent:
+ title: FineTuneEvent
+ properties:
+ object:
+ type: string
+ created_at:
+ type: integer
+ level:
+ type: string
+ message:
+ type: string
+ required:
+ - object
+ - created_at
+ - level
+ - message
+
+x-oaiMeta:
+ groups:
+ - id: models
+ title: Models
+ description: |
+ List and describe the various models available in the API. You can refer to the [Models](/docs/models) documentation to understand what models are available and the differences between them.
+ - id: completions
+ title: Completions
+ description: |
+ Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
+ - id: edits
+ title: Edits
+ description: |
+ Given a prompt and an instruction, the model will return an edited version of the prompt.
+ - id: images
+ title: Images
+ description: |
+ Given a prompt and/or an input image, the model will generate a new image.
+
+ Related guide: [Image generation](/docs/guides/images)
+ - id: embeddings
+ title: Embeddings
+ description: |
+ Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
+
+ Related guide: [Embeddings](/docs/guides/embeddings)
+ - id: files
+ title: Files
+ description: |
+ Files are used to upload documents that can be used with features like [Fine-tuning](/docs/api-reference/fine-tunes).
+ - id: fine-tunes
+ title: Fine-tunes
+ description: |
+ Manage fine-tuning jobs to tailor a model to your specific training data.
+
+ Related guide: [Fine-tune models](/docs/guides/fine-tuning)
+ - id: moderations
+ title: Moderations
+ description: |
+ Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
+
+ Related guide: [Moderations](/docs/guides/moderation)
+ - id: searches
+ title: Searches
+ warning:
+ title: This endpoint is deprecated and will be removed on December 3rd, 2022
+ message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6272952-search-transition-guide).
+ description: |
+ Given a query and a set of documents or labels, the model ranks each document based on its semantic similarity to the provided query.
+
+ Related guide: [Search](/docs/guides/search)
+ - id: classifications
+ title: Classifications
+ warning:
+ title: This endpoint is deprecated and will be removed on December 3rd, 2022
+ message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6272941-classifications-transition-guide).
+ description: |
+ Given a query and a set of labeled examples, the model will predict the most likely label for the query. Useful as a drop-in replacement for any ML classification or text-to-label task.
+
+ Related guide: [Classification](/docs/guides/classifications)
+ - id: answers
+ title: Answers
+ warning:
+ title: This endpoint is deprecated and will be removed on December 3rd, 2022
+ message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6233728-answers-transition-guide).
+ description: |
+ Given a question, a set of documents, and some examples, the API generates an answer to the question based on the information in the set of documents. This is useful for question-answering applications on sources of truth, like company documentation or a knowledge base.
+
+ Related guide: [Question answering](/docs/guides/answers)
+ - id: engines
+ title: Engines
+ description: These endpoints describe and provide access to the various engines available in the API.
+ warning:
+ title: The Engines endpoints are deprecated.
+ message: Please use their replacement, [Models](/docs/api-reference/models), instead. [Learn more](https://help.openai.com/TODO).
diff --git a/fr/.gitbook/assets/opik-1.png b/fr/.gitbook/assets/opik-1.png
new file mode 100644
index 00000000..906b04a3
Binary files /dev/null and b/fr/.gitbook/assets/opik-1.png differ
diff --git a/fr/.gitbook/assets/opik-2.png b/fr/.gitbook/assets/opik-2.png
new file mode 100644
index 00000000..a561e4c7
Binary files /dev/null and b/fr/.gitbook/assets/opik-2.png differ
diff --git a/fr/.gitbook/assets/opik-3.png b/fr/.gitbook/assets/opik-3.png
new file mode 100644
index 00000000..88ae6422
Binary files /dev/null and b/fr/.gitbook/assets/opik-3.png differ
diff --git a/fr/.gitbook/assets/opik-4.png b/fr/.gitbook/assets/opik-4.png
new file mode 100644
index 00000000..69d816d5
Binary files /dev/null and b/fr/.gitbook/assets/opik-4.png differ
diff --git a/fr/.gitbook/assets/oxylabs_document_loader.png b/fr/.gitbook/assets/oxylabs_document_loader.png
new file mode 100644
index 00000000..9c607067
Binary files /dev/null and b/fr/.gitbook/assets/oxylabs_document_loader.png differ
diff --git a/fr/.gitbook/assets/phoenix/phoenix-1.png b/fr/.gitbook/assets/phoenix/phoenix-1.png
new file mode 100644
index 00000000..8a466a29
Binary files /dev/null and b/fr/.gitbook/assets/phoenix/phoenix-1.png differ
diff --git a/fr/.gitbook/assets/phoenix/phoenix-2.png b/fr/.gitbook/assets/phoenix/phoenix-2.png
new file mode 100644
index 00000000..12fa4fdd
Binary files /dev/null and b/fr/.gitbook/assets/phoenix/phoenix-2.png differ
diff --git a/fr/.gitbook/assets/phoenix/phoenix-3.png b/fr/.gitbook/assets/phoenix/phoenix-3.png
new file mode 100644
index 00000000..10548706
Binary files /dev/null and b/fr/.gitbook/assets/phoenix/phoenix-3.png differ
diff --git a/fr/.gitbook/assets/pinecone_1.png b/fr/.gitbook/assets/pinecone_1.png
new file mode 100644
index 00000000..efd45d48
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_1.png differ
diff --git a/fr/.gitbook/assets/pinecone_2.png b/fr/.gitbook/assets/pinecone_2.png
new file mode 100644
index 00000000..1cdfa258
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_2.png differ
diff --git a/fr/.gitbook/assets/pinecone_3.png b/fr/.gitbook/assets/pinecone_3.png
new file mode 100644
index 00000000..495497d3
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_3.png differ
diff --git a/fr/.gitbook/assets/pinecone_4.png b/fr/.gitbook/assets/pinecone_4.png
new file mode 100644
index 00000000..6674e759
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_4.png differ
diff --git a/fr/.gitbook/assets/pinecone_5.png b/fr/.gitbook/assets/pinecone_5.png
new file mode 100644
index 00000000..798beb4e
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_5.png differ
diff --git a/fr/.gitbook/assets/pinecone_6.png b/fr/.gitbook/assets/pinecone_6.png
new file mode 100644
index 00000000..41accc77
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_6.png differ
diff --git a/fr/.gitbook/assets/pinecone_7.png b/fr/.gitbook/assets/pinecone_7.png
new file mode 100644
index 00000000..f902d4c2
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_7.png differ
diff --git a/fr/.gitbook/assets/pinecone_8.png b/fr/.gitbook/assets/pinecone_8.png
new file mode 100644
index 00000000..d8bf1bc0
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_8.png differ
diff --git a/fr/.gitbook/assets/pinecone_llama_chatflow.png b/fr/.gitbook/assets/pinecone_llama_chatflow.png
new file mode 100644
index 00000000..563f6565
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_llama_chatflow.png differ
diff --git a/fr/.gitbook/assets/pinecone_llama_upsert.png b/fr/.gitbook/assets/pinecone_llama_upsert.png
new file mode 100644
index 00000000..7b8e30fc
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_llama_upsert.png differ
diff --git a/fr/.gitbook/assets/pinecone_llamaindex.png b/fr/.gitbook/assets/pinecone_llamaindex.png
new file mode 100644
index 00000000..32977e96
Binary files /dev/null and b/fr/.gitbook/assets/pinecone_llamaindex.png differ
diff --git a/fr/.gitbook/assets/qdrant/1.png b/fr/.gitbook/assets/qdrant/1.png
new file mode 100644
index 00000000..41e3dad8
Binary files /dev/null and b/fr/.gitbook/assets/qdrant/1.png differ
diff --git a/fr/.gitbook/assets/qdrant/2.png b/fr/.gitbook/assets/qdrant/2.png
new file mode 100644
index 00000000..630b9c27
Binary files /dev/null and b/fr/.gitbook/assets/qdrant/2.png differ
diff --git a/fr/.gitbook/assets/qdrant/3.png b/fr/.gitbook/assets/qdrant/3.png
new file mode 100644
index 00000000..58dc5cd7
Binary files /dev/null and b/fr/.gitbook/assets/qdrant/3.png differ
diff --git a/fr/.gitbook/assets/render/1.png b/fr/.gitbook/assets/render/1.png
new file mode 100644
index 00000000..60515e19
Binary files /dev/null and b/fr/.gitbook/assets/render/1.png differ
diff --git a/fr/.gitbook/assets/render/10.png b/fr/.gitbook/assets/render/10.png
new file mode 100644
index 00000000..30ade407
Binary files /dev/null and b/fr/.gitbook/assets/render/10.png differ
diff --git a/fr/.gitbook/assets/render/11.png b/fr/.gitbook/assets/render/11.png
new file mode 100644
index 00000000..39248e0f
Binary files /dev/null and b/fr/.gitbook/assets/render/11.png differ
diff --git a/fr/.gitbook/assets/render/2.png b/fr/.gitbook/assets/render/2.png
new file mode 100644
index 00000000..9105e091
Binary files /dev/null and b/fr/.gitbook/assets/render/2.png differ
diff --git a/fr/.gitbook/assets/render/3.png b/fr/.gitbook/assets/render/3.png
new file mode 100644
index 00000000..b74c7452
Binary files /dev/null and b/fr/.gitbook/assets/render/3.png differ
diff --git a/fr/.gitbook/assets/render/4.png b/fr/.gitbook/assets/render/4.png
new file mode 100644
index 00000000..bb7d83e9
Binary files /dev/null and b/fr/.gitbook/assets/render/4.png differ
diff --git a/fr/.gitbook/assets/render/5.png b/fr/.gitbook/assets/render/5.png
new file mode 100644
index 00000000..8956f03b
Binary files /dev/null and b/fr/.gitbook/assets/render/5.png differ
diff --git a/fr/.gitbook/assets/render/6.png b/fr/.gitbook/assets/render/6.png
new file mode 100644
index 00000000..07fe0e82
Binary files /dev/null and b/fr/.gitbook/assets/render/6.png differ
diff --git a/fr/.gitbook/assets/render/7.png b/fr/.gitbook/assets/render/7.png
new file mode 100644
index 00000000..efb7b057
Binary files /dev/null and b/fr/.gitbook/assets/render/7.png differ
diff --git a/fr/.gitbook/assets/render/8.png b/fr/.gitbook/assets/render/8.png
new file mode 100644
index 00000000..c3cc2f55
Binary files /dev/null and b/fr/.gitbook/assets/render/8.png differ
diff --git a/fr/.gitbook/assets/render/9.png b/fr/.gitbook/assets/render/9.png
new file mode 100644
index 00000000..e0a86f22
Binary files /dev/null and b/fr/.gitbook/assets/render/9.png differ
diff --git a/fr/.gitbook/assets/sa-agent.png b/fr/.gitbook/assets/sa-agent.png
new file mode 100644
index 00000000..7de9c9ad
Binary files /dev/null and b/fr/.gitbook/assets/sa-agent.png differ
diff --git a/fr/.gitbook/assets/sa-llm.png b/fr/.gitbook/assets/sa-llm.png
new file mode 100644
index 00000000..194e1bf3
Binary files /dev/null and b/fr/.gitbook/assets/sa-llm.png differ
diff --git a/fr/.gitbook/assets/sa-loop (1).png b/fr/.gitbook/assets/sa-loop (1).png
new file mode 100644
index 00000000..57f8e164
Binary files /dev/null and b/fr/.gitbook/assets/sa-loop (1).png differ
diff --git a/fr/.gitbook/assets/sa-loop.png b/fr/.gitbook/assets/sa-loop.png
new file mode 100644
index 00000000..57f8e164
Binary files /dev/null and b/fr/.gitbook/assets/sa-loop.png differ
diff --git a/fr/.gitbook/assets/savereuse.png b/fr/.gitbook/assets/savereuse.png
new file mode 100644
index 00000000..e44dcdab
Binary files /dev/null and b/fr/.gitbook/assets/savereuse.png differ
diff --git a/fr/.gitbook/assets/screely-1687030897806.png b/fr/.gitbook/assets/screely-1687030897806.png
new file mode 100644
index 00000000..2b5d8b7d
Binary files /dev/null and b/fr/.gitbook/assets/screely-1687030897806.png differ
diff --git a/fr/.gitbook/assets/screely-1687030924019.png b/fr/.gitbook/assets/screely-1687030924019.png
new file mode 100644
index 00000000..1e6f1a89
Binary files /dev/null and b/fr/.gitbook/assets/screely-1687030924019.png differ
diff --git a/fr/.gitbook/assets/screely-1689640211454.png b/fr/.gitbook/assets/screely-1689640211454.png
new file mode 100644
index 00000000..e5d97016
Binary files /dev/null and b/fr/.gitbook/assets/screely-1689640211454.png differ
diff --git a/fr/.gitbook/assets/screely-1691756705932.png b/fr/.gitbook/assets/screely-1691756705932.png
new file mode 100644
index 00000000..8f78243b
Binary files /dev/null and b/fr/.gitbook/assets/screely-1691756705932.png differ
diff --git a/fr/.gitbook/assets/screely-1691758397783.png b/fr/.gitbook/assets/screely-1691758397783.png
new file mode 100644
index 00000000..f86ad79d
Binary files /dev/null and b/fr/.gitbook/assets/screely-1691758397783.png differ
diff --git a/fr/.gitbook/assets/screely-1691758990676.png b/fr/.gitbook/assets/screely-1691758990676.png
new file mode 100644
index 00000000..b1a367fd
Binary files /dev/null and b/fr/.gitbook/assets/screely-1691758990676.png differ
diff --git a/fr/.gitbook/assets/screely-1698767992182.png b/fr/.gitbook/assets/screely-1698767992182.png
new file mode 100644
index 00000000..7a0110c2
Binary files /dev/null and b/fr/.gitbook/assets/screely-1698767992182.png differ
diff --git a/fr/.gitbook/assets/screely-1699893014634.png b/fr/.gitbook/assets/screely-1699893014634.png
new file mode 100644
index 00000000..7fdd0c41
Binary files /dev/null and b/fr/.gitbook/assets/screely-1699893014634.png differ
diff --git a/fr/.gitbook/assets/screely-1699894602544.png b/fr/.gitbook/assets/screely-1699894602544.png
new file mode 100644
index 00000000..8f70ff8a
Binary files /dev/null and b/fr/.gitbook/assets/screely-1699894602544.png differ
diff --git a/fr/.gitbook/assets/screely-1699896158130.png b/fr/.gitbook/assets/screely-1699896158130.png
new file mode 100644
index 00000000..fa1ccff7
Binary files /dev/null and b/fr/.gitbook/assets/screely-1699896158130.png differ
diff --git a/fr/.gitbook/assets/screely-1700662138252.png b/fr/.gitbook/assets/screely-1700662138252.png
new file mode 100644
index 00000000..c228b3fb
Binary files /dev/null and b/fr/.gitbook/assets/screely-1700662138252.png differ
diff --git a/fr/.gitbook/assets/screely-1749593961545.png b/fr/.gitbook/assets/screely-1749593961545.png
new file mode 100644
index 00000000..38423547
Binary files /dev/null and b/fr/.gitbook/assets/screely-1749593961545.png differ
diff --git a/fr/.gitbook/assets/screely-1749594035877.png b/fr/.gitbook/assets/screely-1749594035877.png
new file mode 100644
index 00000000..bf9cd3a2
Binary files /dev/null and b/fr/.gitbook/assets/screely-1749594035877.png differ
diff --git a/fr/.gitbook/assets/screely-1749594614881.png b/fr/.gitbook/assets/screely-1749594614881.png
new file mode 100644
index 00000000..feafeb4f
Binary files /dev/null and b/fr/.gitbook/assets/screely-1749594614881.png differ
diff --git a/fr/.gitbook/assets/screely-1749594631028.png b/fr/.gitbook/assets/screely-1749594631028.png
new file mode 100644
index 00000000..6f44fa0e
Binary files /dev/null and b/fr/.gitbook/assets/screely-1749594631028.png differ
diff --git a/fr/.gitbook/assets/sealos/deployment/1.jpg b/fr/.gitbook/assets/sealos/deployment/1.jpg
new file mode 100644
index 00000000..1452a2b2
Binary files /dev/null and b/fr/.gitbook/assets/sealos/deployment/1.jpg differ
diff --git a/fr/.gitbook/assets/sealos/deployment/2.png b/fr/.gitbook/assets/sealos/deployment/2.png
new file mode 100644
index 00000000..aa69c6bc
Binary files /dev/null and b/fr/.gitbook/assets/sealos/deployment/2.png differ
diff --git a/fr/.gitbook/assets/sealos/deployment/3.png b/fr/.gitbook/assets/sealos/deployment/3.png
new file mode 100644
index 00000000..d8f1242f
Binary files /dev/null and b/fr/.gitbook/assets/sealos/deployment/3.png differ
diff --git a/fr/.gitbook/assets/sealos/deployment/4.png b/fr/.gitbook/assets/sealos/deployment/4.png
new file mode 100644
index 00000000..198cf347
Binary files /dev/null and b/fr/.gitbook/assets/sealos/deployment/4.png differ
diff --git a/fr/.gitbook/assets/seq-00.png b/fr/.gitbook/assets/seq-00.png
new file mode 100644
index 00000000..52c437a8
Binary files /dev/null and b/fr/.gitbook/assets/seq-00.png differ
diff --git a/fr/.gitbook/assets/seq-01.png b/fr/.gitbook/assets/seq-01.png
new file mode 100644
index 00000000..d9e8f3a6
Binary files /dev/null and b/fr/.gitbook/assets/seq-01.png differ
diff --git a/fr/.gitbook/assets/seq-02.png b/fr/.gitbook/assets/seq-02.png
new file mode 100644
index 00000000..7d99d317
Binary files /dev/null and b/fr/.gitbook/assets/seq-02.png differ
diff --git a/fr/.gitbook/assets/seq-03.png b/fr/.gitbook/assets/seq-03.png
new file mode 100644
index 00000000..bcd9409b
Binary files /dev/null and b/fr/.gitbook/assets/seq-03.png differ
diff --git a/fr/.gitbook/assets/seq-04.png b/fr/.gitbook/assets/seq-04.png
new file mode 100644
index 00000000..97868ec4
Binary files /dev/null and b/fr/.gitbook/assets/seq-04.png differ
diff --git a/fr/.gitbook/assets/seq-05.png b/fr/.gitbook/assets/seq-05.png
new file mode 100644
index 00000000..cf05b37d
Binary files /dev/null and b/fr/.gitbook/assets/seq-05.png differ
diff --git a/fr/.gitbook/assets/seq-06.png b/fr/.gitbook/assets/seq-06.png
new file mode 100644
index 00000000..9aa40ae9
Binary files /dev/null and b/fr/.gitbook/assets/seq-06.png differ
diff --git a/fr/.gitbook/assets/seq-07.png b/fr/.gitbook/assets/seq-07.png
new file mode 100644
index 00000000..fffa2e7c
Binary files /dev/null and b/fr/.gitbook/assets/seq-07.png differ
diff --git a/fr/.gitbook/assets/seq-08.png b/fr/.gitbook/assets/seq-08.png
new file mode 100644
index 00000000..12f037bd
Binary files /dev/null and b/fr/.gitbook/assets/seq-08.png differ
diff --git a/fr/.gitbook/assets/seq-09.png b/fr/.gitbook/assets/seq-09.png
new file mode 100644
index 00000000..080d0519
Binary files /dev/null and b/fr/.gitbook/assets/seq-09.png differ
diff --git a/fr/.gitbook/assets/seq-10.png b/fr/.gitbook/assets/seq-10.png
new file mode 100644
index 00000000..7db39188
Binary files /dev/null and b/fr/.gitbook/assets/seq-10.png differ
diff --git a/fr/.gitbook/assets/seq-11.png b/fr/.gitbook/assets/seq-11.png
new file mode 100644
index 00000000..f052461e
Binary files /dev/null and b/fr/.gitbook/assets/seq-11.png differ
diff --git a/fr/.gitbook/assets/seq-12.png b/fr/.gitbook/assets/seq-12.png
new file mode 100644
index 00000000..494ea054
Binary files /dev/null and b/fr/.gitbook/assets/seq-12.png differ
diff --git a/fr/.gitbook/assets/seq-14 (1).png b/fr/.gitbook/assets/seq-14 (1).png
new file mode 100644
index 00000000..fb09eba7
Binary files /dev/null and b/fr/.gitbook/assets/seq-14 (1).png differ
diff --git a/fr/.gitbook/assets/seq-14.png b/fr/.gitbook/assets/seq-14.png
new file mode 100644
index 00000000..fb09eba7
Binary files /dev/null and b/fr/.gitbook/assets/seq-14.png differ
diff --git a/fr/.gitbook/assets/seq-16 (1).png b/fr/.gitbook/assets/seq-16 (1).png
new file mode 100644
index 00000000..2e317ee4
Binary files /dev/null and b/fr/.gitbook/assets/seq-16 (1).png differ
diff --git a/fr/.gitbook/assets/seq-20.png b/fr/.gitbook/assets/seq-20.png
new file mode 100644
index 00000000..1e00abb8
Binary files /dev/null and b/fr/.gitbook/assets/seq-20.png differ
diff --git a/fr/.gitbook/assets/seq-21.svg b/fr/.gitbook/assets/seq-21.svg
new file mode 100644
index 00000000..34db743f
--- /dev/null
+++ b/fr/.gitbook/assets/seq-21.svg
@@ -0,0 +1,13 @@
+
\ No newline at end of file
diff --git a/fr/.gitbook/assets/seq-end-node.png b/fr/.gitbook/assets/seq-end-node.png
new file mode 100644
index 00000000..76b1d08e
Binary files /dev/null and b/fr/.gitbook/assets/seq-end-node.png differ
diff --git a/fr/.gitbook/assets/simplestore.png b/fr/.gitbook/assets/simplestore.png
new file mode 100644
index 00000000..24f9b252
Binary files /dev/null and b/fr/.gitbook/assets/simplestore.png differ
diff --git a/fr/.gitbook/assets/spider.png b/fr/.gitbook/assets/spider.png
new file mode 100644
index 00000000..2cc0bba6
Binary files /dev/null and b/fr/.gitbook/assets/spider.png differ
diff --git a/fr/.gitbook/assets/spider_example_usage.png b/fr/.gitbook/assets/spider_example_usage.png
new file mode 100644
index 00000000..6e53d3c0
Binary files /dev/null and b/fr/.gitbook/assets/spider_example_usage.png differ
diff --git a/fr/.gitbook/assets/streaming-1.webp b/fr/.gitbook/assets/streaming-1.webp
new file mode 100644
index 00000000..df178d8e
Binary files /dev/null and b/fr/.gitbook/assets/streaming-1.webp differ
diff --git a/fr/.gitbook/assets/subagents.png b/fr/.gitbook/assets/subagents.png
new file mode 100644
index 00000000..58c96341
Binary files /dev/null and b/fr/.gitbook/assets/subagents.png differ
diff --git a/fr/.gitbook/assets/subagentstool.png b/fr/.gitbook/assets/subagentstool.png
new file mode 100644
index 00000000..d21112dc
Binary files /dev/null and b/fr/.gitbook/assets/subagentstool.png differ
diff --git a/fr/.gitbook/assets/swagger (1) (1) (1).yml b/fr/.gitbook/assets/swagger (1) (1) (1).yml
new file mode 100644
index 00000000..9e347ad5
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (1) (1) (1).yml
@@ -0,0 +1,2467 @@
+tags:
+ - name: apikey
+ - name: assistants
+ - name: chatmessage
+ - name: chatflows
+ - name: credentials
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /apikey:
+ post:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ operationId: createApiKey
+ summary: Add new api key
+ description: Add new api key
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ keyName:
+ type: string
+ example: 'someKeyName'
+ required: true
+ responses:
+ '200':
+ description: Api key created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ '400':
+ description: Invalid keyName provided
+ '404':
+ description: Api Key not found
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ summary: List all API keys
+ description: List all API keys
+ operationId: listApiKey
+ responses:
+ '200':
+ description: A list of API keys
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ApiKey'
+ application/xml:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ApiKey'
+ '500':
+ description: Internal error
+ /apikey/{id}:
+ put:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ summary: Update API key name
+ description: Update API key name
+ operationId: updateApiKey
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Api Key ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ keyName:
+ type: string
+ example: 'someKeyName'
+ responses:
+ '200':
+ description: Api key updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Api Key with the specified ID was not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ summary: Delete API key
+ description: Delete API key
+ operationId: deleteApiKey
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Api Key ID
+ responses:
+ '200':
+ description: Api key deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Api Key with the specified ID was not found
+ '500':
+ description: Internal error
+
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /credentials:
+ post:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ operationId: createCredential
+ summary: Add new credential
+ description: Add new credential
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ required: true
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: List all credentials
+ description: List all credentials
+ operationId: listCredentials
+ parameters:
+ - in: query
+ name: credentialName
+ required: false
+ schema:
+ type: string
+ description: Filter credentials by name
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Credential'
+ '500':
+ description: Internal error
+
+ /credentials/{id}:
+ get:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: Get a credential by ID
+ description: Retrieve a specific credential by ID
+ operationId: getCredentialById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Credential ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Credential with the specified ID was not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: Update a credential by ID
+ description: Update a specific credential by ID
+ operationId: updateCredential
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Credential ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ required: true
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ '400':
+ description: The specified ID is invalid or request body is invalid
+ '404':
+ description: Credential with the specified ID was not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: Delete a credential by ID
+ description: Delete a specific credential by ID
+ operationId: deleteCredential
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Credential ID
+ responses:
+ '200':
+ description: Successful operation
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Credential with the specified ID was not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/loader/preview:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Preview document chunks
+ description: Preview document chunks from loader
+ operationId: previewChunking
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ required: true
+ responses:
+ '200':
+ description: Successfully preview chunks
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ totalChunks:
+ type: integer
+ example: 10
+ previewChunkCount:
+ type: integer
+ example: 5
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/process:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Process loading & chunking operation
+ description: Process loading & chunking operation of document from loader
+ operationId: processChunking
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - id
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ id:
+ type: string
+ description: Document loader ID. If your URL is /document-stores/{storeId}/{id}, then id is the last part of the URL
+ example: 'c427e569-b81a-469a-b14c-fa73dd5bae49'
+ required: true
+ responses:
+ '200':
+ description: Successfully process chunking operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/save:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Save upsert configuration of document store
+ description: Save upsert configuration of document store
+ operationId: saveVectorStoreConfig
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ embeddingName:
+ type: string
+ description: Name of the embedding
+ example: 'openAIEmbeddings'
+ embeddingConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'model': 'text-embedding-ada-002', 'credential': '1eba5808-c55b-4817-a285-b0c92846a7ad' }
+ vectorStoreName:
+ type: string
+ description: Name of the vector store
+ example: 'faiss'
+ vectorStoreConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'basePath': './faiss' }
+ recordManagerName:
+ type: string
+ description: Name of the record manager
+ example: 'SQLiteRecordManager'
+ recordManagerConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'databaseFilePath': './recordManager.db' }
+ required: true
+ responses:
+ '200':
+ description: Successfully save upsert configuration of document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/insert:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert chunks from document store
+ description: Upsert chunks from document store using the saved configuration
+ operationId: insertIntoVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ required: true
+ responses:
+ '200':
+ description: Successfully save upsert configuration of document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ description: The type of file upload (e.g., 'file', 'audio', 'url')
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (1) (1).yml b/fr/.gitbook/assets/swagger (1) (1).yml
new file mode 100644
index 00000000..379b15da
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (1) (1).yml
@@ -0,0 +1,2467 @@
+tags:
+ - name: apikey
+ - name: assistants
+ - name: chatmessage
+ - name: chatflows
+ - name: credentials
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /apikey:
+ post:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ operationId: createApiKey
+ summary: Add new api key
+ description: Add new api key
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ keyName:
+ type: string
+ example: 'someKeyName'
+ required: true
+ responses:
+ '200':
+ description: Api key created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ '400':
+ description: Invalid keyName provided
+ '404':
+ description: Api Key not found
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ summary: List all API keys
+ description: List all API keys
+ operationId: listApiKey
+ responses:
+ '200':
+ description: A list of API keys
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ApiKey'
+ application/xml:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ApiKey'
+ '500':
+ description: Internal error
+ /apikey/{id}:
+ put:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ summary: Update API key name
+ description: Update API key name
+ operationId: updateApiKey
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Api Key ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ keyName:
+ type: string
+ example: 'someKeyName'
+ responses:
+ '200':
+ description: Api key updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ application/xml:
+ schema:
+ $ref: '#/components/schemas/ApiKey'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Api Key with the specified ID was not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - apikey
+ security:
+ - bearerAuth: []
+ summary: Delete API key
+ description: Delete API key
+ operationId: deleteApiKey
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Api Key ID
+ responses:
+ '200':
+ description: Api key deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Api Key with the specified ID was not found
+ '500':
+ description: Internal error
+
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /credentials:
+ post:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ operationId: createCredential
+ summary: Add new credential
+ description: Add new credential
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ required: true
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: List all credentials
+ description: List all credentials
+ operationId: listCredentials
+ parameters:
+ - in: query
+ name: credentialName
+ required: false
+ schema:
+ type: string
+ description: Filter credentials by name
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Credential'
+ '500':
+ description: Internal error
+
+ /credentials/{id}:
+ get:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: Get a credential by ID
+ description: Retrieve a specific credential by ID
+ operationId: getCredentialById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Credential ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Credential with the specified ID was not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: Update a credential by ID
+ description: Update a specific credential by ID
+ operationId: updateCredential
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Credential ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ required: true
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Credential'
+ '400':
+ description: The specified ID is invalid or request body is invalid
+ '404':
+ description: Credential with the specified ID was not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - credentials
+ security:
+ - bearerAuth: []
+ summary: Delete a credential by ID
+ description: Delete a specific credential by ID
+ operationId: deleteCredential
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Credential ID
+ responses:
+ '200':
+ description: Successful operation
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Credential with the specified ID was not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/loader/preview:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Preview document chunks
+ description: Preview document chunks from loader
+ operationId: previewChunking
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ required: true
+ responses:
+ '200':
+ description: Successfully preview chunks
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ totalChunks:
+ type: integer
+ example: 10
+ previewChunkCount:
+ type: integer
+ example: 5
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/process:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Process loading & chunking operation
+ description: Process loading & chunking operation of document from loader
+ operationId: processChunking
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - id
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ id:
+ type: string
+ description: Document loader ID. If your URL is /document-stores/{storeId}/{id}, then id is the last part of the URL
+ example: 'c427e569-b81a-469a-b14c-fa73dd5bae49'
+ required: true
+ responses:
+ '200':
+ description: Successfully process chunking operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/save:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Save upsert configuration of document store
+ description: Save upsert configuration of document store
+ operationId: saveVectorStoreConfig
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ embeddingName:
+ type: string
+ description: Name of the embedding
+ example: 'openAIEmbeddings'
+ embeddingConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'model': 'text-embedding-ada-002', 'credential': '1eba5808-c55b-4817-a285-b0c92846a7ad' }
+ vectorStoreName:
+ type: string
+ description: Name of the vector store
+ example: 'faiss'
+ vectorStoreConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'basePath': './faiss' }
+ recordManagerName:
+ type: string
+ description: Name of the record manager
+ example: 'SQLiteRecordManager'
+ recordManagerConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'databaseFilePath': './recordManager.db' }
+ required: true
+ responses:
+ '200':
+ description: Successfully save upsert configuration of document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/insert:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert chunks from document store
+ description: Upsert chunks from document store using the saved configuration
+ operationId: insertIntoVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ required: true
+ responses:
+ '200':
+ description: Successfully save upsert configuration of document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ description: The type of file upload (e.g., 'file', 'audio', 'url')
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (1).yml b/fr/.gitbook/assets/swagger (1).yml
new file mode 100644
index 00000000..da52b2f0
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (1).yml
@@ -0,0 +1,2273 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/loader/preview:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Preview document chunks
+ description: Preview document chunks from loader
+ operationId: previewChunking
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ required: true
+ responses:
+ '200':
+ description: Successfully preview chunks
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ totalChunks:
+ type: integer
+ example: 10
+ previewChunkCount:
+ type: integer
+ example: 5
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/process:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Process loading & chunking operation
+ description: Process loading & chunking operation of document from loader
+ operationId: processChunking
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - id
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ id:
+ type: string
+ description: Document loader ID. If your URL is /document-stores/{storeId}/{id}, then id is the last part of the URL
+ example: 'c427e569-b81a-469a-b14c-fa73dd5bae49'
+ required: true
+ responses:
+ '200':
+ description: Successfully process chunking operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/save:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Save upsert configuration of document store
+ description: Save upsert configuration of document store
+ operationId: saveVectorStoreConfig
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ embeddingName:
+ type: string
+ description: Name of the embedding
+ example: 'openAIEmbeddings'
+ embeddingConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'model': 'text-embedding-ada-002', 'credential': '1eba5808-c55b-4817-a285-b0c92846a7ad' }
+ vectorStoreName:
+ type: string
+ description: Name of the vector store
+ example: 'faiss'
+ vectorStoreConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'basePath': './faiss' }
+ recordManagerName:
+ type: string
+ description: Name of the record manager
+ example: 'SQLiteRecordManager'
+ recordManagerConfig:
+ type: object
+ description: Configuration of the embedding
+ example: { 'databaseFilePath': './recordManager.db' }
+ required: true
+ responses:
+ '200':
+ description: Successfully save upsert configuration of document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/insert:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert chunks from document store
+ description: Upsert chunks from document store using the saved configuration
+ operationId: insertIntoVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ required: true
+ responses:
+ '200':
+ description: Successfully save upsert configuration of document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (2) (1).yml b/fr/.gitbook/assets/swagger (2) (1).yml
new file mode 100644
index 00000000..ad9b5e4b
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (2) (1).yml
@@ -0,0 +1,2281 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ base64:
+ type: boolean
+ default: false
+ description: Return contents of the files in base64 format
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/upsert/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert new document to document store
+ description: Upsert new document to document store
+ operationId: upsertDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ loader:
+ type: string
+ nullable: true
+ example: '{"name":"plainText","config":{"text":"why the sky is blue"}}'
+ description: Loader configurations
+ splitter:
+ type: string
+ nullable: true
+ example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}'
+ description: Splitter configurations
+ embedding:
+ type: string
+ nullable: true
+ example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}'
+ description: Embedding configurations
+ vectorStore:
+ type: string
+ nullable: true
+ example: '{"name":"faiss"}'
+ description: Vector Store configurations
+ recordManager:
+ type: string
+ nullable: true
+ example: '{"name":"postgresRecordManager"}'
+ description: Record Manager configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Successfully execute upsert operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/refresh/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Re-process and upsert all documents in document store
+ description: Re-process and upsert all existing documents in document store
+ operationId: refreshDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForRefresh'
+ required: true
+ responses:
+ '200':
+ description: Successfully execute refresh operation
+ content:
+ application/json:
+ type: array
+ items:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ DocumentStoreLoaderForUpsert:
+ type: object
+ properties:
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store. If provided, existing configuration from the document will be used for the new document
+ loader:
+ type: object
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the loader (camelCase)
+ config:
+ type: object
+ description: Configuration for the loader
+ splitter:
+ type: object
+ properties:
+ name:
+ type: string
+ example: recursiveCharacterTextSplitter
+ description: Name of the text splitter (camelCase)
+ config:
+ type: object
+ description: Configuration for the text splitter
+ embedding:
+ type: object
+ properties:
+ name:
+ type: string
+ example: openAIEmbeddings
+ description: Name of the embedding generator (camelCase)
+ config:
+ type: object
+ description: Configuration for the embedding generator
+ vectorStore:
+ type: object
+ properties:
+ name:
+ type: string
+ example: faiss
+ description: Name of the vector store (camelCase)
+ config:
+ type: object
+ description: Configuration for the vector store
+ recordManager:
+ type: object
+ properties:
+ name:
+ type: string
+ example: postgresRecordManager
+ description: Name of the record manager (camelCase)
+ config:
+ type: object
+ description: Configuration for the record manager
+
+ DocumentStoreLoaderForRefresh:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (2).yml b/fr/.gitbook/assets/swagger (2).yml
new file mode 100644
index 00000000..5a92d4bf
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (2).yml
@@ -0,0 +1,2438 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ base64:
+ type: boolean
+ default: false
+ description: Return contents of the files in base64 format
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/upsert/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert new document to document store
+ description: Upsert new document to document store
+ operationId: upsertDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ loader:
+ type: string
+ nullable: true
+ example: '{"name":"plainText","config":{"text":"why the sky is blue"}}'
+ description: Loader configurations
+ splitter:
+ type: string
+ nullable: true
+ example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}'
+ description: Splitter configurations
+ embedding:
+ type: string
+ nullable: true
+ example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}'
+ description: Embedding configurations
+ vectorStore:
+ type: string
+ nullable: true
+ example: '{"name":"faiss"}'
+ description: Vector Store configurations
+ recordManager:
+ type: string
+ nullable: true
+ example: '{"name":"postgresRecordManager"}'
+ description: Record Manager configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Successfully execute upsert operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/refresh/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Re-process and upsert all documents in document store
+ description: Re-process and upsert all existing documents in document store
+ operationId: refreshDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForRefresh'
+ required: true
+ responses:
+ '200':
+ description: Successfully execute refresh operation
+ content:
+ application/json:
+ type: array
+ items:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document Store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/{storeId}/{loaderId}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete specific document loader and associated chunks from document store
+ description: Delete specific document loader and associated chunks from document store. This does not delete data from vector store.
+ operationId: deleteLoaderFromDocumentStore
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ responses:
+ '200':
+ description: Successfully deleted loader from document store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{pageNo}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get chunks from a specific document loader
+ description: Get chunks from a specific document loader within a document store
+ operationId: getDocumentStoreFileChunks
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document loader ID
+ - in: path
+ name: pageNo
+ required: true
+ schema:
+ type: string
+ description: Pagination number
+ responses:
+ '200':
+ description: Successfully retrieved chunks from document loader
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{chunkId}:
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific chunk
+ description: Updates a specific chunk from a document loader
+ operationId: editDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Document'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated chunk
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific chunk from a document loader
+ description: Delete a specific chunk from a document loader
+ operationId: deleteDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ responses:
+ '200':
+ description: Successfully deleted chunk
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document Store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ DocumentStoreLoaderForUpsert:
+ type: object
+ properties:
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store. If provided, existing configuration from the document will be used for the new document
+ loader:
+ type: object
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the loader (camelCase)
+ config:
+ type: object
+ description: Configuration for the loader
+ splitter:
+ type: object
+ properties:
+ name:
+ type: string
+ example: recursiveCharacterTextSplitter
+ description: Name of the text splitter (camelCase)
+ config:
+ type: object
+ description: Configuration for the text splitter
+ embedding:
+ type: object
+ properties:
+ name:
+ type: string
+ example: openAIEmbeddings
+ description: Name of the embedding generator (camelCase)
+ config:
+ type: object
+ description: Configuration for the embedding generator
+ vectorStore:
+ type: object
+ properties:
+ name:
+ type: string
+ example: faiss
+ description: Name of the vector store (camelCase)
+ config:
+ type: object
+ description: Configuration for the vector store
+ recordManager:
+ type: object
+ properties:
+ name:
+ type: string
+ example: postgresRecordManager
+ description: Name of the record manager (camelCase)
+ config:
+ type: object
+ description: Configuration for the record manager
+
+ DocumentStoreLoaderForRefresh:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (3).yml b/fr/.gitbook/assets/swagger (3).yml
new file mode 100644
index 00000000..0ea487b4
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (3).yml
@@ -0,0 +1,2465 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type. Only applicable if feedback is true
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ description: Filter by end date
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ base64:
+ type: boolean
+ default: false
+ description: Return contents of the files in base64 format
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/upsert/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert document to document store
+ description: Upsert document to document store
+ operationId: upsertDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ loader:
+ type: string
+ nullable: true
+ example: '{"name":"plainText","config":{"text":"why the sky is blue"}}'
+ description: Loader configurations
+ splitter:
+ type: string
+ nullable: true
+ example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}'
+ description: Splitter configurations
+ embedding:
+ type: string
+ nullable: true
+ example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}'
+ description: Embedding configurations
+ vectorStore:
+ type: string
+ nullable: true
+ example: '{"name":"faiss"}'
+ description: Vector Store configurations
+ recordManager:
+ type: string
+ nullable: true
+ example: '{"name":"postgresRecordManager"}'
+ description: Record Manager configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Successfully execute upsert operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/refresh/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Re-process and upsert all documents in document store
+ description: Re-process and upsert all existing documents in document store
+ operationId: refreshDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForRefresh'
+ required: true
+ responses:
+ '200':
+ description: Successfully execute refresh operation
+ content:
+ application/json:
+ type: array
+ items:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document Store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/{storeId}/{loaderId}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete specific document loader and associated chunks from document store
+ description: Delete specific document loader and associated chunks from document store. This does not delete data from vector store.
+ operationId: deleteLoaderFromDocumentStore
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ responses:
+ '200':
+ description: Successfully deleted loader from document store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{pageNo}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get chunks from a specific document loader
+ description: Get chunks from a specific document loader within a document store
+ operationId: getDocumentStoreFileChunks
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document loader ID
+ - in: path
+ name: pageNo
+ required: true
+ schema:
+ type: string
+ description: Pagination number
+ responses:
+ '200':
+ description: Successfully retrieved chunks from document loader
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{chunkId}:
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific chunk
+ description: Updates a specific chunk from a document loader
+ operationId: editDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Document'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated chunk
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific chunk from a document loader
+ description: Delete a specific chunk from a document loader
+ operationId: deleteDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ responses:
+ '200':
+ description: Successfully deleted chunk
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document Store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ DocumentStoreLoaderForUpsert:
+ type: object
+ properties:
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store. If provided, existing configuration from the document will be used for the new document
+ metadata:
+ type: object
+ description: Metadata associated with the document
+ example: { 'foo': 'bar' }
+ replaceExisting:
+ type: boolean
+ description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store
+ loader:
+ type: object
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the loader (camelCase)
+ config:
+ type: object
+ description: Configuration for the loader
+ splitter:
+ type: object
+ properties:
+ name:
+ type: string
+ example: recursiveCharacterTextSplitter
+ description: Name of the text splitter (camelCase)
+ config:
+ type: object
+ description: Configuration for the text splitter
+ embedding:
+ type: object
+ properties:
+ name:
+ type: string
+ example: openAIEmbeddings
+ description: Name of the embedding generator (camelCase)
+ config:
+ type: object
+ description: Configuration for the embedding generator
+ vectorStore:
+ type: object
+ properties:
+ name:
+ type: string
+ example: faiss
+ description: Name of the vector store (camelCase)
+ config:
+ type: object
+ description: Configuration for the vector store
+ recordManager:
+ type: object
+ properties:
+ name:
+ type: string
+ example: postgresRecordManager
+ description: Name of the record manager (camelCase)
+ config:
+ type: object
+ description: Configuration for the record manager
+
+ DocumentStoreLoaderForRefresh:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (4).yml b/fr/.gitbook/assets/swagger (4).yml
new file mode 100644
index 00000000..3b37cc52
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (4).yml
@@ -0,0 +1,2470 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type. Only applicable if feedback is true
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ description: Filter by end date
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ - in: query
+ name: hardDelete
+ schema:
+ type: boolean
+ description: If hardDelete is true, messages will be deleted from the third party service as well
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ base64:
+ type: boolean
+ default: false
+ description: Return contents of the files in base64 format
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/upsert/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert document to document store
+ description: Upsert document to document store
+ operationId: upsertDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ loader:
+ type: string
+ nullable: true
+ example: '{"name":"plainText","config":{"text":"why the sky is blue"}}'
+ description: Loader configurations
+ splitter:
+ type: string
+ nullable: true
+ example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}'
+ description: Splitter configurations
+ embedding:
+ type: string
+ nullable: true
+ example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}'
+ description: Embedding configurations
+ vectorStore:
+ type: string
+ nullable: true
+ example: '{"name":"faiss"}'
+ description: Vector Store configurations
+ recordManager:
+ type: string
+ nullable: true
+ example: '{"name":"postgresRecordManager"}'
+ description: Record Manager configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Successfully execute upsert operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/refresh/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Re-process and upsert all documents in document store
+ description: Re-process and upsert all existing documents in document store
+ operationId: refreshDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForRefresh'
+ required: true
+ responses:
+ '200':
+ description: Successfully execute refresh operation
+ content:
+ application/json:
+ type: array
+ items:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document Store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/{storeId}/{loaderId}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete specific document loader and associated chunks from document store
+ description: Delete specific document loader and associated chunks from document store. This does not delete data from vector store.
+ operationId: deleteLoaderFromDocumentStore
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ responses:
+ '200':
+ description: Successfully deleted loader from document store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{pageNo}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get chunks from a specific document loader
+ description: Get chunks from a specific document loader within a document store
+ operationId: getDocumentStoreFileChunks
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document loader ID
+ - in: path
+ name: pageNo
+ required: true
+ schema:
+ type: string
+ description: Pagination number
+ responses:
+ '200':
+ description: Successfully retrieved chunks from document loader
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{chunkId}:
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific chunk
+ description: Updates a specific chunk from a document loader
+ operationId: editDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Document'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated chunk
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific chunk from a document loader
+ description: Delete a specific chunk from a document loader
+ operationId: deleteDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ responses:
+ '200':
+ description: Successfully deleted chunk
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document Store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ DocumentStoreLoaderForUpsert:
+ type: object
+ properties:
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store. If provided, existing configuration from the document will be used for the new document
+ metadata:
+ type: object
+ description: Metadata associated with the document
+ example: { 'foo': 'bar' }
+ replaceExisting:
+ type: boolean
+ description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store
+ loader:
+ type: object
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the loader (camelCase)
+ config:
+ type: object
+ description: Configuration for the loader
+ splitter:
+ type: object
+ properties:
+ name:
+ type: string
+ example: recursiveCharacterTextSplitter
+ description: Name of the text splitter (camelCase)
+ config:
+ type: object
+ description: Configuration for the text splitter
+ embedding:
+ type: object
+ properties:
+ name:
+ type: string
+ example: openAIEmbeddings
+ description: Name of the embedding generator (camelCase)
+ config:
+ type: object
+ description: Configuration for the embedding generator
+ vectorStore:
+ type: object
+ properties:
+ name:
+ type: string
+ example: faiss
+ description: Name of the vector store (camelCase)
+ config:
+ type: object
+ description: Configuration for the vector store
+ recordManager:
+ type: object
+ properties:
+ name:
+ type: string
+ example: postgresRecordManager
+ description: Name of the record manager (camelCase)
+ config:
+ type: object
+ description: Configuration for the record manager
+
+ DocumentStoreLoaderForRefresh:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger (5).yml b/fr/.gitbook/assets/swagger (5).yml
new file mode 100644
index 00000000..9cca7597
--- /dev/null
+++ b/fr/.gitbook/assets/swagger (5).yml
@@ -0,0 +1,2526 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type. Only applicable if feedback is true
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ description: Filter by end date
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ - in: query
+ name: hardDelete
+ schema:
+ type: boolean
+ description: If hardDelete is true, messages will be deleted from the third party service as well
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ base64:
+ type: boolean
+ default: false
+ description: Return contents of the files in base64 format
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/upsert/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert document to document store
+ description: Upsert document to document store
+ operationId: upsertDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ docId:
+ type: string
+ nullable: true
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ description: Document ID to use existing configuration
+ loader:
+ type: string
+ nullable: true
+ example: '{"name":"plainText","config":{"text":"why the sky is blue"}}'
+ description: Loader configurations
+ splitter:
+ type: string
+ nullable: true
+ example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}'
+ description: Splitter configurations
+ embedding:
+ type: string
+ nullable: true
+ example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}'
+ description: Embedding configurations
+ vectorStore:
+ type: string
+ nullable: true
+ example: '{"name":"faiss"}'
+ description: Vector Store configurations
+ recordManager:
+ type: string
+ nullable: true
+ example: '{"name":"postgresRecordManager"}'
+ description: Record Manager configurations
+ metadata:
+ type: object
+ nullable: true
+ description: Metadata associated with the document
+ example: { 'foo': 'bar' }
+ replaceExisting:
+ type: boolean
+ nullable: true
+ description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store
+ createNewDocStore:
+ type: boolean
+ nullable: true
+ description: Whether to create a new document store
+ docStore:
+ type: object
+ nullable: true
+ description: Only when createNewDocStore is true, pass in the new document store configuration
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the new document store to be created
+ description:
+ type: string
+ example: plainText
+ description: Description of the new document store to be created
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Successfully execute upsert operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/refresh/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Re-process and upsert all documents in document store
+ description: Re-process and upsert all existing documents in document store
+ operationId: refreshDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForRefresh'
+ required: true
+ responses:
+ '200':
+ description: Successfully execute refresh operation
+ content:
+ application/json:
+ type: array
+ items:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document Store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/{storeId}/{loaderId}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete specific document loader and associated chunks from document store
+ description: Delete specific document loader and associated chunks from document store. This does not delete data from vector store.
+ operationId: deleteLoaderFromDocumentStore
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ responses:
+ '200':
+ description: Successfully deleted loader from document store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{pageNo}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get chunks from a specific document loader
+ description: Get chunks from a specific document loader within a document store
+ operationId: getDocumentStoreFileChunks
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document loader ID
+ - in: path
+ name: pageNo
+ required: true
+ schema:
+ type: string
+ description: Pagination number
+ responses:
+ '200':
+ description: Successfully retrieved chunks from document loader
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{chunkId}:
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific chunk
+ description: Updates a specific chunk from a document loader
+ operationId: editDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Document'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated chunk
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific chunk from a document loader
+ description: Delete a specific chunk from a document loader
+ operationId: deleteDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ responses:
+ '200':
+ description: Successfully deleted chunk
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document Store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ DocumentStoreLoaderForUpsert:
+ type: object
+ properties:
+ docId:
+ type: string
+ format: uuid
+ nullable: true
+ description: Document ID within the store. If provided, existing configuration from the document will be used for the new document
+ metadata:
+ type: object
+ nullable: true
+ description: Metadata associated with the document
+ example: { 'foo': 'bar' }
+ replaceExisting:
+ type: boolean
+ nullable: true
+ description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store
+ createNewDocStore:
+ type: boolean
+ nullable: true
+ description: Whether to create a new document store
+ docStore:
+ type: object
+ nullable: true
+ description: Only when createNewDocStore is true, pass in the new document store configuration
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the new document store to be created
+ description:
+ type: string
+ example: plainText
+ description: Description of the new document store to be created
+ loader:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the loader (camelCase)
+ config:
+ type: object
+ description: Configuration for the loader
+ splitter:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: recursiveCharacterTextSplitter
+ description: Name of the text splitter (camelCase)
+ config:
+ type: object
+ description: Configuration for the text splitter
+ embedding:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: openAIEmbeddings
+ description: Name of the embedding generator (camelCase)
+ config:
+ type: object
+ description: Configuration for the embedding generator
+ vectorStore:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: faiss
+ description: Name of the vector store (camelCase)
+ config:
+ type: object
+ description: Configuration for the vector store
+ recordManager:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: postgresRecordManager
+ description: Name of the record manager (camelCase)
+ config:
+ type: object
+ description: Configuration for the record manager
+
+ DocumentStoreLoaderForRefresh:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/swagger.yml b/fr/.gitbook/assets/swagger.yml
new file mode 100644
index 00000000..9cca7597
--- /dev/null
+++ b/fr/.gitbook/assets/swagger.yml
@@ -0,0 +1,2526 @@
+tags:
+ - name: assistants
+ - name: attachments
+ - name: chatmessage
+ - name: chatflows
+ - name: document-store
+ - name: feedback
+ - name: leads
+ - name: ping
+ - name: prediction
+ - name: tools
+ - name: upsert-history
+ - name: variables
+ - name: vector
+
+paths:
+ /chatmessage/{id}:
+ get:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: getAllChatMessages
+ summary: List all chat messages
+ description: Retrieve all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: order
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ description: Sort order
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ format: date-time
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ format: date-time
+ description: Filter by end date
+ - in: query
+ name: feedback
+ schema:
+ type: boolean
+ description: Filter by feedback
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type. Only applicable if feedback is true
+ responses:
+ '200':
+ description: A list of chat messages
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessage'
+ '500':
+ description: Internal error
+
+ delete:
+ tags:
+ - chatmessage
+ security:
+ - bearerAuth: []
+ operationId: removeAllChatMessages
+ summary: Delete all chat messages
+ description: Delete all chat messages for a specific chatflow.
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Filter by chat ID
+ - in: query
+ name: memoryType
+ schema:
+ type: string
+ example: Buffer Memory
+ description: Filter by memory type
+ - in: query
+ name: sessionId
+ schema:
+ type: string
+ description: Filter by session ID
+ - in: query
+ name: chatType
+ schema:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ description: Filter by chat type
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ example: 2025-01-01T11:28:36.000Z
+ description: Filter by start date
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ example: 2025-01-13T11:28:36.000Z
+ description: Filter by end date
+ - in: query
+ name: feedbackType
+ schema:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Filter by feedback type
+ - in: query
+ name: hardDelete
+ schema:
+ type: boolean
+ description: If hardDelete is true, messages will be deleted from the third party service as well
+ responses:
+ '200':
+ description: Chat messages deleted successfully
+ '400':
+ description: Invalid parameters
+ '404':
+ description: Chat messages not found
+ '500':
+ description: Internal error
+ /assistants:
+ post:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ operationId: createAssistant
+ summary: Create a new assistant
+ description: Create a new assistant with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ required: true
+ responses:
+ '200':
+ description: Assistant created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: List all assistants
+ description: Retrieve a list of all assistants
+ operationId: listAssistants
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Assistant'
+ '500':
+ description: Internal error
+ /assistants/{id}:
+ get:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Get assistant by ID
+ description: Retrieve a specific assistant by ID
+ operationId: getAssistantById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Update assistant details
+ description: Update the details of an existing assistant
+ operationId: updateAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Assistant'
+ responses:
+ '200':
+ description: Assistant updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/assistant'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - assistants
+ security:
+ - bearerAuth: []
+ summary: Delete an assistant
+ description: Delete an assistant by ID
+ operationId: deleteAssistant
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Assistant ID
+ responses:
+ '200':
+ description: Assistant deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Assistant not found
+ '500':
+ description: Internal error
+
+ /attachments/{chatflowId}/{chatId}:
+ post:
+ tags:
+ - attachments
+ security:
+ - bearerAuth: []
+ operationId: createAttachment
+ summary: Create attachments array
+ description: Return contents of the files in plain string format
+ parameters:
+ - in: path
+ name: chatflowId
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: path
+ name: chatId
+ required: true
+ schema:
+ type: string
+ description: Chat ID
+ requestBody:
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ base64:
+ type: boolean
+ default: false
+ description: Return contents of the files in base64 format
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Attachments created successfully
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/CreateAttachmentResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow or ChatId not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /chatflows:
+ post:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ operationId: createChatflow
+ summary: Create a new chatflow
+ description: Create a new chatflow with the provided details
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ required: true
+ responses:
+ '200':
+ description: Chatflow created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: Invalid input provided
+ '422':
+ description: Validation exception
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: List all chatflows
+ description: Retrieve a list of all chatflows
+ operationId: listChatflows
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Chatflow'
+ '500':
+ description: Internal error
+ /chatflows/{id}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by ID
+ description: Retrieve a specific chatflow by ID
+ operationId: getChatflowById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ put:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Update chatflow details
+ description: Update the details of an existing chatflow
+ operationId: updateChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ responses:
+ '200':
+ description: Chatflow updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified ID is invalid or body is missing
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ delete:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Delete a chatflow
+ description: Delete a chatflow by ID
+ operationId: deleteChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Chatflow deleted successfully
+ '400':
+ description: The specified ID is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+ /chatflows/apikey/{apikey}:
+ get:
+ tags:
+ - chatflows
+ security:
+ - bearerAuth: []
+ summary: Get chatflow by API key
+ description: Retrieve a chatflow using an API key
+ operationId: getChatflowByApiKey
+ parameters:
+ - in: path
+ name: apikey
+ required: true
+ schema:
+ type: string
+ description: API key associated with the chatflow
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Chatflow'
+ '400':
+ description: The specified API key is invalid
+ '404':
+ description: Chatflow not found
+ '500':
+ description: Internal error
+
+ /document-store/store:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Create a new document store
+ description: Creates a new document store with the provided details
+ operationId: createDocumentStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully created document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: List all document stores
+ description: Retrieves a list of all document stores
+ operationId: getAllDocumentStores
+ responses:
+ '200':
+ description: A list of document stores
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStore'
+ '500':
+ description: Internal server error
+
+ /document-store/store/{id}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get a specific document store
+ description: Retrieves details of a specific document store by its ID
+ operationId: getDocumentStoreById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully retrieved document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific document store
+ description: Updates the details of a specific document store by its ID
+ operationId: updateDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated document store
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStore'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific document store
+ description: Deletes a document store by its ID
+ operationId: deleteDocumentStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted document store
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/upsert/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Upsert document to document store
+ description: Upsert document to document store
+ operationId: upsertDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ docId:
+ type: string
+ nullable: true
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ description: Document ID to use existing configuration
+ loader:
+ type: string
+ nullable: true
+ example: '{"name":"plainText","config":{"text":"why the sky is blue"}}'
+ description: Loader configurations
+ splitter:
+ type: string
+ nullable: true
+ example: '{"name":"recursiveCharacterTextSplitter","config":{"chunkSize":2000}}'
+ description: Splitter configurations
+ embedding:
+ type: string
+ nullable: true
+ example: '{"name":"openAIEmbeddings","config":{"modelName":"text-embedding-ada-002"}}'
+ description: Embedding configurations
+ vectorStore:
+ type: string
+ nullable: true
+ example: '{"name":"faiss"}'
+ description: Vector Store configurations
+ recordManager:
+ type: string
+ nullable: true
+ example: '{"name":"postgresRecordManager"}'
+ description: Record Manager configurations
+ metadata:
+ type: object
+ nullable: true
+ description: Metadata associated with the document
+ example: { 'foo': 'bar' }
+ replaceExisting:
+ type: boolean
+ nullable: true
+ description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store
+ createNewDocStore:
+ type: boolean
+ nullable: true
+ description: Whether to create a new document store
+ docStore:
+ type: object
+ nullable: true
+ description: Only when createNewDocStore is true, pass in the new document store configuration
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the new document store to be created
+ description:
+ type: string
+ example: plainText
+ description: Description of the new document store to be created
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Successfully execute upsert operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/refresh/{id}:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Re-process and upsert all documents in document store
+ description: Re-process and upsert all existing documents in document store
+ operationId: refreshDocument
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreLoaderForRefresh'
+ required: true
+ responses:
+ '200':
+ description: Successfully execute refresh operation
+ content:
+ application/json:
+ type: array
+ items:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/query:
+ post:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Retrieval query
+ description: Retrieval query for the upserted chunks
+ operationId: queryVectorStore
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ required:
+ - storeId
+ - query
+ properties:
+ storeId:
+ type: string
+ description: Document Store ID
+ example: '603a7b51-ae7c-4b0a-8865-e454ed2f6766'
+ query:
+ type: string
+ description: Query to search for
+ example: 'What is the capital of France?'
+ required: true
+ responses:
+ '200':
+ description: Successfully executed query on vector store
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ timeTaken:
+ type: number
+ description: Time taken to execute the query (in milliseconds)
+ docs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+
+ /document-store/loader/{storeId}/{loaderId}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete specific document loader and associated chunks from document store
+ description: Delete specific document loader and associated chunks from document store. This does not delete data from vector store.
+ operationId: deleteLoaderFromDocumentStore
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ responses:
+ '200':
+ description: Successfully deleted loader from document store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/vectorstore/{id}:
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete data from vector store
+ description: Only data that were upserted with Record Manager will be deleted from vector store
+ operationId: deleteVectorStoreFromStore
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ responses:
+ '200':
+ description: Successfully deleted data from vector store
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{pageNo}:
+ get:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Get chunks from a specific document loader
+ description: Get chunks from a specific document loader within a document store
+ operationId: getDocumentStoreFileChunks
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ format: uuid
+ description: Document loader ID
+ - in: path
+ name: pageNo
+ required: true
+ schema:
+ type: string
+ description: Pagination number
+ responses:
+ '200':
+ description: Successfully retrieved chunks from document loader
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ /document-store/chunks/{storeId}/{loaderId}/{chunkId}:
+ put:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Update a specific chunk
+ description: Updates a specific chunk from a document loader
+ operationId: editDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Document'
+ required: true
+ responses:
+ '200':
+ description: Successfully updated chunk
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DocumentStoreFileChunkPagedResponse'
+ '404':
+ description: Document store not found
+ '500':
+ description: Internal server error
+
+ delete:
+ tags:
+ - document-store
+ security:
+ - bearerAuth: []
+ summary: Delete a specific chunk from a document loader
+ description: Delete a specific chunk from a document loader
+ operationId: deleteDocumentStoreFileChunk
+ parameters:
+ - in: path
+ name: storeId
+ required: true
+ schema:
+ type: string
+ description: Document Store ID
+ - in: path
+ name: loaderId
+ required: true
+ schema:
+ type: string
+ description: Document Loader ID
+ - in: path
+ name: chunkId
+ required: true
+ schema:
+ type: string
+ description: Document Chunk ID
+ responses:
+ '200':
+ description: Successfully deleted chunk
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Document Store not found
+ '500':
+ description: Internal server error
+
+ /feedback:
+ post:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ operationId: createChatMessageFeedbackForChatflow
+ summary: Create new chat message feedback
+ description: Create new feedback for a specific chat flow.
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ required: true
+ responses:
+ '200':
+ description: Feedback successfully created
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '500':
+ description: Internal server error
+ /feedback/{id}:
+ get:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: List all chat message feedbacks for a chatflow
+ description: Retrieve all feedbacks for a chatflow
+ operationId: getAllChatMessageFeedback
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ - in: query
+ name: chatId
+ schema:
+ type: string
+ description: Chat ID to filter feedbacks (optional)
+ - in: query
+ name: sortOrder
+ schema:
+ type: string
+ enum: [asc, desc]
+ default: asc
+ description: Sort order of feedbacks (optional)
+ - in: query
+ name: startDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks starting from this date (optional)
+ - in: query
+ name: endDate
+ schema:
+ type: string
+ format: date-time
+ description: Filter feedbacks up to this date (optional)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - feedback
+ security:
+ - bearerAuth: []
+ summary: Update chat message feedback
+ description: Update a specific feedback
+ operationId: updateChatMessageFeedbackForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chat Message Feedback ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ responses:
+ '200':
+ description: Feedback successfully updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ChatMessageFeedback'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Feedback with the specified ID was not found
+ '500':
+ description: Internal server error
+
+ /leads:
+ post:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ operationId: createLead
+ summary: Create a new lead in a chatflow
+ description: Create a new lead associated with a specific chatflow
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ required: true
+ responses:
+ '200':
+ description: Lead created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+ /leads/{id}:
+ get:
+ tags:
+ - leads
+ security:
+ - bearerAuth: []
+ summary: Get all leads for a specific chatflow
+ description: Retrieve all leads associated with a specific chatflow
+ operationId: getAllLeadsForChatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Lead'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Leads not found
+ '500':
+ description: Internal server error
+
+ /ping:
+ get:
+ tags:
+ - ping
+ summary: Ping the server
+ description: Ping the server to check if it is running
+ operationId: pingServer
+ responses:
+ '200':
+ description: Server is running
+ content:
+ text/plain:
+ schema:
+ type: string
+ example: pong
+ '500':
+ description: Internal server error
+
+ /prediction/{id}:
+ post:
+ tags:
+ - prediction
+ security:
+ - bearerAuth: []
+ operationId: createPrediction
+ summary: Create a new prediction
+ description: Create a new prediction
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Prediction'
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ question:
+ type: string
+ description: Question to ask during the prediction process
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - question
+ required: true
+ responses:
+ '200':
+ description: Prediction created successfully
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ text:
+ type: string
+ description: The result of the prediction
+ json:
+ type: object
+ description: The result of the prediction in JSON format if available
+ question:
+ type: string
+ description: The question asked during the prediction process
+ chatId:
+ type: string
+ description: The chat ID associated with the prediction
+ chatMessageId:
+ type: string
+ description: The chat message ID associated with the prediction
+ sessionId:
+ type: string
+ description: The session ID associated with the prediction
+ memoryType:
+ type: string
+ description: The memory type associated with the prediction
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ /tools:
+ post:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ operationId: createTool
+ summary: Create a new tool
+ description: Create a new tool
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: List all tools
+ description: Retrieve a list of all tools
+ operationId: getAllTools
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Tool'
+ '500':
+ description: Internal server error
+
+ /tools/{id}:
+ get:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Get a tool by ID
+ description: Retrieve a specific tool by ID
+ operationId: getToolById
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ put:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Update a tool by ID
+ description: Update a specific tool by ID
+ operationId: updateTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ required: true
+ responses:
+ '200':
+ description: Tool updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Tool'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - tools
+ security:
+ - bearerAuth: []
+ summary: Delete a tool by ID
+ description: Delete a specific tool by ID
+ operationId: deleteTool
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Tool ID
+ responses:
+ '200':
+ description: Tool deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Tool not found
+ '500':
+ description: Internal server error
+
+ /upsert-history/{id}:
+ get:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Get all upsert history records
+ description: Retrieve all upsert history records with optional filters
+ operationId: getAllUpsertHistory
+ parameters:
+ - in: path
+ name: id
+ required: false
+ schema:
+ type: string
+ description: Chatflow ID to filter records by
+ - in: query
+ name: order
+ required: false
+ schema:
+ type: string
+ enum: [ASC, DESC]
+ default: ASC
+ description: Sort order of the results (ascending or descending)
+ - in: query
+ name: startDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records from this start date (inclusive)
+ - in: query
+ name: endDate
+ required: false
+ schema:
+ type: string
+ format: date-time
+ description: Filter records until this end date (inclusive)
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/UpsertHistoryResponse'
+ '500':
+ description: Internal server error
+ patch:
+ tags:
+ - upsert-history
+ security:
+ - bearerAuth: []
+ summary: Delete upsert history records
+ description: Soft delete upsert history records by IDs
+ operationId: patchDeleteUpsertHistory
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ description: List of upsert history record IDs to delete
+ responses:
+ '200':
+ description: Successfully deleted records
+ '400':
+ description: Invalid request body
+ '500':
+ description: Internal server error
+ /variables:
+ post:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ operationId: createVariable
+ summary: Create a new variable
+ description: Create a new variable
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable created successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid request body
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+ get:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: List all variables
+ description: Retrieve a list of all variables
+ operationId: getAllVariables
+ responses:
+ '200':
+ description: Successful operation
+ content:
+ application/json:
+ schema:
+ type: array
+ items:
+ $ref: '#/components/schemas/Variable'
+ '500':
+ description: Internal server error
+
+ /variables/{id}:
+ put:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Update a variable by ID
+ description: Update a specific variable by ID
+ operationId: updateVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ required: true
+ responses:
+ '200':
+ description: Variable updated successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Variable'
+ '400':
+ description: Invalid ID or request body provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ delete:
+ tags:
+ - variables
+ security:
+ - bearerAuth: []
+ summary: Delete a variable by ID
+ description: Delete a specific variable by ID
+ operationId: deleteVariable
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Variable ID
+ responses:
+ '200':
+ description: Variable deleted successfully
+ '400':
+ description: Invalid ID provided
+ '404':
+ description: Variable not found
+ '500':
+ description: Internal server error
+ /vector/upsert/{id}:
+ post:
+ tags:
+ - vector
+ security:
+ - bearerAuth: []
+ operationId: vectorUpsert
+ summary: Upsert vector embeddings
+ description: Upsert vector embeddings of documents in a chatflow
+ parameters:
+ - in: path
+ name: id
+ required: true
+ schema:
+ type: string
+ description: Chatflow ID
+ requestBody:
+ content:
+ application/json:
+ schema:
+ type: object
+ properties:
+ stopNodeId:
+ type: string
+ description: In cases when you have multiple vector store nodes, you can specify the node ID to store the vectors
+ example: 'node_1'
+ overrideConfig:
+ type: object
+ description: The configuration to override the default vector upsert settings (optional)
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ files:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: Files to be uploaded
+ modelName:
+ type: string
+ nullable: true
+ example: ''
+ description: Other override configurations
+ required:
+ - files
+ required: true
+ responses:
+ '200':
+ description: Vector embeddings upserted successfully
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VectorUpsertResponse'
+ '400':
+ description: Invalid input provided
+ '404':
+ description: Chatflow not found
+ '422':
+ description: Validation error
+ '500':
+ description: Internal server error
+
+components:
+ responses:
+ UnauthorizedError:
+ description: Access token is missing or invalid
+ schemas:
+ ApiKey:
+ type: object
+ properties:
+ apiKey:
+ type: string
+ example: 'vYV8OdUMRzRQbzpp2JzY5DvriBnuVHo3pYpPQ7IJWyw='
+ apiSecret:
+ type: string
+ example: '50e19a35ee1df775c09628dade1c00f0f680c6e15256e34a6eab350b38b31352df35c4db7925a3e5dd41cc773a0e2529e6c6da18408a8bbeeb0ae4b0f0ab9486.a96478a9225ed6ab'
+ chatFlows:
+ type: array
+ example: []
+ createdAt:
+ type: string
+ example: '10-Mar-24'
+ id:
+ type: string
+ example: '525e4daa2104f06ffdea5c1af37009be'
+ keyName:
+ type: string
+ example: 'someKeyName'
+
+ ChatMessage:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ example: 'apiMessage'
+ chatflowid:
+ type: string
+ format: uuid
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0852'
+ content:
+ type: string
+ example: 'Hello, how can I help you today?'
+ sourceDocuments:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Document'
+ usedTools:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ fileAnnotations:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileAnnotation'
+ agentReasoning:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/AgentReasoning'
+ fileUploads:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/FileUpload'
+ action:
+ type: array
+ nullable: true
+ items:
+ $ref: '#/components/schemas/Action'
+ chatType:
+ type: string
+ enum: [INTERNAL, EXTERNAL]
+ example: 'INTERNAL'
+ chatId:
+ type: string
+ example: 'chat12345'
+ memoryType:
+ type: string
+ nullable: true
+ sessionId:
+ type: string
+ nullable: true
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ leadEmail:
+ type: string
+ nullable: true
+ example: 'user@example.com'
+
+ Chatflow:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ name:
+ type: string
+ example: 'MyChatFlow'
+ flowData:
+ type: string
+ example: '{}'
+ deployed:
+ type: boolean
+ isPublic:
+ type: boolean
+ apikeyid:
+ type: string
+ chatbotConfig:
+ type: string
+ example: '{}'
+ apiConfig:
+ type: string
+ example: '{}'
+ analytic:
+ type: string
+ example: '{}'
+ speechToText:
+ type: string
+ example: '{}'
+ category:
+ type: string
+ example: 'category1;category2'
+ type:
+ type: string
+ enum: [CHATFLOW, MULTIAGENT]
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Document:
+ type: object
+ properties:
+ pageContent:
+ type: string
+ example: 'This is the content of the page.'
+ metadata:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ author: 'John Doe'
+ date: '2024-08-24'
+
+ UsedTool:
+ type: object
+ properties:
+ tool:
+ type: string
+ example: 'Name of the tool'
+ toolInput:
+ type: object
+ additionalProperties:
+ type: string
+ example:
+ input: 'search query'
+ toolOutput:
+ type: string
+
+ FileAnnotation:
+ type: object
+ properties:
+ filePath:
+ type: string
+ example: 'path/to/file'
+ fileName:
+ type: string
+ example: 'file.txt'
+
+ FileUpload:
+ type: object
+ properties:
+ data:
+ type: string
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ type:
+ type: string
+ example: 'image'
+ name:
+ type: string
+ example: 'image.png'
+ mime:
+ type: string
+ example: 'image/png'
+ Action:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ example: '61beeb58-6ebe-4d51-aa0b-41d4c546ff08'
+ mapping:
+ type: object
+ properties:
+ approve:
+ type: string
+ example: 'Yes'
+ reject:
+ type: string
+ example: 'No'
+ toolCalls:
+ type: array
+ example: []
+ elements:
+ type: array
+
+ AgentReasoning:
+ type: object
+ properties:
+ agentName:
+ type: string
+ example: 'agent'
+ messages:
+ type: array
+ items:
+ type: string
+ example: ['hello']
+ nodeName:
+ type: string
+ example: 'seqAgent'
+ nodeId:
+ type: string
+ example: 'seqAgent_0'
+ usedTools:
+ type: array
+ items:
+ $ref: '#/components/schemas/UsedTool'
+ sourceDocuments:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ state:
+ type: object
+ additionalProperties:
+ type: string
+
+ Assistant:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'd290f1ee-6c54-4b01-90e6-d701748f0851'
+ details:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'asst_zbNeYIuXIUSKVHjJkfRo6ilv'
+ name:
+ type: string
+ example: 'assistant'
+ description:
+ type: string
+ model:
+ type: string
+ example: 'gpt-4'
+ instructions:
+ type: string
+ example: 'You are a helpful assistant, do your best to answer question and query'
+ temperature:
+ type: number
+ example: 1
+ top_p:
+ type: number
+ example: 1
+ tools:
+ type: array
+ items:
+ type: string
+ example: ['function', 'code_interpreter', 'file_search']
+ tool_resources:
+ type: object
+ additionalProperties:
+ type: object
+ credential:
+ type: string
+ example: '7db93c02-8d5a-4117-a8f1-3dfb6721b339'
+ iconSrc:
+ type: string
+ example: '/images/assistant.png'
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+
+ Credential:
+ type: object
+ properties:
+ id:
+ type: string
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ example: 'My Credential'
+ credentialName:
+ type: string
+ example: 'openAIAPI'
+ encryptedData:
+ type: string
+ example: 'U2FsdGVkX1/3T2gnnsEtX6FJi1DbnYx0VVdS3XWZ5ro='
+ createdDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ example: '2024-08-24T14:15:22Z'
+ Prediction:
+ type: object
+ properties:
+ question:
+ type: string
+ description: The question being asked
+ overrideConfig:
+ type: object
+ description: The configuration to override the default prediction settings (optional)
+ history:
+ type: array
+ description: The history messages to be prepended (optional)
+ items:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: [apiMessage, userMessage]
+ description: The role of the message
+ example: apiMessage
+ content:
+ type: string
+ description: The content of the message
+ example: 'Hello, how can I help you?'
+ uploads:
+ type: array
+ items:
+ type: object
+ properties:
+ type:
+ type: string
+ enum: [audio, url, file, file:rag, file:full]
+ description: The type of file upload
+ example: file
+ name:
+ type: string
+ description: The name of the file or resource
+ example: 'image.png'
+ data:
+ type: string
+ description: The base64-encoded data or URL for the resource
+ example: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABjElEQVRIS+2Vv0oDQRDG'
+ mime:
+ type: string
+ description: The MIME type of the file or resource
+ example: 'image/png'
+
+ Tool:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the tool
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the tool
+ example: 'date_time_tool'
+ description:
+ type: string
+ description: Description of the tool
+ example: 'A tool used for date and time operations'
+ color:
+ type: string
+ description: Color associated with the tool
+ example: '#FF5733'
+ iconSrc:
+ type: string
+ nullable: true
+ description: Source URL for the tool's icon
+ example: 'https://example.com/icons/date.png'
+ schema:
+ type: string
+ nullable: true
+ description: JSON schema associated with the tool
+ func:
+ type: string
+ nullable: true
+ description: Functionality description or code associated with the tool
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the tool was last updated
+ example: '2024-08-24T14:15:22Z'
+ Variable:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the variable
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the variable
+ example: 'API_KEY'
+ value:
+ type: string
+ description: Value of the variable
+ nullable: true
+ example: 'my-secret-key'
+ type:
+ type: string
+ description: Type of the variable (e.g., string, number)
+ example: 'string'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was created
+ example: '2024-08-24T14:15:22Z'
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the variable was last updated
+ example: '2024-08-24T14:15:22Z'
+ VectorUpsertResponse:
+ type: object
+ properties:
+ numAdded:
+ type: number
+ description: Number of vectors added
+ example: 1
+ numDeleted:
+ type: number
+ description: Number of vectors deleted
+ example: 1
+ numUpdated:
+ type: number
+ description: Number of vectors updated
+ example: 1
+ numSkipped:
+ type: number
+ description: Number of vectors skipped (not added, deleted, or updated)
+ example: 1
+ addedDocs:
+ type: array
+ items:
+ $ref: '#/components/schemas/Document'
+ Lead:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the lead
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ name:
+ type: string
+ description: Name of the lead
+ example: 'John Doe'
+ email:
+ type: string
+ description: Email address of the lead
+ example: 'john.doe@example.com'
+ phone:
+ type: string
+ description: Phone number of the lead
+ example: '+1234567890'
+ chatflowid:
+ type: string
+ description: ID of the chatflow the lead is associated with
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ chatId:
+ type: string
+ description: ID of the chat session the lead is associated with
+ example: 'd7b0b5d8-85e6-4f2a-9c1f-9d9a0e2ebf6b'
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the lead was created
+ example: '2024-08-24T14:15:22Z'
+ UpsertHistoryResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the upsert history record
+ example: 'cfd531e0-82fc-11e9-bc42-526af7764f64'
+ chatflowid:
+ type: string
+ description: ID of the chatflow associated with the upsert history
+ example: '7c4e8b7a-7b9a-4b4d-9f3e-2d28f1ebea02'
+ result:
+ type: string
+ description: Result of the upsert operation, stored as a JSON string
+ example: '{"status":"success","data":{"key":"value"}}'
+ flowData:
+ type: string
+ description: Flow data associated with the upsert operation, stored as a JSON string
+ example: '{"nodes":[],"edges":[]}'
+ date:
+ type: string
+ format: date-time
+ description: Date and time when the upsert operation was performed
+ example: '2024-08-24T14:15:22Z'
+ DocumentStore:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store
+ name:
+ type: string
+ description: Name of the document store
+ description:
+ type: string
+ description: Description of the document store
+ loaders:
+ type: string
+ description: Loaders associated with the document store, stored as JSON string
+ whereUsed:
+ type: string
+ description: Places where the document store is used, stored as JSON string
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store
+ vectorStoreConfig:
+ type: string
+ description: Configuration for the vector store, stored as JSON string
+ embeddingConfig:
+ type: string
+ description: Configuration for the embedding, stored as JSON string
+ recordManagerConfig:
+ type: string
+ description: Configuration for the record manager, stored as JSON string
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was created
+ updatedDate:
+ type: string
+ format: date-time
+ description: Date and time when the document store was last updated
+
+ DocumentStoreFileChunk:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file chunk
+ docId:
+ type: string
+ format: uuid
+ description: Document ID within the store
+ storeId:
+ type: string
+ format: uuid
+ description: Document Store ID
+ chunkNo:
+ type: integer
+ description: Chunk number within the document
+ pageContent:
+ type: string
+ description: Content of the chunk
+ metadata:
+ type: string
+ description: Metadata associated with the chunk
+
+ DocumentStoreLoaderForPreview:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the document store loader
+ loaderId:
+ type: string
+ description: ID of the loader
+ loaderName:
+ type: string
+ description: Name of the loader
+ loaderConfig:
+ type: object
+ description: Configuration for the loader
+ splitterId:
+ type: string
+ description: ID of the text splitter
+ splitterName:
+ type: string
+ description: Name of the text splitter
+ splitterConfig:
+ type: object
+ description: Configuration for the text splitter
+ totalChunks:
+ type: number
+ description: Total number of chunks
+ totalChars:
+ type: number
+ description: Total number of characters
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the document store loader
+ storeId:
+ type: string
+ description: ID of the document store
+ files:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderFile'
+ source:
+ type: string
+ description: Source of the document store loader
+ credential:
+ type: string
+ description: Credential associated with the document store loader
+ rehydrated:
+ type: boolean
+ description: Whether the loader has been rehydrated
+ preview:
+ type: boolean
+ description: Whether the loader is in preview mode
+ previewChunkCount:
+ type: number
+ description: Number of chunks in preview mode
+
+ DocumentStoreLoaderFile:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the file
+ name:
+ type: string
+ description: Name of the file
+ mimePrefix:
+ type: string
+ description: MIME prefix of the file
+ size:
+ type: number
+ description: Size of the file
+ status:
+ type: string
+ enum: [EMPTY, SYNC, SYNCING, STALE, NEW, UPSERTING, UPSERTED]
+ description: Status of the file
+ uploaded:
+ type: string
+ format: date-time
+ description: Date and time when the file was uploaded
+
+ DocumentStoreFileChunkPagedResponse:
+ type: object
+ properties:
+ chunks:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreFileChunk'
+ count:
+ type: number
+ example: 1
+ file:
+ $ref: '#/components/schemas/DocumentStoreLoaderForPreview'
+ currentPage:
+ type: number
+ storeName:
+ type: string
+ description:
+ type: string
+
+ DocumentStoreLoaderForUpsert:
+ type: object
+ properties:
+ docId:
+ type: string
+ format: uuid
+ nullable: true
+ description: Document ID within the store. If provided, existing configuration from the document will be used for the new document
+ metadata:
+ type: object
+ nullable: true
+ description: Metadata associated with the document
+ example: { 'foo': 'bar' }
+ replaceExisting:
+ type: boolean
+ nullable: true
+ description: Whether to replace existing document loader with the new upserted chunks. However this does not delete the existing embeddings in the vector store
+ createNewDocStore:
+ type: boolean
+ nullable: true
+ description: Whether to create a new document store
+ docStore:
+ type: object
+ nullable: true
+ description: Only when createNewDocStore is true, pass in the new document store configuration
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the new document store to be created
+ description:
+ type: string
+ example: plainText
+ description: Description of the new document store to be created
+ loader:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: plainText
+ description: Name of the loader (camelCase)
+ config:
+ type: object
+ description: Configuration for the loader
+ splitter:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: recursiveCharacterTextSplitter
+ description: Name of the text splitter (camelCase)
+ config:
+ type: object
+ description: Configuration for the text splitter
+ embedding:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: openAIEmbeddings
+ description: Name of the embedding generator (camelCase)
+ config:
+ type: object
+ description: Configuration for the embedding generator
+ vectorStore:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: faiss
+ description: Name of the vector store (camelCase)
+ config:
+ type: object
+ description: Configuration for the vector store
+ recordManager:
+ type: object
+ nullable: true
+ properties:
+ name:
+ type: string
+ example: postgresRecordManager
+ description: Name of the record manager (camelCase)
+ config:
+ type: object
+ description: Configuration for the record manager
+
+ DocumentStoreLoaderForRefresh:
+ type: object
+ properties:
+ items:
+ type: array
+ items:
+ $ref: '#/components/schemas/DocumentStoreLoaderForUpsert'
+
+ ChatMessageFeedback:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ description: Unique identifier for the feedback
+ chatflowid:
+ type: string
+ format: uuid
+ description: Identifier for the chat flow
+ chatId:
+ type: string
+ description: Identifier for the chat
+ messageId:
+ type: string
+ format: uuid
+ description: Identifier for the message
+ rating:
+ type: string
+ enum: [THUMBS_UP, THUMBS_DOWN]
+ description: Rating for the message
+ content:
+ type: string
+ description: Feedback content
+ createdDate:
+ type: string
+ format: date-time
+ description: Date and time when the feedback was created
+
+ CreateAttachmentResponse:
+ type: object
+ properties:
+ name:
+ type: string
+ description: Name of the file
+ mimeType:
+ type: string
+ description: Mime type of the file
+ size:
+ type: string
+ description: Size of the file
+ content:
+ type: string
+ description: Content of the file in string format
+
+ securitySchemes:
+ bearerAuth:
+ type: http
+ scheme: bearer
+ bearerFormat: JWT # optional, for documentation purposes only
diff --git a/fr/.gitbook/assets/tavily.png b/fr/.gitbook/assets/tavily.png
new file mode 100644
index 00000000..8313e561
Binary files /dev/null and b/fr/.gitbook/assets/tavily.png differ
diff --git a/fr/.gitbook/assets/tavily/tavily-1.png b/fr/.gitbook/assets/tavily/tavily-1.png
new file mode 100644
index 00000000..4605fe2f
Binary files /dev/null and b/fr/.gitbook/assets/tavily/tavily-1.png differ
diff --git a/fr/.gitbook/assets/tavily/tavily-2.png b/fr/.gitbook/assets/tavily/tavily-2.png
new file mode 100644
index 00000000..8ca8d1c5
Binary files /dev/null and b/fr/.gitbook/assets/tavily/tavily-2.png differ
diff --git a/fr/.gitbook/assets/ud_01.png b/fr/.gitbook/assets/ud_01.png
new file mode 100644
index 00000000..9163207f
Binary files /dev/null and b/fr/.gitbook/assets/ud_01.png differ
diff --git a/fr/.gitbook/assets/up-001.png b/fr/.gitbook/assets/up-001.png
new file mode 100644
index 00000000..2a1c18ac
Binary files /dev/null and b/fr/.gitbook/assets/up-001.png differ
diff --git a/fr/.gitbook/assets/up-002.png b/fr/.gitbook/assets/up-002.png
new file mode 100644
index 00000000..52f595ba
Binary files /dev/null and b/fr/.gitbook/assets/up-002.png differ
diff --git a/fr/.gitbook/assets/up-003.png b/fr/.gitbook/assets/up-003.png
new file mode 100644
index 00000000..dc6ac0c2
Binary files /dev/null and b/fr/.gitbook/assets/up-003.png differ
diff --git a/fr/.gitbook/assets/up-004.png b/fr/.gitbook/assets/up-004.png
new file mode 100644
index 00000000..0ba04fee
Binary files /dev/null and b/fr/.gitbook/assets/up-004.png differ
diff --git a/fr/.gitbook/assets/up-005.png b/fr/.gitbook/assets/up-005.png
new file mode 100644
index 00000000..50d73d69
Binary files /dev/null and b/fr/.gitbook/assets/up-005.png differ
diff --git a/fr/.gitbook/assets/up-006.png b/fr/.gitbook/assets/up-006.png
new file mode 100644
index 00000000..39de29bf
Binary files /dev/null and b/fr/.gitbook/assets/up-006.png differ
diff --git a/fr/.gitbook/assets/up-007.png b/fr/.gitbook/assets/up-007.png
new file mode 100644
index 00000000..964accb7
Binary files /dev/null and b/fr/.gitbook/assets/up-007.png differ
diff --git a/fr/.gitbook/assets/up-008.png b/fr/.gitbook/assets/up-008.png
new file mode 100644
index 00000000..e72d6e58
Binary files /dev/null and b/fr/.gitbook/assets/up-008.png differ
diff --git a/fr/.gitbook/assets/up-009.png b/fr/.gitbook/assets/up-009.png
new file mode 100644
index 00000000..96473c30
Binary files /dev/null and b/fr/.gitbook/assets/up-009.png differ
diff --git a/fr/.gitbook/assets/up-010.png b/fr/.gitbook/assets/up-010.png
new file mode 100644
index 00000000..3cba7065
Binary files /dev/null and b/fr/.gitbook/assets/up-010.png differ
diff --git a/fr/.gitbook/assets/up-011.png b/fr/.gitbook/assets/up-011.png
new file mode 100644
index 00000000..acafb033
Binary files /dev/null and b/fr/.gitbook/assets/up-011.png differ
diff --git a/fr/.gitbook/assets/up-012.png b/fr/.gitbook/assets/up-012.png
new file mode 100644
index 00000000..d9a44c88
Binary files /dev/null and b/fr/.gitbook/assets/up-012.png differ
diff --git a/fr/.gitbook/assets/up-013.png b/fr/.gitbook/assets/up-013.png
new file mode 100644
index 00000000..6ba61861
Binary files /dev/null and b/fr/.gitbook/assets/up-013.png differ
diff --git a/fr/.gitbook/assets/up-014.png b/fr/.gitbook/assets/up-014.png
new file mode 100644
index 00000000..e43fe443
Binary files /dev/null and b/fr/.gitbook/assets/up-014.png differ
diff --git a/fr/.gitbook/assets/up-015.png b/fr/.gitbook/assets/up-015.png
new file mode 100644
index 00000000..751d6921
Binary files /dev/null and b/fr/.gitbook/assets/up-015.png differ
diff --git a/fr/.gitbook/assets/up-018.png b/fr/.gitbook/assets/up-018.png
new file mode 100644
index 00000000..a079d708
Binary files /dev/null and b/fr/.gitbook/assets/up-018.png differ
diff --git a/fr/.gitbook/assets/upstash/create-index.jpeg b/fr/.gitbook/assets/upstash/create-index.jpeg
new file mode 100644
index 00000000..92743fd8
Binary files /dev/null and b/fr/.gitbook/assets/upstash/create-index.jpeg differ
diff --git a/fr/.gitbook/assets/upstash/credentials.jpeg b/fr/.gitbook/assets/upstash/credentials.jpeg
new file mode 100644
index 00000000..a4c8bfbf
Binary files /dev/null and b/fr/.gitbook/assets/upstash/credentials.jpeg differ
diff --git a/fr/.gitbook/assets/upstash/databrowser.jpeg b/fr/.gitbook/assets/upstash/databrowser.jpeg
new file mode 100644
index 00000000..d91f5f63
Binary files /dev/null and b/fr/.gitbook/assets/upstash/databrowser.jpeg differ
diff --git a/fr/.gitbook/assets/upstash/env-variables.jpeg b/fr/.gitbook/assets/upstash/env-variables.jpeg
new file mode 100644
index 00000000..92743fd8
Binary files /dev/null and b/fr/.gitbook/assets/upstash/env-variables.jpeg differ
diff --git a/fr/.gitbook/assets/upstash/flowise-design.jpeg b/fr/.gitbook/assets/upstash/flowise-design.jpeg
new file mode 100644
index 00000000..5519d6b4
Binary files /dev/null and b/fr/.gitbook/assets/upstash/flowise-design.jpeg differ
diff --git a/fr/.gitbook/assets/upstash/list-index.jpeg b/fr/.gitbook/assets/upstash/list-index.jpeg
new file mode 100644
index 00000000..db5d7d91
Binary files /dev/null and b/fr/.gitbook/assets/upstash/list-index.jpeg differ
diff --git a/fr/.gitbook/assets/upstash/upstash-node.jpeg b/fr/.gitbook/assets/upstash/upstash-node.jpeg
new file mode 100644
index 00000000..3fa6df21
Binary files /dev/null and b/fr/.gitbook/assets/upstash/upstash-node.jpeg differ
diff --git a/fr/.gitbook/assets/vectara/1.png b/fr/.gitbook/assets/vectara/1.png
new file mode 100644
index 00000000..575a5236
Binary files /dev/null and b/fr/.gitbook/assets/vectara/1.png differ
diff --git a/fr/.gitbook/assets/vectara/2.png b/fr/.gitbook/assets/vectara/2.png
new file mode 100644
index 00000000..95c6a532
Binary files /dev/null and b/fr/.gitbook/assets/vectara/2.png differ
diff --git a/fr/.gitbook/assets/vectara/3.png b/fr/.gitbook/assets/vectara/3.png
new file mode 100644
index 00000000..d8236eb3
Binary files /dev/null and b/fr/.gitbook/assets/vectara/3.png differ
diff --git a/fr/.gitbook/assets/vectara/4.png b/fr/.gitbook/assets/vectara/4.png
new file mode 100644
index 00000000..4170964b
Binary files /dev/null and b/fr/.gitbook/assets/vectara/4.png differ
diff --git a/fr/.gitbook/assets/vectara/5.png b/fr/.gitbook/assets/vectara/5.png
new file mode 100644
index 00000000..808bbdff
Binary files /dev/null and b/fr/.gitbook/assets/vectara/5.png differ
diff --git a/fr/.gitbook/assets/vectara/6.png b/fr/.gitbook/assets/vectara/6.png
new file mode 100644
index 00000000..f0d16e32
Binary files /dev/null and b/fr/.gitbook/assets/vectara/6.png differ
diff --git a/fr/.gitbook/assets/web-scrape-pinecone.png b/fr/.gitbook/assets/web-scrape-pinecone.png
new file mode 100644
index 00000000..0d587dd9
Binary files /dev/null and b/fr/.gitbook/assets/web-scrape-pinecone.png differ
diff --git a/fr/.gitbook/assets/white.png b/fr/.gitbook/assets/white.png
new file mode 100644
index 00000000..7b7b9ea3
Binary files /dev/null and b/fr/.gitbook/assets/white.png differ
diff --git a/fr/.gitbook/assets/writer.png b/fr/.gitbook/assets/writer.png
new file mode 100644
index 00000000..5ccd0f83
Binary files /dev/null and b/fr/.gitbook/assets/writer.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/1.png b/fr/.gitbook/assets/zapier/nla/1.png
new file mode 100644
index 00000000..33c5b663
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/1.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/2.png b/fr/.gitbook/assets/zapier/nla/2.png
new file mode 100644
index 00000000..b452d3bf
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/2.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/3.png b/fr/.gitbook/assets/zapier/nla/3.png
new file mode 100644
index 00000000..0205f024
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/3.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/4.png b/fr/.gitbook/assets/zapier/nla/4.png
new file mode 100644
index 00000000..99312b68
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/4.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/5.png b/fr/.gitbook/assets/zapier/nla/5.png
new file mode 100644
index 00000000..06b23581
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/5.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/6.png b/fr/.gitbook/assets/zapier/nla/6.png
new file mode 100644
index 00000000..fbc834bb
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/6.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/7.png b/fr/.gitbook/assets/zapier/nla/7.png
new file mode 100644
index 00000000..94609c96
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/7.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/8.png b/fr/.gitbook/assets/zapier/nla/8.png
new file mode 100644
index 00000000..93eb75af
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/8.png differ
diff --git a/fr/.gitbook/assets/zapier/nla/9.png b/fr/.gitbook/assets/zapier/nla/9.png
new file mode 100644
index 00000000..72a4859b
Binary files /dev/null and b/fr/.gitbook/assets/zapier/nla/9.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/1.png b/fr/.gitbook/assets/zapier/zap/1.png
new file mode 100644
index 00000000..cdd1e6a9
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/1.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/10.png b/fr/.gitbook/assets/zapier/zap/10.png
new file mode 100644
index 00000000..770ce515
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/10.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/11.png b/fr/.gitbook/assets/zapier/zap/11.png
new file mode 100644
index 00000000..0e1f5d3b
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/11.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/12.png b/fr/.gitbook/assets/zapier/zap/12.png
new file mode 100644
index 00000000..667c65be
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/12.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/13.png b/fr/.gitbook/assets/zapier/zap/13.png
new file mode 100644
index 00000000..8aee1edb
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/13.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/14.png b/fr/.gitbook/assets/zapier/zap/14.png
new file mode 100644
index 00000000..4bef9d6d
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/14.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/15.png b/fr/.gitbook/assets/zapier/zap/15.png
new file mode 100644
index 00000000..bd07b861
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/15.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/16.png b/fr/.gitbook/assets/zapier/zap/16.png
new file mode 100644
index 00000000..87e1c401
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/16.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/17.png b/fr/.gitbook/assets/zapier/zap/17.png
new file mode 100644
index 00000000..20fd2eff
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/17.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/18.png b/fr/.gitbook/assets/zapier/zap/18.png
new file mode 100644
index 00000000..652ec4cd
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/18.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/19.png b/fr/.gitbook/assets/zapier/zap/19.png
new file mode 100644
index 00000000..5d0e5ebf
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/19.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/2.png b/fr/.gitbook/assets/zapier/zap/2.png
new file mode 100644
index 00000000..69b43621
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/2.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/20.png b/fr/.gitbook/assets/zapier/zap/20.png
new file mode 100644
index 00000000..47667132
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/20.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/21.png b/fr/.gitbook/assets/zapier/zap/21.png
new file mode 100644
index 00000000..b0a1c0d9
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/21.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/22.png b/fr/.gitbook/assets/zapier/zap/22.png
new file mode 100644
index 00000000..bd8e8e34
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/22.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/23.png b/fr/.gitbook/assets/zapier/zap/23.png
new file mode 100644
index 00000000..a3467930
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/23.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/24.png b/fr/.gitbook/assets/zapier/zap/24.png
new file mode 100644
index 00000000..c356925c
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/24.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/25.png b/fr/.gitbook/assets/zapier/zap/25.png
new file mode 100644
index 00000000..76527a91
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/25.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/26.png b/fr/.gitbook/assets/zapier/zap/26.png
new file mode 100644
index 00000000..74a4c55b
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/26.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/3.png b/fr/.gitbook/assets/zapier/zap/3.png
new file mode 100644
index 00000000..46eb81b8
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/3.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/4.png b/fr/.gitbook/assets/zapier/zap/4.png
new file mode 100644
index 00000000..6ba39b85
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/4.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/5.png b/fr/.gitbook/assets/zapier/zap/5.png
new file mode 100644
index 00000000..804367de
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/5.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/6.png b/fr/.gitbook/assets/zapier/zap/6.png
new file mode 100644
index 00000000..d42ddeac
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/6.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/7.png b/fr/.gitbook/assets/zapier/zap/7.png
new file mode 100644
index 00000000..ce2ca2e8
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/7.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/8.png b/fr/.gitbook/assets/zapier/zap/8.png
new file mode 100644
index 00000000..851e4f5f
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/8.png differ
diff --git a/fr/.gitbook/assets/zapier/zap/9.png b/fr/.gitbook/assets/zapier/zap/9.png
new file mode 100644
index 00000000..fcaa125a
Binary files /dev/null and b/fr/.gitbook/assets/zapier/zap/9.png differ
diff --git a/fr/.gitbook/assets/zeabur/1.png b/fr/.gitbook/assets/zeabur/1.png
new file mode 100644
index 00000000..2b4186e5
Binary files /dev/null and b/fr/.gitbook/assets/zeabur/1.png differ
diff --git a/fr/.gitbook/assets/zeabur/2.png b/fr/.gitbook/assets/zeabur/2.png
new file mode 100644
index 00000000..8d8063fb
Binary files /dev/null and b/fr/.gitbook/assets/zeabur/2.png differ
diff --git a/fr/.gitbook/assets/zeabur/3.png b/fr/.gitbook/assets/zeabur/3.png
new file mode 100644
index 00000000..af9e1687
Binary files /dev/null and b/fr/.gitbook/assets/zeabur/3.png differ
diff --git a/fr/.gitbook/assets/zeabur/4.png b/fr/.gitbook/assets/zeabur/4.png
new file mode 100644
index 00000000..ab41bc8a
Binary files /dev/null and b/fr/.gitbook/assets/zeabur/4.png differ
diff --git a/fr/README.md b/fr/README.md
new file mode 100644
index 00000000..460113fa
--- /dev/null
+++ b/fr/README.md
@@ -0,0 +1,71 @@
+---
+description: Bienvenue dans la documentation officielle de Flowise
+---
+
+# Introduction
+
+
+
+Flowise est une plateforme de développement d'IA générative open source pour la création d'agents IA et de workflows LLM.
+
+Elle offre une solution complète qui inclut :
+
+* [x] Constructeur Visuel
+* [x] Suivi & Analytique
+* [x] Évaluations
+* [x] Humain dans la Boucle
+* [x] API, CLI, SDK, Chatbot Intégré
+* [x] Équipes & Espaces de Travail
+
+Il existe 3 principaux constructeurs visuels, à savoir :
+
+* Assistant
+* Chatflow
+* Agentflow
+
+## Assistant
+
+L'Assistant est la manière la plus conviviale de créer un agent IA. Les utilisateurs peuvent créer un assistant de chat capable de suivre des instructions, d'utiliser des outils si nécessaire, et de récupérer des connaissances à partir de fichiers téléchargés ([RAG](https://en.wikipedia.org/wiki/Retrieval-augmented_generation)) pour répondre aux requêtes des utilisateurs.
+
+
+
+## Chatflow
+
+Chatflow est conçu pour construire des systèmes à agent unique, des chatbots et des flux LLM simples. Il est plus flexible que l'Assistant. Les utilisateurs peuvent utiliser des techniques avancées telles que Graph RAG, Reranker, Retriever, etc.
+
+
+
+## Agentflow
+
+Agentflow est le sur-ensemble de Chatflow et de l'Assistant. Il peut être utilisé pour créer un assistant de chat, un système à agent unique, des systèmes multi-agents et une orchestration de workflows complexes. En savoir plus sur [Agentflow V2](using-flowise/agentflowv2.md)
+
+
+
+## Capacités de Flowise
+
+| Domaine de Fonctionnalité | Capacités de Flowise |
+| ---------------------------- | ------------------------------------------------------------------------------------------------------------------- |
+| Orchestration | Éditeur visuel, prend en charge les modèles open-source et propriétaires, expressions, code personnalisé, logique de branchement/boucle/routage |
+| Ingestion et Intégration des Données | Se connecte à plus de 100 sources, outils, bases de données vectorielles, mémoires |
+| Surveillance | Journaux d'exécution, débogage visuel, diffusion de journaux externes |
+| Déploiement | Options auto-hébergées, déploiement en environnement isolé |
+| Traitement des Données | Transformations de données, filtres, agrégats, code personnalisé, pipelines d'indexation RAG |
+| Mémoire et Planification | Techniques d'optimisation de mémoire variées et intégrations |
+| Intégration MCP | Nœuds client/serveur MCP, liste d'outils, SSE, support d'authentification |
+| Sécurité et Contrôle | Modération des entrées et post-traitement des sorties |
+| API, SDK, CLI | Accès API, SDK JS/Python, Interface en Ligne de Commande |
+| Chatbot Intégré et Partagé | Widget de chat intégré personnalisable et composant |
+| Modèles et Composants | Marché de modèles, composants réutilisables |
+| Contrôles de Sécurité | RBAC, SSO, identifiants chiffrés, gestionnaires de secrets, limitation de taux, domaines restreints |
+| Scalabilité | Échelle verticale/horizontale, charge de travail/flux élevée |
+| Évaluations | Ensembles de données, Évaluateurs et Évaluations |
+| Support Communautaire | Forum communautaire actif |
+| Support Fournisseur | Support SLA, consultations, tarification fixe/déterministe |
+
+## Contribuer
+
+Si vous souhaitez aider ce projet, veuillez envisager de consulter le [Guide de Contribution](broken-reference/).
+
+## Besoin d'aide ?
+
+Pour un support et des discussions supplémentaires, rendez-vous sur notre serveur [Discord](https://discord.gg/jbaHfsRVBW).
\ No newline at end of file
diff --git a/fr/SUMMARY.md b/fr/SUMMARY.md
new file mode 100644
index 00000000..36a17f7d
--- /dev/null
+++ b/fr/SUMMARY.md
@@ -0,0 +1,342 @@
+# Table des matières
+
+* [Introduction](README.md)
+* [Get Started](getting-started/README.md)
+* [Contribution Guide](contributing/README.md)
+ * [Building Node](contributing/building-node.md)
+* [API Reference](api-reference/README.md)
+ * [Assistants](api-reference/assistants.md)
+ * [Attachments](api-reference/attachments.md)
+ * [Chat Message](api-reference/chat-message.md)
+ * [Chatflows](api-reference/chatflows.md)
+ * [Document Store](api-reference/document-store.md)
+ * [Feedback](api-reference/feedback.md)
+ * [Leads](api-reference/leads.md)
+ * [Ping](api-reference/ping.md)
+ * [Prediction](api-reference/prediction.md)
+ * [Tools](api-reference/tools.md)
+ * [Upsert History](api-reference/upsert-history.md)
+ * [Variables](api-reference/variables.md)
+ * [Vector Upsert](api-reference/vector-upsert.md)
+* [CLI Reference](cli-reference/README.md)
+ * [User](cli-reference/user.md)
+* [Using Flowise](using-flowise/README.md)
+ * [Agentflow V2](using-flowise/agentflowv2.md)
+ * [Agentflow V1 (Deprecating)](using-flowise/agentflowv1/README.md)
+ * [Multi-Agents](using-flowise/agentflowv1/multi-agents.md)
+ * [Sequential Agents](using-flowise/agentflowv1/sequential-agents/README.md)
+ * [Video Tutorials](using-flowise/agentflowv1/sequential-agents/video-tutorials.md)
+ * [Prediction](using-flowise/prediction.md)
+ * [Streaming](using-flowise/streaming.md)
+ * [Document Stores](using-flowise/document-stores.md)
+ * [Upsertion](using-flowise/upsertion.md)
+ * [Analytic](using-flowise/analytics/README.md)
+ * [Arize](using-flowise/analytics/arize.md)
+ * [LangWatch](using-flowise/analytics/langwatch.md)
+ * [Langfuse](using-flowise/analytics/langfuse.md)
+ * [Lunary](using-flowise/analytics/lunary.md)
+ * [Opik](using-flowise/analytics/opik.md)
+ * [Phoenix](using-flowise/analytics/phoenix.md)
+ * [Monitoring](using-flowise/monitoring.md)
+ * [Embed](using-flowise/embed.md)
+ * [Uploads](using-flowise/uploads.md)
+ * [Variables](using-flowise/variables.md)
+ * [Workspaces](using-flowise/workspaces.md)
+ * [Evaluations](using-flowise/evaluations.md)
+* [Configuration](configuration/README.md)
+ * [Auth](configuration/authorization/README.md)
+ * [Application](configuration/authorization/app-level.md)
+ * [Flows](configuration/authorization/chatflow-level.md)
+ * [Databases](configuration/databases.md)
+ * [Deployment](configuration/deployment/README.md)
+ * [AWS](configuration/deployment/aws.md)
+ * [Azure](configuration/deployment/azure.md)
+ * [Alibaba Cloud](https://aliyun-computenest.github.io/quickstart-flowise/)
+ * [Digital Ocean](configuration/deployment/digital-ocean.md)
+ * [Elestio](https://elest.io/open-source/flowiseai)
+ * [GCP](configuration/deployment/gcp.md)
+ * [Hugging Face](configuration/deployment/hugging-face.md)
+ * [Kubernetes using Helm](https://artifacthub.io/packages/helm/cowboysysop/flowise)
+ * [Railway](configuration/deployment/railway.md)
+ * [Render](configuration/deployment/render.md)
+ * [Replit](configuration/deployment/replit.md)
+ * [RepoCloud](https://repocloud.io/details/?app_id=29)
+ * [Sealos](configuration/deployment/sealos.md)
+ * [Zeabur](configuration/deployment/zeabur.md)
+ * [Environment Variables](configuration/environment-variables.md)
+ * [Rate Limit](configuration/rate-limit.md)
+ * [Running Flowise behind company proxy](configuration/running-flowise-behind-company-proxy.md)
+ * [SSO](configuration/sso.md)
+ * [Running Flowise using Queue](configuration/running-flowise-using-queue.md)
+ * [Running in Production](configuration/running-in-production.md)
+* [Integrations](integrations/README.md)
+ * [LangChain](integrations/langchain/README.md)
+ * [Agents](integrations/langchain/agents/README.md)
+ * [Airtable Agent](integrations/langchain/agents/airtable-agent.md)
+ * [AutoGPT](integrations/langchain/agents/autogpt.md)
+ * [BabyAGI](integrations/langchain/agents/babyagi.md)
+ * [CSV Agent](integrations/langchain/agents/csv-agent.md)
+ * [Conversational Agent](integrations/langchain/agents/conversational-agent.md)
+ * [Conversational Retrieval Agent](integrations/langchain/agents/conversational-retrieval-agent.md)
+ * [MistralAI Tool Agent](integrations/langchain/agents/mistralai-tool-agent.md)
+ * [OpenAI Assistant](integrations/langchain/agents/openai-assistant/README.md)
+ * [Threads](integrations/langchain/agents/openai-assistant/threads.md)
+ * [OpenAI Function Agent](integrations/langchain/agents/openai-function-agent.md)
+ * [OpenAI Tool Agent](integrations/langchain/agents/openai-tool-agent.md)
+ * [ReAct Agent Chat](integrations/langchain/agents/react-agent-chat.md)
+ * [ReAct Agent LLM](integrations/langchain/agents/react-agent-llm.md)
+ * [Tool Agent](integrations/langchain/agents/tool-agent.md)
+ * [XML Agent](integrations/langchain/agents/xml-agent.md)
+ * [Cache](integrations/langchain/cache/README.md)
+ * [InMemory Cache](integrations/langchain/cache/in-memory-cache.md)
+ * [InMemory Embedding Cache](integrations/langchain/cache/inmemory-embedding-cache.md)
+ * [Momento Cache](integrations/langchain/cache/momento-cache.md)
+ * [Redis Cache](integrations/langchain/cache/redis-cache.md)
+ * [Redis Embeddings Cache](integrations/langchain/cache/redis-embeddings-cache.md)
+ * [Upstash Redis Cache](integrations/langchain/cache/upstash-redis-cache.md)
+ * [Chains](integrations/langchain/chains/README.md)
+ * [GET API Chain](integrations/langchain/chains/get-api-chain.md)
+ * [OpenAPI Chain](integrations/langchain/chains/openapi-chain.md)
+ * [POST API Chain](integrations/langchain/chains/post-api-chain.md)
+ * [Conversation Chain](integrations/langchain/chains/conversation-chain.md)
+ * [Conversational Retrieval QA Chain](integrations/langchain/chains/conversational-retrieval-qa-chain.md)
+ * [LLM Chain](integrations/langchain/chains/llm-chain.md)
+ * [Multi Prompt Chain](integrations/langchain/chains/multi-prompt-chain.md)
+ * [Multi Retrieval QA Chain](integrations/langchain/chains/multi-retrieval-qa-chain.md)
+ * [Retrieval QA Chain](integrations/langchain/chains/retrieval-qa-chain.md)
+ * [Sql Database Chain](integrations/langchain/chains/sql-database-chain.md)
+ * [Vectara QA Chain](integrations/langchain/chains/vectara-chain.md)
+ * [VectorDB QA Chain](integrations/langchain/chains/vectordb-qa-chain.md)
+ * [Chat Models](integrations/langchain/chat-models/README.md)
+ * [AWS ChatBedrock](integrations/langchain/chat-models/aws-chatbedrock.md)
+ * [Azure ChatOpenAI](integrations/langchain/chat-models/azure-chatopenai-1.md)
+ * [NVIDIA NIM](integrations/langchain/chat-models/nvidia-nim.md)
+ * [ChatCometAPI](integrations/langchain/chat-models/chatcometapi.md)
+ * [ChatAnthropic](integrations/langchain/chat-models/chatanthropic.md)
+ * [ChatCohere](integrations/langchain/chat-models/chatcohere.md)
+ * [Chat Fireworks](integrations/langchain/chat-models/chat-fireworks.md)
+ * [ChatGoogleGenerativeAI](integrations/langchain/chat-models/google-ai.md)
+ * [Google VertexAI](integrations/langchain/chat-models/google-vertexai.md)
+ * [ChatHuggingFace](integrations/langchain/chat-models/chathuggingface.md)
+ * [ChatLocalAI](integrations/langchain/chat-models/chatlocalai.md)
+ * [ChatMistralAI](integrations/langchain/chat-models/mistral-ai.md)
+ * [IBM Watsonx](integrations/langchain/chat-models/ibm-watsonx.md)
+ * [ChatOllama](integrations/langchain/chat-models/chatollama.md)
+ * [ChatOpenAI](integrations/langchain/chat-models/azure-chatopenai.md)
+ * [ChatTogetherAI](integrations/langchain/chat-models/chattogetherai.md)
+ * [GroqChat](integrations/langchain/chat-models/groqchat.md)
+ * [Document Loaders](integrations/langchain/document-loaders/README.md)
+ * [Airtable](integrations/langchain/document-loaders/airtable.md)
+ * [API Loader](integrations/langchain/document-loaders/api-loader.md)
+ * [Apify Website Content Crawler](integrations/langchain/document-loaders/apify-website-content-crawler.md)
+ * [BraveSearch Loader](integrations/langchain/document-loaders/bravesearch-api.md)
+ * [Cheerio Web Scraper](integrations/langchain/document-loaders/cheerio-web-scraper.md)
+ * [Confluence](integrations/langchain/document-loaders/confluence.md)
+ * [Csv File](integrations/langchain/document-loaders/csv-file.md)
+ * [Custom Document Loader](integrations/langchain/document-loaders/custom-document-loader.md)
+ * [Document Store](integrations/langchain/document-loaders/document-store.md)
+ * [Docx File](integrations/langchain/document-loaders/docx-file.md)
+ * [Epub File](integrations/langchain/document-loaders/epub-file.md)
+ * [Figma](integrations/langchain/document-loaders/figma.md)
+ * [File](integrations/langchain/document-loaders/file-loader.md)
+ * [FireCrawl](integrations/langchain/document-loaders/firecrawl.md)
+ * [Folder](integrations/langchain/document-loaders/folder.md)
+ * [GitBook](integrations/langchain/document-loaders/gitbook.md)
+ * [Github](integrations/langchain/document-loaders/github.md)
+ * [Google Drive](integrations/langchain/document-loaders/google-drive.md)
+ * [Google Sheets](integrations/langchain/document-loaders/google-sheets.md)
+ * [Jira](integrations/langchain/document-loaders/jira.md)
+ * [Json File](integrations/langchain/document-loaders/json-file.md)
+ * [Json Lines File](integrations/langchain/document-loaders/jsonlines.md)
+ * [Microsoft Excel](integrations/langchain/document-loaders/microsoft-excel.md)
+ * [Microsoft Powerpoint](integrations/langchain/document-loaders/microsoft-powerpoint.md)
+ * [Microsoft Word](integrations/langchain/document-loaders/microsoft-word.md)
+ * [Notion](integrations/langchain/document-loaders/notion.md)
+ * [Oxylabs](integrations/langchain/document-loaders/oxylabs.md)
+ * [PDF Files](integrations/langchain/document-loaders/pdf-file.md)
+ * [Plain Text](integrations/langchain/document-loaders/plain-text.md)
+ * [Playwright Web Scraper](integrations/langchain/document-loaders/playwright-web-scraper.md)
+ * [Puppeteer Web Scraper](integrations/langchain/document-loaders/puppeteer-web-scraper.md)
+ * [S3 File Loader](integrations/langchain/document-loaders/s3-file-loader.md)
+ * [SearchApi For Web Search](integrations/langchain/document-loaders/searchapi-for-web-search.md)
+ * [SerpApi For Web Search](integrations/langchain/document-loaders/serpapi-for-web-search.md)
+ * [Spider - web search & crawler](integrations/langchain/document-loaders/spider-web-scraper-crawler.md)
+ * [Text File](integrations/langchain/document-loaders/text-file.md)
+ * [Unstructured File Loader](integrations/langchain/document-loaders/unstructured-file-loader.md)
+ * [Unstructured Folder Loader](integrations/langchain/document-loaders/unstructured-folder-loader.md)
+ * [Embeddings](integrations/langchain/embeddings/README.md)
+ * [AWS Bedrock Embeddings](integrations/langchain/embeddings/aws-bedrock-embeddings.md)
+ * [Azure OpenAI Embeddings](integrations/langchain/embeddings/azure-openai-embeddings.md)
+ * [Cohere Embeddings](integrations/langchain/embeddings/cohere-embeddings.md)
+ * [Google GenerativeAI Embeddings](integrations/langchain/embeddings/googlegenerativeai-embeddings.md)
+ * [Google VertexAI Embeddings](integrations/langchain/embeddings/googlevertexai-embeddings.md)
+ * [HuggingFace Inference Embeddings](integrations/langchain/embeddings/huggingface-inference-embeddings.md)
+ * [LocalAI Embeddings](integrations/langchain/embeddings/localai-embeddings.md)
+ * [MistralAI Embeddings](integrations/langchain/embeddings/mistralai-embeddings.md)
+ * [Ollama Embeddings](integrations/langchain/embeddings/ollama-embeddings.md)
+ * [OpenAI Embeddings](integrations/langchain/embeddings/openai-embeddings.md)
+ * [OpenAI Embeddings Custom](integrations/langchain/embeddings/openai-embeddings-custom.md)
+ * [TogetherAI Embedding](integrations/langchain/embeddings/togetherai-embedding.md)
+ * [VoyageAI Embeddings](integrations/langchain/embeddings/voyageai-embeddings.md)
+ * [LLMs](integrations/langchain/llms/README.md)
+ * [AWS Bedrock](integrations/langchain/llms/aws-bedrock.md)
+ * [Azure OpenAI](integrations/langchain/llms/azure-openai.md)
+ * [Cohere](integrations/langchain/llms/cohere.md)
+ * [GoogleVertex AI](integrations/langchain/llms/googlevertex-ai.md)
+ * [HuggingFace Inference](integrations/langchain/llms/huggingface-inference.md)
+ * [Ollama](integrations/langchain/llms/ollama.md)
+ * [OpenAI](integrations/langchain/llms/openai.md)
+ * [Replicate](integrations/langchain/llms/replicate.md)
+ * [Memory](integrations/langchain/memory/README.md)
+ * [Buffer Memory](integrations/langchain/memory/buffer-memory.md)
+ * [Buffer Window Memory](integrations/langchain/memory/buffer-window-memory.md)
+ * [Conversation Summary Memory](integrations/langchain/memory/conversation-summary-memory.md)
+ * [Conversation Summary Buffer Memory](integrations/langchain/memory/conversation-summary-buffer-memory.md)
+ * [DynamoDB Chat Memory](integrations/langchain/memory/dynamodb-chat-memory.md)
+ * [MongoDB Atlas Chat Memory](integrations/langchain/memory/mongodb-atlas-chat-memory.md)
+ * [Redis-Backed Chat Memory](integrations/langchain/memory/redis-backed-chat-memory.md)
+ * [Upstash Redis-Backed Chat Memory](integrations/langchain/memory/upstash-redis-backed-chat-memory.md)
+ * [Zep Memory](integrations/langchain/memory/zep-memory.md)
+ * [Moderation](integrations/langchain/moderation/README.md)
+ * [OpenAI Moderation](integrations/langchain/moderation/openai-moderation.md)
+ * [Simple Prompt Moderation](integrations/langchain/moderation/simple-prompt-moderation.md)
+ * [Output Parsers](integrations/langchain/output-parsers/README.md)
+ * [CSV Output Parser](integrations/langchain/output-parsers/csv-output-parser.md)
+ * [Custom List Output Parser](integrations/langchain/output-parsers/custom-list-output-parser.md)
+ * [Structured Output Parser](integrations/langchain/output-parsers/structured-output-parser.md)
+ * [Advanced Structured Output Parser](integrations/langchain/output-parsers/advanced-structured-output-parser.md)
+ * [Prompts](integrations/langchain/prompts/README.md)
+ * [Chat Prompt Template](integrations/langchain/prompts/chat-prompt-template.md)
+ * [Few Shot Prompt Template](integrations/langchain/prompts/few-shot-prompt-template.md)
+ * [Prompt Template](integrations/langchain/prompts/prompt-template.md)
+ * [Record Managers](integrations/langchain/record-managers.md)
+ * [Retrievers](integrations/langchain/retrievers/README.md)
+ * [Extract Metadata Retriever](integrations/langchain/retrievers/extract-metadata-retriever.md)
+ * [Custom Retriever](integrations/langchain/retrievers/custom-retriever.md)
+ * [Cohere Rerank Retriever](integrations/langchain/retrievers/cohere-rerank-retriever.md)
+ * [Embeddings Filter Retriever](integrations/langchain/retrievers/embeddings-filter-retriever.md)
+ * [HyDE Retriever](integrations/langchain/retrievers/hyde-retriever.md)
+ * [LLM Filter Retriever](integrations/langchain/retrievers/llm-filter-retriever.md)
+ * [Multi Query Retriever](integrations/langchain/retrievers/multi-query-retriever.md)
+ * [Prompt Retriever](integrations/langchain/retrievers/prompt-retriever.md)
+ * [Reciprocal Rank Fusion Retriever](integrations/langchain/retrievers/reciprocal-rank-fusion-retriever.md)
+ * [Similarity Score Threshold Retriever](integrations/langchain/retrievers/similarity-score-threshold-retriever.md)
+ * [Vector Store Retriever](integrations/langchain/retrievers/vector-store-retriever.md)
+ * [Voyage AI Rerank Retriever](integrations/langchain/retrievers/page.md)
+ * [Text Splitters](integrations/langchain/text-splitters/README.md)
+ * [Character Text Splitter](integrations/langchain/text-splitters/character-text-splitter.md)
+ * [Code Text Splitter](integrations/langchain/text-splitters/code-text-splitter.md)
+ * [Html-To-Markdown Text Splitter](integrations/langchain/text-splitters/html-to-markdown-text-splitter.md)
+ * [Markdown Text Splitter](integrations/langchain/text-splitters/markdown-text-splitter.md)
+ * [Recursive Character Text Splitter](integrations/langchain/text-splitters/recursive-character-text-splitter.md)
+ * [Token Text Splitter](integrations/langchain/text-splitters/token-text-splitter.md)
+ * [Tools](integrations/langchain/tools/README.md)
+ * [BraveSearch API](integrations/langchain/tools/bravesearch-api.md)
+ * [Calculator](integrations/langchain/tools/calculator.md)
+ * [Chain Tool](integrations/langchain/tools/chain-tool.md)
+ * [Chatflow Tool](integrations/langchain/tools/chatflow-tool.md)
+ * [Custom Tool](integrations/langchain/tools/custom-tool.md)
+ * [Exa Search](integrations/langchain/tools/exa-search.md)
+ * [Gmail](integrations/langchain/tools/gmail.md)
+ * [Google Calendar](integrations/langchain/tools/google-calendar.md)
+ * [Google Custom Search](integrations/langchain/tools/google-custom-search.md)
+ * [Google Drive](integrations/langchain/tools/google-drive.md)
+ * [Google Sheets](integrations/langchain/tools/google-sheets.md)
+ * [Microsoft Outlook](integrations/langchain/tools/microsoft-outlook.md)
+ * [Microsoft Teams](integrations/langchain/tools/microsoft-teams.md)
+ * [OpenAPI Toolkit](integrations/langchain/tools/openapi-toolkit.md)
+ * [Code Interpreter by E2B](integrations/langchain/tools/python-interpreter.md)
+ * [Read File](integrations/langchain/tools/read-file.md)
+ * [Request Get](integrations/langchain/tools/request-get.md)
+ * [Request Post](integrations/langchain/tools/request-post.md)
+ * [Retriever Tool](integrations/langchain/tools/retriever-tool.md)
+ * [SearchApi](integrations/langchain/tools/searchapi.md)
+ * [SearXNG](integrations/langchain/tools/searxng.md)
+ * [Serp API](integrations/langchain/tools/serp-api.md)
+ * [Serper](integrations/langchain/tools/serper.md)
+ * [Tavily](integrations/langchain/tools/tavily-ai.md)
+ * [Web Browser](integrations/langchain/tools/web-browser.md)
+ * [Write File](integrations/langchain/tools/write-file.md)
+ * [Vector Stores](integrations/langchain/vector-stores/README.md)
+ * [AstraDB](integrations/langchain/vector-stores/astradb.md)
+ * [Chroma](integrations/langchain/vector-stores/chroma.md)
+ * [Couchbase](integrations/langchain/vector-stores/couchbase.md)
+ * [Elastic](integrations/langchain/vector-stores/elastic.md)
+ * [Faiss](integrations/langchain/vector-stores/faiss.md)
+ * [In-Memory Vector Store](integrations/langchain/vector-stores/in-memory-vector-store.md)
+ * [Milvus](integrations/langchain/vector-stores/milvus.md)
+ * [MongoDB Atlas](integrations/langchain/vector-stores/mongodb-atlas.md)
+ * [OpenSearch](integrations/langchain/vector-stores/opensearch.md)
+ * [Pinecone](integrations/langchain/vector-stores/pinecone.md)
+ * [Postgres](integrations/langchain/vector-stores/postgres.md)
+ * [Qdrant](integrations/langchain/vector-stores/qdrant.md)
+ * [Redis](integrations/langchain/vector-stores/redis.md)
+ * [SingleStore](integrations/langchain/vector-stores/singlestore.md)
+ * [Supabase](integrations/langchain/vector-stores/supabase.md)
+ * [Upstash Vector](integrations/langchain/vector-stores/upstash-vector.md)
+ * [Vectara](integrations/langchain/vector-stores/vectara.md)
+ * [Weaviate](integrations/langchain/vector-stores/weaviate.md)
+ * [Zep Collection - Open Source](integrations/langchain/vector-stores/zep-collection-open-source.md)
+ * [Zep Collection - Cloud](integrations/langchain/vector-stores/zep-collection-cloud.md)
+ * [LiteLLM Proxy](integrations/litellm/README.md)
+ * [LlamaIndex](integrations/llamaindex/README.md)
+ * [Agents](integrations/llamaindex/agents/README.md)
+ * [OpenAI Tool Agent](integrations/llamaindex/agents/openai-tool-agent.md)
+ * [Anthropic Tool Agent](integrations/llamaindex/agents/openai-tool-agent-1.md)
+ * [Chat Models](integrations/llamaindex/chat-models/README.md)
+ * [AzureChatOpenAI](integrations/llamaindex/chat-models/azurechatopenai.md)
+ * [ChatAnthropic](integrations/llamaindex/chat-models/chatanthropic.md)
+ * [ChatMistral](integrations/llamaindex/chat-models/chatmistral.md)
+ * [ChatOllama](integrations/llamaindex/chat-models/chatollama.md)
+ * [ChatOpenAI](integrations/llamaindex/chat-models/chatopenai.md)
+ * [ChatTogetherAI](integrations/llamaindex/chat-models/chattogetherai.md)
+ * [ChatGroq](integrations/llamaindex/chat-models/chatgroq.md)
+ * [Embeddings](integrations/llamaindex/embeddings/README.md)
+ * [Azure OpenAI Embeddings](integrations/llamaindex/embeddings/azure-openai-embeddings.md)
+ * [OpenAI Embedding](integrations/llamaindex/embeddings/openai-embedding.md)
+ * [Engine](integrations/llamaindex/engine/README.md)
+ * [Query Engine](integrations/llamaindex/engine/query-engine.md)
+ * [Simple Chat Engine](integrations/llamaindex/engine/simple-chat-engine.md)
+ * [Context Chat Engine](integrations/llamaindex/engine/context-chat-engine.md)
+ * [Sub-Question Query Engine](integrations/llamaindex/engine/sub-question-query-engine.md)
+ * [Response Synthesizer](integrations/llamaindex/response-synthesizer/README.md)
+ * [Refine](integrations/llamaindex/response-synthesizer/refine.md)
+ * [Compact And Refine](integrations/llamaindex/response-synthesizer/compact-and-refine.md)
+ * [Simple Response Builder](integrations/llamaindex/response-synthesizer/simple-response-builder.md)
+ * [Tree Summarize](integrations/llamaindex/response-synthesizer/tree-summarize.md)
+ * [Tools](integrations/llamaindex/tools/README.md)
+ * [Query Engine Tool](integrations/llamaindex/tools/query-engine-tool.md)
+ * [Vector Stores](integrations/llamaindex/vector-stores/README.md)
+ * [Pinecone](integrations/llamaindex/vector-stores/pinecone.md)
+ * [SimpleStore](integrations/llamaindex/vector-stores/queryengine-tool.md)
+ * [Utilities](integrations/utilities/README.md)
+ * [Custom JS Function](integrations/utilities/custom-js-function.md)
+ * [Set/Get Variable](integrations/utilities/set-get-variable.md)
+ * [If Else](integrations/utilities/if-else.md)
+ * [Sticky Note](integrations/utilities/sticky-note.md)
+ * [External Integrations](integrations/3rd-party-platform-integration/README.md)
+ * [Zapier Zaps](integrations/3rd-party-platform-integration/zapier-zaps.md)
+ * [Open WebUI](integrations/3rd-party-platform-integration/open-webui.md)
+ * [Streamlit](integrations/3rd-party-platform-integration/streamlit.md)
+* [Migration Guide](migration-guide/README.md)
+ * [Cloud Migration](migration-guide/cloud-migration.md)
+ * [v1.3.0 Migration Guide](migration-guide/v1.3.0-migration-guide.md)
+ * [v1.4.3 Migration Guide](migration-guide/v1.4.3-migration-guide.md)
+ * [v2.1.4 Migration Guide](migration-guide/v2.1.4-migration-guide.md)
+* [Tutorials](tutorials/README.md)
+ * [RAG](tutorials/rag.md)
+ * [Agentic RAG](tutorials/agentic-rag.md)
+ * [SQL Agent](tutorials/sql-agent.md)
+ * [Agent as Tool](tutorials/agent-as-tool.md)
+ * [Interacting with API](tutorials/interacting-with-api.md)
+ * [Tools & MCP](tutorials/tools-and-mcp.md)
+ * [Structured Output](tutorials/structured-output.md)
+ * [Human In The Loop](tutorials/human-in-the-loop.md)
+ * [Deep Research](tutorials/deep-research.md)
+ * [Customer Support](tutorials/customer-support.md)
+ * [Supervisor and Workers](tutorials/supervisor-and-workers.md)
+
+## Flowise
+
+* [Flowise GitHub](https://github.com/FlowiseAI)
+* [Flowise Cloud](https://flowiseai.com/join)
diff --git a/fr/api-reference/README.md b/fr/api-reference/README.md
new file mode 100644
index 00000000..e14d5efc
--- /dev/null
+++ b/fr/api-reference/README.md
@@ -0,0 +1,17 @@
+# Référence API
+
+En utilisant l'API publique de Flowise, vous pouvez exécuter de manière programmatique de nombreuses tâches similaires à celles que vous pouvez réaliser dans l'interface graphique. Cette section présente l'API REST de Flowise.
+
+* [Assistants](assistants.md)
+* [Pièces jointes](attachments.md)
+* [Message de chat](chat-message.md)
+* [Flux de chat](chatflows.md)
+* [Stockage de documents](document-store.md)
+* [Retour d'information](feedback.md)
+* [Prospects](leads.md)
+* [Ping](ping.md)
+* [Prédiction](prediction.md)
+* [Outils](tools.md)
+* [Historique d'Upsert](upsert-history.md)
+* [Variables](variables.md)
+* [Upsert de vecteur](vector-upsert.md)
diff --git a/fr/api-reference/assistants.md b/fr/api-reference/assistants.md
new file mode 100644
index 00000000..37fb8bcc
--- /dev/null
+++ b/fr/api-reference/assistants.md
@@ -0,0 +1,17 @@
+# Assistants
+
+{% openapi-operation spec="flowiseai-api" path="/assistants" method="post" %}
+[Broken link](broken-reference)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/assistants/{id}" method="get" %}
+[Broken link](broken-reference)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/assistants/{id}" method="put" %}
+[Broken link](broken-reference)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/assistants/{id}" method="delete" %}
+[Broken link](broken-reference)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/attachments.md b/fr/api-reference/attachments.md
new file mode 100644
index 00000000..7d821c96
--- /dev/null
+++ b/fr/api-reference/attachments.md
@@ -0,0 +1,5 @@
+# Attachments
+
+{% openapi-operation spec="flowiseai-api" path="/attachments/{chatflowId}/{chatId}" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250622%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250622T114123Z&X-Amz-Expires=172800&X-Amz-Signature=5dd4b3343a1c2a841e205191e3862f26b17fd1af871cb148ed64f6c7ad8048f1&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/chat-message.md b/fr/api-reference/chat-message.md
new file mode 100644
index 00000000..b2e51b45
--- /dev/null
+++ b/fr/api-reference/chat-message.md
@@ -0,0 +1,9 @@
+# Chat Message
+
+{% openapi-operation spec="flowiseai-api" path="/chatmessage/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/chatmessage/{id}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/chatflows.md b/fr/api-reference/chatflows.md
new file mode 100644
index 00000000..41ee4f75
--- /dev/null
+++ b/fr/api-reference/chatflows.md
@@ -0,0 +1,25 @@
+# Chatflows
+
+{% openapi-operation spec="flowiseai-api" path="/chatflows" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/chatflows/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/chatflows/apikey/{apikey}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/chatflows/{id}" method="put" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/chatflows/{id}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/chatflows" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/document-store.md b/fr/api-reference/document-store.md
new file mode 100644
index 00000000..5a0b6a14
--- /dev/null
+++ b/fr/api-reference/document-store.md
@@ -0,0 +1,53 @@
+# Document Store
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/store/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/chunks/{storeId}/{loaderId}/{pageNo}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/store" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/upsert/{id}" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/refresh/{id}" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/vectorstore/query" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/store" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/chunks/{storeId}/{loaderId}/{chunkId}" method="put" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/store/{id}" method="put" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/store/{id}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/chunks/{storeId}/{loaderId}/{chunkId}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/loader/{storeId}/{loaderId}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/document-store/vectorstore/{id}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/feedback.md b/fr/api-reference/feedback.md
new file mode 100644
index 00000000..dda7c9f3
--- /dev/null
+++ b/fr/api-reference/feedback.md
@@ -0,0 +1,13 @@
+# Feedback
+
+{% openapi-operation spec="flowiseai-api" path="/feedback/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/feedback" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/feedback/{id}" method="put" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/leads.md b/fr/api-reference/leads.md
new file mode 100644
index 00000000..ff665259
--- /dev/null
+++ b/fr/api-reference/leads.md
@@ -0,0 +1,9 @@
+# Leads
+
+{% openapi-operation spec="flowiseai-api" path="/leads/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/leads" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/ping.md b/fr/api-reference/ping.md
new file mode 100644
index 00000000..f775a169
--- /dev/null
+++ b/fr/api-reference/ping.md
@@ -0,0 +1,5 @@
+# Ping
+
+{% openapi-operation spec="flowiseai-api" path="/ping" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250622%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250622T114123Z&X-Amz-Expires=172800&X-Amz-Signature=5dd4b3343a1c2a841e205191e3862f26b17fd1af871cb148ed64f6c7ad8048f1&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/prediction.md b/fr/api-reference/prediction.md
new file mode 100644
index 00000000..025fa0c9
--- /dev/null
+++ b/fr/api-reference/prediction.md
@@ -0,0 +1,5 @@
+# Prediction
+
+{% openapi-operation spec="flowiseai-api" path="/prediction/{id}" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250622%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250622T113955Z&X-Amz-Expires=172800&X-Amz-Signature=ebc051053087decf7af1fc246ba6a1cffc92d068f8cb5f3a2f0deef9b8b229c4&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/tools.md b/fr/api-reference/tools.md
new file mode 100644
index 00000000..e1d6f401
--- /dev/null
+++ b/fr/api-reference/tools.md
@@ -0,0 +1,21 @@
+# Tools
+
+{% openapi-operation spec="flowiseai-api" path="/tools" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/tools" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/tools/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/tools/{id}" method="put" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/tools/{id}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/upsert-history.md b/fr/api-reference/upsert-history.md
new file mode 100644
index 00000000..5d1954f2
--- /dev/null
+++ b/fr/api-reference/upsert-history.md
@@ -0,0 +1,9 @@
+# Upsert History
+
+{% openapi-operation spec="flowiseai-api" path="/upsert-history/{id}" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/upsert-history/{id}" method="patch" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/variables.md b/fr/api-reference/variables.md
new file mode 100644
index 00000000..b963ea18
--- /dev/null
+++ b/fr/api-reference/variables.md
@@ -0,0 +1,17 @@
+# Variables
+
+{% openapi-operation spec="flowiseai-api" path="/variables" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/variables" method="get" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/variables/{id}" method="put" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
+
+{% openapi-operation spec="flowiseai-api" path="/variables/{id}" method="delete" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250717%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250717T144327Z&X-Amz-Expires=172800&X-Amz-Signature=b4e9a97d35bf5ed41bad9cb6ac39ae59371100f618dc64f1d01f6adf1f6419a3&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/api-reference/vector-upsert.md b/fr/api-reference/vector-upsert.md
new file mode 100644
index 00000000..a037f851
--- /dev/null
+++ b/fr/api-reference/vector-upsert.md
@@ -0,0 +1,5 @@
+# Vector Upsert
+
+{% openapi-operation spec="flowiseai-api" path="/vector/upsert/{id}" method="post" %}
+[OpenAPI flowiseai-api](https://gitbook-x-prod-openapi.4401d86825a13bf607936cc3a9f3897a.r2.cloudflarestorage.com/raw/238edaa326f0ca4057047699b251f09b359ab0c2a5d5201f7095b100792cf411.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=dce48141f43c0191a2ad043a6888781c%2F20250622%2Fauto%2Fs3%2Faws4_request&X-Amz-Date=20250622T114123Z&X-Amz-Expires=172800&X-Amz-Signature=5dd4b3343a1c2a841e205191e3862f26b17fd1af871cb148ed64f6c7ad8048f1&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)
+{% endopenapi-operation %}
diff --git a/fr/cli-reference/README.md b/fr/cli-reference/README.md
new file mode 100644
index 00000000..6bcdf65e
--- /dev/null
+++ b/fr/cli-reference/README.md
@@ -0,0 +1,5 @@
+# Référence CLI
+
+Avec Flowise CLI, vous pouvez exécuter de manière programmatique de nombreuses tâches identiques à celles que vous pouvez effectuer dans l'interface graphique. Cette section présente l'interface de ligne de commande Flowise.
+
+- [Utilisateur](user.md)
\ No newline at end of file
diff --git a/fr/cli-reference/user.md b/fr/cli-reference/user.md
new file mode 100644
index 00000000..22fff1d0
--- /dev/null
+++ b/fr/cli-reference/user.md
@@ -0,0 +1,58 @@
+# Utilisateur
+
+## Lister les e-mails des utilisateurs
+
+Cette commande vous permet de lister tous les e-mails des utilisateurs enregistrés dans le système.
+
+### Utilisation locale
+
+```bash
+pnpm user
+```
+
+Ou si vous utilisez npm
+
+```bash
+npx flowise user
+```
+
+### Utilisation de Docker
+
+Si vous exécutez Flowise dans un conteneur Docker, utilisez la commande suivante :
+
+```bash
+docker exec -it FLOWISE_CONTAINER_NAME pnpm user
+```
+
+Replace `FLOWISE_CONTAINER_NAME` par le nom réel de votre conteneur Flowise.
+
+## Réinitialiser le mot de passe de l'utilisateur
+
+Cette commande vous permet de réinitialiser le mot de passe d'un utilisateur.
+
+### Utilisation locale
+
+```bash
+pnpm user --email "admin@admin.com" --password "myPassword1!"
+```
+
+Ou si vous utilisez npm
+
+```
+npx flowise user --email "admin@admin.com" --password "myPassword1!"
+```
+
+### Utilisation de Docker
+
+Si vous exécutez Flowise dans un conteneur Docker, utilisez la commande suivante :
+
+```bash
+docker exec -it FLOWISE_CONTAINER_NAME pnpm user --email "admin@admin.com" --password "myPassword1!"
+```
+
+Replacez `FLOWISE_CONTAINER_NAME` par le nom de votre conteneur Flowise.
+
+### Paramètres
+
+* `--email` : L'adresse e-mail de l'utilisateur dont vous souhaitez réinitialiser le mot de passe
+* `--password` : Le nouveau mot de passe à définir pour l'utilisateur
diff --git a/fr/configuration/README.md b/fr/configuration/README.md
new file mode 100644
index 00000000..cca04d4f
--- /dev/null
+++ b/fr/configuration/README.md
@@ -0,0 +1,23 @@
+---
+description: Apprenez à configurer et à exécuter des instances Flowise
+---
+
+# Configuration
+
+***
+
+Cette section vous guidera à travers diverses options de configuration pour personnaliser vos instances Flowise pour les environnements de développement, de test et de production.
+
+Nous fournirons également des guides détaillés pour déployer Flowise sur différentes options de Plateforme en tant que Service (PaaS), garantissant un déploiement fluide et réussi.
+
+## Guides
+
+* [Auth](authorization/)
+* [Databases](databases.md)
+* [Deployment](deployment/)
+* [Environment Variables](environment-variables.md)
+* [Rate Limit](rate-limit.md)
+* [Proxy](running-flowise-behind-company-proxy.md)
+* [SSO](sso.md)
+* [Queue Mode](running-flowise-using-queue.md)
+* [Production Ready](running-in-production.md)
\ No newline at end of file
diff --git a/fr/configuration/authorization/README.md b/fr/configuration/authorization/README.md
new file mode 100644
index 00000000..dfb7cc62
--- /dev/null
+++ b/fr/configuration/authorization/README.md
@@ -0,0 +1,16 @@
+---
+description: Apprenez à sécuriser vos instances Flowise
+---
+
+# Auth
+
+***
+
+Cette section vous guide dans la configuration de la sécurité avec Flowise, en mettant l'accent sur les mécanismes d'authentification au niveau de l'application et des chatflows.
+
+En mettant en œuvre une authentification robuste, vous pouvez protéger vos instances Flowise et garantir que seuls les utilisateurs autorisés peuvent accéder à vos chatflows et interagir avec eux.
+
+## Méthodes prises en charge
+
+* [Niveau application](app-level.md)
+* [Niveau chatflow](chatflow-level.md)
\ No newline at end of file
diff --git a/fr/configuration/authorization/app-level.md b/fr/configuration/authorization/app-level.md
new file mode 100644
index 00000000..121d4f16
--- /dev/null
+++ b/fr/configuration/authorization/app-level.md
@@ -0,0 +1,123 @@
+---
+description: Apprenez à configurer le contrôle d'accès au niveau de l'application pour vos instances Flowise
+---
+
+# Application
+
+***
+
+## Email & Mot de passe
+
+À partir de la version v3.0.1, une nouvelle méthode d'authentification a été introduite. Flowise utilise un [**système d'authentification basé sur Passport.js**](https://www.passportjs.org/) avec des tokens JWT stockés dans des cookies sécurisés HTTP-only. Lorsqu'un utilisateur se connecte, le système valide son email/mot de passe contre la base de données en utilisant une comparaison de hachage bcrypt, puis génère deux tokens JWT : un token d'accès à durée limitée (par défaut 60 minutes) et un token de rafraîchissement à longue durée (par défaut 90 jours). Ces tokens sont stockés en tant que cookies sécurisés. Pour les requêtes suivantes, le système extrait le JWT des cookies, valide la signature et les revendications en utilisant la stratégie JWT de Passport, et vérifie que la session utilisateur existe toujours. Le système prend également en charge le rafraîchissement automatique des tokens lorsque le token d'accès expire, et maintient les sessions en utilisant soit Redis, soit le stockage de base de données selon la configuration.
+
+Pour les utilisateurs existants qui utilisaient [Nom d'utilisateur & Mot de passe (Obsolète)](app-level.md#username-and-password-deprecated), vous devez configurer un nouveau compte administrateur. Pour éviter les revendications de propriété non autorisées, vous devez d'abord vous authentifier en utilisant le nom d'utilisateur et le mot de passe existants configurés comme `FLOWISE_USERNAME` et `FLOWISE_PASSWORD`.
+
+
+
+Les variables d'environnement suivantes peuvent être modifiées :
+
+### URL de l'application
+
+* `APP_URL` - L'URL de votre application Flowise hébergée. Par défaut `http://localhost:3000`
+
+### Configuration des variables d'environnement JWT
+
+Pour configurer les paramètres d'authentification JWT de Flowise, l'utilisateur peut modifier les variables d'environnement suivantes :
+
+* `JWT_AUTH_TOKEN_SECRET` - La clé secrète pour signer les tokens d'accès
+* `JWT_REFRESH_TOKEN_SECRET` - Secret pour les tokens de rafraîchissement (par défaut, utilise le secret du token d'authentification s'il n'est pas défini)
+* `JWT_TOKEN_EXPIRY_IN_MINUTES` - Durée de vie du token d'accès (par défaut : 60 minutes)
+* `JWT_REFRESH_TOKEN_EXPIRY_IN_MINUTES` - Durée de vie du token de rafraîchissement (par défaut : 129 600 minutes ou 90 jours)
+* `JWT_AUDIENCE` - Revendication d'audience pour la validation du token (par défaut : 'AUDIENCE')
+* `JWT_ISSUER` - Revendication d'émetteur pour la validation du token (par défaut : 'ISSUER')
+* `EXPRESS_SESSION_SECRET` - Secret de chiffrement de session (par défaut : 'flowise')
+* `EXPIRE_AUTH_TOKENS_ON_RESTART` - Défini sur 'true' pour invalider tous les tokens au redémarrage du serveur (utile pour le développement)
+
+### Configuration SMTP pour les emails
+
+Configurez ces variables pour activer la fonctionnalité d'email pour les réinitialisations de mot de passe et les notifications :
+
+* `SMTP_HOST` - Le nom d'hôte de votre serveur SMTP (par exemple, `smtp.gmail.com`, `smtp.host.com`)
+* `SMTP_PORT` - Le numéro de port pour la connexion SMTP (valeurs courantes : `587` pour TLS, `465` pour SSL, `25` pour non chiffré)
+* `SMTP_USER` - Nom d'utilisateur pour l'authentification SMTP (généralement votre adresse email)
+* `SMTP_PASSWORD` - Mot de passe ou mot de passe spécifique à l'application pour l'authentification SMTP
+* `SMTP_SECURE` - Défini sur `true` pour le chiffrement SSL/TLS, `false` pour les connexions non chiffrées
+* `ALLOW_UNAUTHORIZED_CERTS` - Défini sur `true` pour autoriser les certificats auto-signés (non recommandé pour la production)
+* `SENDER_EMAIL` - L'adresse email "de" qui apparaîtra sur les emails sortants
+
+### Configuration de la sécurité et des tokens
+
+Ces variables contrôlent la sécurité de l'authentification, l'expiration des tokens et le hachage des mots de passe :
+
+* `PASSWORD_RESET_TOKEN_EXPIRY_IN_MINS` - Temps d'expiration pour les tokens de réinitialisation de mot de passe (par défaut : 15 minutes)
+* `PASSWORD_SALT_HASH_ROUNDS` - Nombre de tours de sel bcrypt pour le hachage des mots de passe (par défaut : 10, plus élevé = plus sécurisé mais plus lent)
+* `TOKEN_HASH_SECRET` - Clé secrète utilisée pour hacher les tokens et les données sensibles (utilisez une chaîne forte et aléatoire)
+
+### Meilleures pratiques de sécurité
+
+* Utilisez des valeurs fortes et uniques pour `TOKEN_HASH_SECRET` et stockez-les en toute sécurité
+* Pour la production, utilisez `SMTP_SECURE=true` et `ALLOW_UNAUTHORIZED_CERTS=false`
+* Définissez des temps d'expiration de token appropriés en fonction de vos exigences de sécurité
+* Utilisez des valeurs plus élevées pour `PASSWORD_SALT_HASH_ROUNDS` (12-15) pour une meilleure sécurité en production
+
+## Nom d'utilisateur et mot de passe (Obsolète)
+
+L'autorisation au niveau de l'application protège votre instance Flowise par un nom d'utilisateur et un mot de passe. Cela empêche vos applications d'être accessibles par quiconque lorsqu'elles sont déployées en ligne.
+
+
+
+### Comment définir un nom d'utilisateur et un mot de passe
+
+#### Npm
+
+1. Installez Flowise
+
+```bash
+npm install -g flowise
+```
+
+2. Démarrer Flowise avec nom d'utilisateur et mot de passe
+
+```bash
+npx flowise start --FLOWISE_USERNAME=user --FLOWISE_PASSWORD=1234
+```
+
+3. Ouvrez [http://localhost:3000](http://localhost:3000)
+
+#### Docker
+
+1. Accédez au dossier `docker`
+
+```
+cd docker
+```
+
+2. Créez un fichier `.env` et spécifiez le `PORT`, le `FLOWISE_USERNAME` et le `FLOWISE_PASSWORD`
+
+```sh
+PORT=3000
+FLOWISE_USERNAME=user
+FLOWISE_PASSWORD=1234
+```
+
+3. Passez `FLOWISE_USERNAME` et `FLOWISE_PASSWORD` au fichier `docker-compose.yml` :
+
+```
+environment:
+ - PORT=${PORT}
+ - FLOWISE_USERNAME=${FLOWISE_USERNAME}
+ - FLOWISE_PASSWORD=${FLOWISE_PASSWORD}
+```
+
+4. `docker compose up -d`
+5. Ouvrez [http://localhost:3000](http://localhost:3000)
+6. Vous pouvez arrêter les conteneurs avec `docker compose stop`
+
+#### Clonage Git
+
+Pour activer l'authentification au niveau de l'application, ajoutez `FLOWISE_USERNAME` et `FLOWISE_PASSWORD` au fichier `.env` dans `packages/server` :
+
+```
+FLOWISE_USERNAME=user
+FLOWISE_PASSWORD=1234
+```
diff --git a/fr/configuration/authorization/chatflow-level.md b/fr/configuration/authorization/chatflow-level.md
new file mode 100644
index 00000000..5083a11d
--- /dev/null
+++ b/fr/configuration/authorization/chatflow-level.md
@@ -0,0 +1,34 @@
+---
+description: Apprenez à configurer le contrôle d'accès au niveau du chatflow pour vos instances Flowise
+---
+
+# Flows
+
+***
+
+Après avoir construit un chatflow / agentflow, par défaut, votre flux est accessible au public. Quiconque ayant accès à l'ID du Chatflow peut exécuter des prédictions via Embed ou API.
+
+Dans les cas où vous souhaitez permettre à certaines personnes d'accéder et d'interagir avec celui-ci, vous pouvez le faire en attribuant une clé API pour ce chatflow spécifique.
+
+## Clé API
+
+Dans le tableau de bord, accédez à la section Clés API, et vous devriez voir une DefaultKey créée. Vous pouvez également ajouter ou supprimer des clés.
+
+
+
+## Chatflow
+
+Accédez au chatflow, et maintenant vous pouvez sélectionner la clé API que vous souhaitez utiliser pour protéger le chatflow.
+
+
+
+Après avoir attribué une clé API, on ne peut accéder à l'API du chatflow que lorsque l'en-tête Authorization est fourni avec la clé API correcte spécifiée lors d'un appel HTTP.
+
+```json
+"Authorization": "Bearer "
+```
+
+Un exemple d'appel de l'API en utilisant POSTMAN
+
+
+
diff --git a/fr/configuration/databases.md b/fr/configuration/databases.md
new file mode 100644
index 00000000..83516e18
--- /dev/null
+++ b/fr/configuration/databases.md
@@ -0,0 +1,136 @@
+---
+description: Apprenez à connecter votre instance Flowise à une base de données
+---
+
+# Bases de données
+
+---
+
+## Configuration
+
+Flowise prend en charge 4 types de bases de données :
+
+- SQLite
+- MySQL
+- PostgreSQL
+- MariaDB
+
+### SQLite (Par défaut)
+
+SQLite sera la base de données par défaut. Ces bases de données peuvent être configurées avec les variables d'environnement suivantes :
+
+```sh
+DATABASE_TYPE=sqlite
+DATABASE_PATH=/root/.flowise #your preferred location
+```
+
+Un fichier `database.sqlite` sera créé et enregistré dans le chemin spécifié par `DATABASE_PATH`. Si aucun chemin n'est spécifié, le chemin de stockage par défaut sera dans votre répertoire personnel -> .flowise
+
+**Remarque :** Si aucune des variables d'environnement n'est spécifiée, SQLite sera le choix de base de données par défaut.
+
+### MySQL
+
+```sh
+DATABASE_TYPE=mysql
+DATABASE_PORT=3306
+DATABASE_HOST=localhost
+DATABASE_NAME=flowise
+DATABASE_USER=user
+DATABASE_PASSWORD=123
+```
+
+### PostgreSQL
+
+```sh
+DATABASE_TYPE=postgres
+DATABASE_PORT=5432
+DATABASE_HOST=localhost
+DATABASE_NAME=flowise
+DATABASE_USER=user
+DATABASE_PASSWORD=123
+PGSSLMODE=require
+```
+
+### MariaDB
+
+```bash
+DATABASE_TYPE="mariadb"
+DATABASE_PORT="3306"
+DATABASE_HOST="localhost"
+DATABASE_NAME="flowise"
+DATABASE_USER="flowise"
+DATABASE_PASSWORD="mypassword"
+```
+
+### Comment utiliser les bases de données Flowise SQLite et MySQL/MariaDB
+
+{% embed url="https://youtu.be/R-6uV1Cb8I8" %}
+
+## Sauvegarde
+
+1. Fermez l'application FlowiseAI.
+2. Assurez-vous que la connexion à la base de données avec d'autres applications est désactivée.
+3. Sauvegardez votre base de données.
+4. Testez la base de données de sauvegarde.
+
+### SQLite
+
+1. Renommez le nom du fichier.
+
+ Windows:
+
+ ```bash
+ rename "DATABASE_PATH\database.sqlite" "DATABASE_PATH\BACKUP_FILE_NAME.sqlite"
+ ```
+
+Linux:
+
+ ```bash
+ mv DATABASE_PATH/database.sqlite DATABASE_PATH/BACKUP_FILE_NAME.sqlite
+ ```
+
+2. Sauvegarder la base de données.
+
+ Windows:
+
+ ```bash
+ copy DATABASE_PATH\BACKUP_FILE_NAME.sqlite DATABASE_PATH\database.sqlite
+ ```
+
+Linux:
+
+ ```bash
+ cp DATABASE_PATH/BACKUP_FILE_NAME.sqlite DATABASE_PATH/database.sqlite
+ ```
+
+3. Tester la base de données de sauvegarde en exécutant Flowise.
+
+### PostgreSQL
+
+1. Sauvegarder la base de données.
+
+ ```bash
+ pg_dump -U USERNAME -h HOST -p PORT -d DATABASE_NAME -f /PATH/TO/BACKUP_FILE_NAME.sql
+ ```
+
+2. Entrez le mot de passe de la base de données.
+3. Créez une base de données de test.
+ ```bash
+ psql -U USERNAME -h HOST -p PORT -d TEST_DATABASE_NAME -f /PATH/TO/BACKUP_FILE_NAME.sql
+ ```
+4. Testez la base de données de sauvegarde en exécutant Flowise avec le fichier `.env` modifié pour pointer vers la base de données de sauvegarde.
+
+### MySQL & MariaDB
+
+1. Base de données de sauvegarde.
+
+ ```bash
+ mysqldump -u USERNAME -p DATABASE_NAME > BACKUP_FILE_NAME.sql
+ ```
+
+2. Entrez le mot de passe de la base de données.
+3. Créez une base de données de test.
+ ```bash
+ mysql -u USERNAME -p TEST_DATABASE_NAME < BACKUP_FILE_NAME.sql
+ ```
+4. Testez la base de données de sauvegarde en exécutant Flowise avec le fichier `.env` modifié pour pointer vers la base de données de sauvegarde.
\ No newline at end of file
diff --git a/fr/configuration/deployment/README.md b/fr/configuration/deployment/README.md
new file mode 100644
index 00000000..ff3ffb65
--- /dev/null
+++ b/fr/configuration/deployment/README.md
@@ -0,0 +1,40 @@
+---
+description: Apprenez à déployer Flowise dans le cloud
+---
+
+# Déploiement
+
+***
+
+Flowise est conçu avec une architecture indépendante de la plateforme, garantissant une compatibilité avec une large gamme d'environnements de déploiement pour répondre à vos besoins d'infrastructure.
+
+## Machine locale
+
+Pour déployer Flowise localement, suivez notre guide [Commencer](../../getting-started/).
+
+## Fournisseurs de cloud modernes
+
+Les plateformes cloud modernes privilégient l'automatisation et se concentrent sur les flux de travail des développeurs, simplifiant ainsi la gestion du cloud et la maintenance continue.
+
+Cela réduit l'expertise technique nécessaire, mais peut limiter le niveau de personnalisation que vous avez sur l'infrastructure sous-jacente.
+
+* [Elestio](https://elest.io/open-source/flowiseai)
+* [Hugging Face](hugging-face.md)
+* [Railway](railway.md)
+* [Render](render.md)
+* [Replit](replit.md)
+* [RepoCloud](https://repocloud.io/details/?app\_id=29)
+* [Sealos](sealos.md)
+* [Zeabur](zeabur.md)
+
+## Fournisseurs de cloud établis
+
+Les fournisseurs de cloud établis, en revanche, nécessitent un niveau d'expertise technique plus élevé pour gérer et optimiser selon vos besoins spécifiques.
+
+Cette complexité, cependant, offre également une plus grande flexibilité et un meilleur contrôle sur votre environnement cloud.
+
+* [AWS](aws.md)
+* [Azure](azure.md)
+* [DigitalOcean](digital-ocean.md)
+* [GCP](gcp.md)
+* [Kubernetes avec Helm](https://artifacthub.io/packages/helm/cowboysysop/flowise)
\ No newline at end of file
diff --git a/fr/configuration/deployment/aws.md b/fr/configuration/deployment/aws.md
new file mode 100644
index 00000000..2d57dc61
--- /dev/null
+++ b/fr/configuration/deployment/aws.md
@@ -0,0 +1,336 @@
+---
+description: Apprenez à déployer Flowise sur AWS
+---
+
+# AWS
+
+***
+
+## Prérequis
+
+Cela nécessite une compréhension de base du fonctionnement d'AWS.
+
+Deux options sont disponibles pour déployer Flowise sur AWS :
+
+* [Déployer sur ECS en utilisant CloudFormation](aws.md#deploy-on-ecs-using-cloudformation)
+* [Configurer manuellement une instance EC2](aws.md#launch-ec2-instance)
+
+## Déployer sur ECS en utilisant CloudFormation
+
+Le modèle CloudFormation est disponible ici : [https://gist.github.com/MrHertal/549b31a18e350b69c7200ae8d26ed691](https://gist.github.com/MrHertal/549b31a18e350b69c7200ae8d26ed691)
+
+Il déploie Flowise sur un cluster ECS exposé via ELB.
+
+Il a été inspiré par cette architecture de référence : [https://github.com/aws-samples/ecs-refarch-cloudformation](https://github.com/aws-samples/ecs-refarch-cloudformation)
+
+N'hésitez pas à modifier ce modèle pour adapter des éléments tels que la version de l'image Flowise, les variables d'environnement, etc.
+
+Exemple de commande pour déployer Flowise en utilisant le [CLI AWS](https://aws.amazon.com/fr/cli/) :
+
+```bash
+aws cloudformation create-stack --stack-name flowise --template-body file://flowise-cloudformation.yml --capabilities CAPABILITY_IAM
+```
+
+Après le déploiement, l'URL de votre application Flowise est disponible dans les sorties de la pile CloudFormation.
+
+## Déployer sur ECS en utilisant Terraform
+
+Les fichiers Terraform (`variables.tf`, `main.tf`) sont disponibles dans ce dépôt GitHub : [terraform-flowise-setup](https://github.com/huiseo/terraform-flowise-setup/tree/main).
+
+Cette configuration déploie Flowise sur un cluster ECS exposé via un Application Load Balancer (ALB). Elle est basée sur les meilleures pratiques AWS pour les déploiements ECS.
+
+Vous pouvez modifier le modèle Terraform pour ajuster :
+
+* La version de l'image Flowise
+* Les variables d'environnement
+* Les configurations des ressources (CPU, mémoire, etc.)
+
+### Exemples de commandes pour le déploiement :
+
+1. **Initialiser Terraform :**
+
+```bash
+terraform init
+terraform apply
+terraform destroy
+```
+```markdown
+## Lancer une instance EC2
+
+1. Dans le tableau de bord EC2, cliquez sur **Lancer une instance**
+
+
+
+2. Faites défiler vers le bas et **Créez une nouvelle paire de clés** si vous n'en avez pas
+
+
+
+3. Remplissez le nom de la paire de clés de votre choix. Pour Windows, nous utiliserons `.ppk` et PuTTY pour nous connecter à l'instance. Pour Mac et Linux, nous utiliserons `.pem` et OpenSSH
+
+
+
+4. Cliquez sur **Créer une paire de clés** et sélectionnez un chemin d'emplacement pour enregistrer le fichier `.ppk`
+5. Ouvrez la barre latérale gauche et ouvrez un nouvel onglet à partir de **Groupes de sécurité**. Ensuite, **Créez un groupe de sécurité**
+
+
+
+6. Remplissez le nom et la description de votre groupe de sécurité. Ensuite, ajoutez ce qui suit aux Règles entrantes et **Créez un groupe de sécurité**
+
+
+
+7. Retournez au premier onglet (Lancer une instance EC2) et faites défiler vers le bas jusqu'à **Paramètres réseau**. Sélectionnez le groupe de sécurité que vous venez de créer
+
+
+
+8. Cliquez sur **Lancer l'instance**. Revenez au tableau de bord EC2, après quelques minutes, nous devrions voir une nouvelle instance opérationnelle [🎉](https://emojipedia.org/party-popper/)
+
+
+
+## Comment se connecter à votre instance (Windows)
+
+1. Pour Windows, nous allons utiliser PuTTY. Vous pouvez le télécharger [ici](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html).
+2. Ouvrez PuTTY et remplissez le **HostName** avec le nom DNS IPv4 public de votre instance
+
+
+
+3. Dans la barre latérale gauche de la configuration de PuTTY, développez **SSH** et cliquez sur **Auth**. Cliquez sur Parcourir et sélectionnez le fichier `.ppk` que vous avez téléchargé précédemment.
+
+
+
+4. Cliquez sur **Ouvrir** et **Acceptez** le message contextuel
+
+
+
+5. Ensuite, connectez-vous en tant que `ec2-user`
+
+
+
+6. Vous êtes maintenant connecté à l'instance EC2
+
+## Comment se connecter à votre instance (Mac et Linux)
+
+1. Ouvrez l'application Terminal sur votre Mac/Linux.
+2. _(Optionnel)_ Modifiez les permissions du fichier de clé privée pour restreindre l'accès :
+``````bash
+chmod 400 /path/to/mykey.pem
+```
+
+3. Utilisez la commande `ssh` pour vous connecter à votre instance EC2, en spécifiant le nom d'utilisateur (`ec2-user`), le DNS public IPv4 et le chemin vers le fichier `.pem`.
+
+```bash
+ssh -i /Users/username/Documents/mykey.pem ec2-user@ec2-123-45-678-910.compute-1.amazonaws.com
+```
+
+4. Appuyez sur Entrée, et si tout est configuré correctement, vous devriez établir avec succès une connexion SSH à votre instance EC2.
+
+## Installer Docker
+
+1. Appliquez les mises à jour en attente en utilisant la commande yum :
+
+```bash
+sudo yum update
+```
+
+2. Recherchez le paquet Docker :
+
+```bash
+sudo yum search docker
+```
+
+3. Obtenez des informations sur la version :
+
+```bash
+sudo yum info docker
+```
+
+4. Installez Docker, exécutez :
+
+```bash
+sudo yum install docker
+```
+
+5. Ajoutez l'appartenance au groupe pour l'utilisateur par défaut ec2-user afin de pouvoir exécuter toutes les commandes docker sans utiliser la commande sudo :
+
+```bash
+sudo usermod -a -G docker ec2-user
+id ec2-user
+newgrp docker
+```
+
+6. Installer docker-compose :
+
+```bash
+sudo yum install docker-compose-plugin
+```
+
+7. Activer le service docker au démarrage de l'AMI :
+
+```bash
+sudo systemctl enable docker.service
+```
+
+8. Démarrez le service Docker :
+
+```bash
+sudo systemctl start docker.service
+```
+
+## Installer Git
+
+```bash
+sudo yum install git -y
+```
+
+## Configuration
+
+1. Clone le dépôt
+
+```bash
+git clone https://github.com/FlowiseAI/Flowise.git
+```
+
+2. Accédez au dossier docker
+
+```bash
+cd Flowise && cd docker
+```
+
+3. Créez un fichier `.env`. Vous pouvez utiliser votre éditeur préféré. J'utiliserai `nano`
+
+```bash
+nano .env
+```
+
+
+
+4. Spécifiez les variables d'environnement :
+
+```sh
+PORT=3000
+DATABASE_PATH=/root/.flowise
+SECRETKEY_PATH=/root/.flowise
+LOG_PATH=/root/.flowise/logs
+BLOB_STORAGE_PATH=/root/.flowise/storage
+```
+
+5. Ensuite, appuyez sur `Ctrl + X` pour quitter, puis sur `Y` pour enregistrer le fichier
+6. Exécutez docker compose
+
+```bash
+docker compose up -d
+```
+
+7. Votre application est maintenant prête à l'adresse DNS IPv4 publique sur le port 3000 :
+
+```
+http://ec2-123-456-789.compute-1.amazonaws.com:3000
+```
+
+8. Vous pouvez fermer l'application en :
+
+```bash
+docker compose stop
+```
+
+9. Vous pouvez récupérer la dernière image en :
+
+```bash
+docker pull flowiseai/flowise
+```
+Voici la traduction en français :
+
+```markdown
+Alternativement :
+``````bash
+docker-compose pull
+docker-compose up --build -d
+```
+
+## Utilisation de NGINX
+
+Si vous souhaitez vous débarrasser du :3000 dans l'URL et avoir un domaine personnalisé, vous pouvez utiliser NGINX pour faire un reverse proxy du port 80 vers 3000. Ainsi, l'utilisateur pourra ouvrir l'application en utilisant votre domaine. Exemple : `http://yourdomain.com`.
+
+1. ```bash
+ sudo yum install nginx
+ ```
+2. ```bash
+ nginx -v
+ ```
+3.
sudo systemctl start nginx
+
+4.
sudo nano /etc/nginx/conf.d/flowise.conf
+
+5. Copiez-collez ce qui suit et modifiez-le avec votre domaine :
+
+```shell
+server {
+ listen 80;
+ listen [::]:80;
+ server_name yourdomain.com; #Example: demo.flowiseai.com
+ location / {
+ proxy_pass http://localhost:3000;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ }
+}
+```
+
+press `Ctrl + X` pour quitter, et `Y` pour enregistrer le fichier
+
+6. ```bash
+ sudo systemctl restart nginx
+ ```
+7. Go to your DNS provider, and add a new A record. Name will be your domain name, and value will be the Public IPv4 address from EC2 instance
+
+
+
+6. You should now be able to open the app: `http://yourdomain.com`.
+
+### Install Certbot to have HTTPS
+
+If you like your app to have `https://yourdomain.com`. Here is how:
+
+1. For installing Certbot and enabling HTTPS on NGINX, we will rely on Python. So, first of all, let's set up a virtual environment:
+
+```bash
+sudo python3 -m venv /opt/certbot/
+sudo /opt/certbot/bin/pip install --upgrade pip
+```
+
+2. Ensuite, exécutez cette commande pour installer Certbot :
+
+```bash
+sudo /opt/certbot/bin/pip install certbot certbot-nginx
+```
+
+3. Maintenant, exécutez la commande suivante pour vous assurer que la commande `certbot` peut être exécutée :
+
+```bash
+sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
+```
+
+4. Enfin, exécutez la commande suivante pour obtenir un certificat et permettre à Certbot de modifier automatiquement la configuration NGINX, activant ainsi HTTPS :
+
+```bash
+sudo certbot --nginx
+```
+
+5. Après avoir suivi l'assistant de génération de certificat, nous pourrons accéder à notre instance EC2 via HTTPS en utilisant l'adresse `https://yourdomain.com`
+
+## Configurer le renouvellement automatique
+
+Pour permettre à Certbot de renouveler automatiquement les certificats, il suffit d'ajouter une tâche cron en exécutant la commande suivante :
+
+```bash
+echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
+```
+
+## Félicitations !
+
+Vous avez réussi à configurer les applications Flowise sur une instance EC2 avec un certificat SSL sur votre domaine[🥳](https://emojipedia.org/partying-face/)
diff --git a/fr/configuration/deployment/azure.md b/fr/configuration/deployment/azure.md
new file mode 100644
index 00000000..9dc80cf9
--- /dev/null
+++ b/fr/configuration/deployment/azure.md
@@ -0,0 +1,601 @@
+---
+description: Apprenez à déployer Flowise sur Azure
+---
+
+# Azure
+
+***
+
+## Flowise en tant que service d'application Azure avec Postgres : Utilisation de Terraform
+
+### Prérequis
+
+1. **Compte Azure** : Assurez-vous d'avoir un compte Azure avec un abonnement actif. Si vous n'en avez pas, inscrivez-vous sur [Azure Portal](https://portal.azure.com/).
+2. **Terraform** : Installez Terraform CLI sur votre machine. Téléchargez-le depuis [le site de Terraform](https://www.terraform.io/downloads.html).
+3. **Azure CLI** : Installez Azure CLI. Les instructions se trouvent sur la [page de documentation d'Azure CLI](https://docs.microsoft.com/en-us/cli/azure/install-azure-cli).
+
+### Configuration de votre environnement
+
+1. **Connexion à Azure** : Ouvrez votre terminal ou votre invite de commande et connectez-vous à Azure CLI en utilisant :
+
+```bash
+az login --tenant --use-device-code
+```
+
+Suivez les instructions pour compléter le processus de connexion.
+
+2. **Configurer l'abonnement** : Après vous être connecté, configurez l'abonnement Azure en utilisant :
+
+```bash
+az account set --subscription
+```
+
+3. **Initialiser Terraform** :
+
+Créez un fichier `terraform.tfvars` dans votre répertoire de projet Terraform, s'il n'est pas déjà présent, et ajoutez le contenu suivant :
+
+```hcl
+subscription_name = "subscrpiton_name"
+subscription_id = "subscription id"
+project_name = "webapp_name"
+db_username = "PostgresUserName"
+db_password = "strongPostgresPassword"
+flowise_secretkey_overwrite = "longandStrongSecretKey"
+webapp_ip_rules = [
+ {
+ name = "AllowedIP"
+ ip_address = "X.X.X.X/32"
+ headers = null
+ virtual_network_subnet_id = null
+ subnet_id = null
+ service_tag = null
+ priority = 300
+ action = "Allow"
+ }
+]
+postgres_ip_rules = {
+ "ValbyOfficeIP" = "X.X.X.X"
+ // Add more key-value pairs as needed
+}
+source_image = "flowiseai/flowise:latest"
+tagged_image = "flow:v1"
+```
+
+Remplacez les espaces réservés par des valeurs réelles pour votre configuration.
+
+La structure de l'arborescence des fichiers est la suivante :
+
+```
+flow
+├── database.tf
+├── main.tf
+├── network.tf
+├── output.tf
+├── providers.tf
+├── terraform.tfvars
+├── terraform.tfvars.example
+├── variables.tf
+├── webapp.tf
+├── .gitignore // ignore your .tfvars and .lock.hcf, .terraform
+
+```
+
+Chaque fichier `.tf` dans la configuration Terraform contient probablement un aspect différent de l'infrastructure en tant que code :
+
+
+
+`database.tf` définirait la configuration pour la base de données Postgres.
+
+```yaml
+
+// database.tf
+
+// Database instance
+resource "azurerm_postgresql_flexible_server" "postgres" {
+ name = "postgresql-${var.project_name}"
+ location = azurerm_resource_group.rg.location
+ resource_group_name = azurerm_resource_group.rg.name
+ sku_name = "GP_Standard_D2s_v3"
+ storage_mb = 32768
+ version = "11"
+ delegated_subnet_id = azurerm_subnet.dbsubnet.id
+ private_dns_zone_id = azurerm_private_dns_zone.postgres.id
+ backup_retention_days = 7
+ geo_redundant_backup_enabled = false
+ auto_grow_enabled = false
+ administrator_login = var.db_username
+ administrator_password = var.db_password
+ zone = "2"
+
+ lifecycle {
+ prevent_destroy = false
+ }
+}
+
+// Firewall
+resource "azurerm_postgresql_flexible_server_firewall_rule" "pg_firewall" {
+ for_each = var.postgres_ip_rules
+ name = each.key
+ server_id = azurerm_postgresql_flexible_server.postgres.id
+ start_ip_address = each.value
+ end_ip_address = each.value
+}
+
+// Database
+resource "azurerm_postgresql_flexible_server_database" "production" {
+ name = "production"
+ server_id = azurerm_postgresql_flexible_server.postgres.id
+ charset = "UTF8"
+ collation = "en_US.utf8"
+
+ # prevent the possibility of accidental data loss
+ lifecycle {
+ prevent_destroy = false
+ }
+}
+
+// Transport off
+resource "azurerm_postgresql_flexible_server_configuration" "postgres_config" {
+ name = "require_secure_transport"
+ server_id = azurerm_postgresql_flexible_server.postgres.id
+ value = "off"
+}
+```
+
+
+
+
+
+Le fichier `main.tf` pourrait être le fichier de configuration principal qui inclut la configuration du fournisseur Azure et définit le groupe de ressources Azure.
+
+```yaml
+// main.tf
+resource "random_string" "resource_code" {
+ length = 5
+ special = false
+ upper = false
+}
+
+// resource group
+resource "azurerm_resource_group" "rg" {
+ location = var.resource_group_location
+ name = "rg-${var.project_name}"
+}
+
+// Storage Account
+resource "azurerm_storage_account" "sa" {
+ name = "${var.subscription_name}${random_string.resource_code.result}"
+ resource_group_name = azurerm_resource_group.rg.name
+ location = azurerm_resource_group.rg.location
+ account_tier = "Standard"
+ account_replication_type = "LRS"
+
+ blob_properties {
+ versioning_enabled = true
+ }
+
+}
+
+// File share
+resource "azurerm_storage_share" "flowise-share" {
+ name = "flowise"
+ storage_account_name = azurerm_storage_account.sa.name
+ quota = 50
+}
+
+```
+
+
+
+
+
+`network.tf` inclurait des ressources réseau telles que des réseaux virtuels, des sous-réseaux et des groupes de sécurité réseau.
+
+```yaml
+// network.tf
+
+// Vnet
+resource "azurerm_virtual_network" "vnet" {
+ name = "vn-${var.project_name}"
+ location = azurerm_resource_group.rg.location
+ resource_group_name = azurerm_resource_group.rg.name
+ address_space = ["10.3.0.0/16"]
+}
+
+resource "azurerm_subnet" "dbsubnet" {
+ name = "db-subnet-${var.project_name}"
+ resource_group_name = azurerm_resource_group.rg.name
+ virtual_network_name = azurerm_virtual_network.vnet.name
+ address_prefixes = ["10.3.1.0/24"]
+ private_endpoint_network_policies_enabled = true
+ delegation {
+ name = "delegation"
+ service_delegation {
+ name = "Microsoft.DBforPostgreSQL/flexibleServers"
+ }
+ }
+ lifecycle {
+ ignore_changes = [
+ service_endpoints,
+ delegation
+ ]
+ }
+}
+
+resource "azurerm_subnet" "webappsubnet" {
+
+ name = "web-app-subnet-${var.project_name}"
+ resource_group_name = azurerm_resource_group.rg.name
+ virtual_network_name = azurerm_virtual_network.vnet.name
+ address_prefixes = ["10.3.8.0/24"]
+
+ delegation {
+ name = "delegation"
+ service_delegation {
+ name = "Microsoft.Web/serverFarms"
+ }
+ }
+ lifecycle {
+ ignore_changes = [
+ delegation
+ ]
+ }
+}
+
+resource "azurerm_private_dns_zone" "postgres" {
+ name = "private.postgres.database.azure.com"
+ resource_group_name = azurerm_resource_group.rg.name
+}
+
+resource "azurerm_private_dns_zone_virtual_network_link" "postgres" {
+ name = "private-postgres-vnet-link"
+ resource_group_name = azurerm_resource_group.rg.name
+ private_dns_zone_name = azurerm_private_dns_zone.postgres.name
+ virtual_network_id = azurerm_virtual_network.vnet.id
+}
+
+```
+
+
+
+
+
+Le fichier `providers.tf` définirait les fournisseurs Terraform, tels qu'Azure.
+
+```yaml
+// providers.tf
+terraform {
+ required_version = ">=0.12"
+
+ required_providers {
+ azurerm = {
+ source = "hashicorp/azurerm"
+ version = "=3.87.0"
+ }
+ random = {
+ source = "hashicorp/random"
+ version = "~>3.0"
+ }
+ }
+}
+
+provider "azurerm" {
+ subscription_id = var.subscription_id
+ features {}
+}
+```
+
+
+
+
+
+`variables.tf` déclarera les variables utilisées dans tous les fichiers `.tf`.
+
+```yaml
+// variables.tf
+variable "resource_group_location" {
+ default = "westeurope"
+ description = "Location of the resource group."
+}
+
+variable "container_rg_name" {
+ default = "acrllm"
+ description = "Name of container regrestry."
+}
+
+variable "subscription_id" {
+ type = string
+ sensitive = true
+ description = "Service Subscription ID"
+}
+
+variable "subscription_name" {
+ type = string
+ description = "Service Subscription Name"
+}
+
+
+variable "project_name" {
+ type = string
+ description = "Project Name"
+}
+
+variable "db_username" {
+ type = string
+ description = "DB User Name"
+}
+
+variable "db_password" {
+ type = string
+ sensitive = true
+ description = "DB Password"
+}
+
+variable "flowise_secretkey_overwrite" {
+ type = string
+ sensitive = true
+ description = "Flowise secret key"
+}
+
+variable "webapp_ip_rules" {
+ type = list(object({
+ name = string
+ ip_address = string
+ headers = string
+ virtual_network_subnet_id = string
+ subnet_id = string
+ service_tag = string
+ priority = number
+ action = string
+ }))
+}
+
+variable "postgres_ip_rules" {
+ description = "A map of IP addresses and their corresponding names for firewall rules"
+ type = map(string)
+ default = {}
+}
+
+variable "flowise_image" {
+ type = string
+ description = "Flowise image from Docker Hub"
+}
+
+variable "tagged_image" {
+ type = string
+ description = "Tag for flowise image version"
+}
+```
+
+
+
+
+
+`webapp.tf` Services d'application Azure incluant un plan de service et une application web Linux
+
+```yaml
+// webapp.tf
+#Create the Linux App Service Plan
+resource "azurerm_service_plan" "webappsp" {
+ name = "asp${var.project_name}"
+ resource_group_name = azurerm_resource_group.rg.name
+ location = azurerm_resource_group.rg.location
+ os_type = "Linux"
+ sku_name = "P3v3"
+}
+
+resource "azurerm_linux_web_app" "webapp" {
+ name = var.project_name
+ resource_group_name = azurerm_resource_group.rg.name
+ location = azurerm_resource_group.rg.location
+ service_plan_id = azurerm_service_plan.webappsp.id
+
+ app_settings = {
+ DOCKER_ENABLE_CI = true
+ WEBSITES_CONTAINER_START_TIME_LIMIT = 1800
+ WEBSITES_ENABLE_APP_SERVICE_STORAGE = false
+ DATABASE_TYPE = "postgres"
+ DATABASE_HOST = azurerm_postgresql_flexible_server.postgres.fqdn
+ DATABASE_NAME = azurerm_postgresql_flexible_server_database.production.name
+ DATABASE_USER = azurerm_postgresql_flexible_server.postgres.administrator_login
+ DATABASE_PASSWORD = azurerm_postgresql_flexible_server.postgres.administrator_password
+ DATABASE_PORT = 5432
+ FLOWISE_SECRETKEY_OVERWRITE = var.flowise_secretkey_overwrite
+ PORT = 3000
+ SECRETKEY_PATH = "/root"
+ DOCKER_IMAGE_TAG = var.tagged_image
+ }
+
+ storage_account {
+ name = "${var.project_name}_mount"
+ access_key = azurerm_storage_account.sa.primary_access_key
+ account_name = azurerm_storage_account.sa.name
+ share_name = azurerm_storage_share.flowise-share.name
+ type = "AzureFiles"
+ mount_path = "/root"
+ }
+
+
+ https_only = true
+
+ site_config {
+ always_on = true
+ vnet_route_all_enabled = true
+ dynamic "ip_restriction" {
+ for_each = var.webapp_ip_rules
+ content {
+ name = ip_restriction.value.name
+ ip_address = ip_restriction.value.ip_address
+ }
+ }
+ application_stack {
+ docker_image_name = var.flowise_image
+ docker_registry_url = "https://${azurerm_container_registry.acr.login_server}"
+ docker_registry_username = azurerm_container_registry.acr.admin_username
+ docker_registry_password = azurerm_container_registry.acr.admin_password
+ }
+ }
+
+ logs {
+ http_logs {
+ file_system {
+ retention_in_days = 7
+ retention_in_mb = 35
+ }
+
+ }
+ }
+
+ identity {
+ type = "SystemAssigned"
+ }
+
+ lifecycle {
+ create_before_destroy = false
+
+ ignore_changes = [
+ virtual_network_subnet_id
+ ]
+ }
+
+}
+
+resource "azurerm_app_service_virtual_network_swift_connection" "webappvnetintegrationconnection" {
+ app_service_id = azurerm_linux_web_app.webapp.id
+ subnet_id = azurerm_subnet.webappsubnet.id
+
+ depends_on = [azurerm_linux_web_app.webapp, azurerm_subnet.webappsubnet]
+}
+
+```
+
+
+
+Note : Le répertoire `.terraform` est créé par Terraform lors de l'initialisation d'un projet (`terraform init`) et il contient les plugins et fichiers binaires nécessaires au bon fonctionnement de Terraform. Le fichier `.terraform.lock.hcl` est utilisé pour enregistrer les versions exactes des fournisseurs qui sont utilisées afin d'assurer des installations cohérentes sur différentes machines.
+
+Naviguez vers votre répertoire de projet Terraform et exécutez :
+
+```bash
+terraform init
+```
+
+This will initialize Terraform and download the required providers.
+
+### Configurer les variables Terraform
+
+### Déployer avec Terraform
+
+1. **Planifier le déploiement** : Exécutez la commande Terraform plan pour voir quels ressources seront créées :
+
+ ```bash
+ terraform plan
+ ```
+2. **Appliquer le déploiement** : Si vous êtes satisfait du plan, appliquez les modifications :
+
+ ```bash
+ terraform apply
+ ```
+
+ Confirmez l'action lorsqu'on vous le demande, et Terraform commencera à créer les ressources.
+3. **Vérifier le déploiement** : Une fois que Terraform a terminé, il affichera toutes les sorties définies telles que les adresses IP ou les noms de domaine. Vérifiez que les ressources sont correctement déployées dans votre portail Azure.
+
+***
+
+## Instance de Conteneur Azure : Utilisation de l'interface utilisateur du portail Azure ou de l'Azure CLI
+
+### Prérequis
+
+1. _(Optionnel)_ [Installer l'Azure CLI](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) si vous souhaitez suivre les commandes basées sur la CLI
+
+## Créer une instance de conteneur sans stockage persistant
+
+Sans stockage persistant, vos données sont conservées en mémoire. Cela signifie qu'après un redémarrage du conteneur, toutes les données que vous avez stockées disparaîtront.
+
+### Dans le portail
+
+1. Recherchez les instances de conteneur dans le Marketplace et cliquez sur Créer :
+
+
Entrée des instances de conteneur dans le Marketplace d'Azure
+
+2. Sélectionnez ou créez un groupe de ressources, un nom de conteneur, une région, une source d'image `Autre registre`, un type d'image, l'image `flowiseai/flowise`, le type de système d'exploitation et la taille. Cliquez ensuite sur "Suivant : Réseau" pour configurer les ports Flowise :
+
+
Première page de l'assistant de création d'instance de conteneur
+
+3. Ajoutez un nouveau port `3000 (TCP)` à côté du port par défaut `80 (TCP)`. Sélectionnez ensuite "Suivant : Avancé" :
+
+
Deuxième page de l'assistant de création d'instance de conteneur. Elle demande le type de réseau et les ports.
+
+4. Définissez la politique de redémarrage sur `En cas d'échec`. Ajoutez l'override de commande `["/bin/sh", "-c", "flowise start"]`. Cliquez enfin sur "Vérifier + créer" :
+
+
Troisième page de l'assistant de création d'instance de conteneur. Elle demande la politique de redémarrage, les variables d'environnement et la commande à exécuter au démarrage du conteneur.
+
+5. Vérifiez les paramètres finaux et cliquez sur "Créer" :
+
+
Page de révision finale et de création pour une instance de conteneur.
+
+6. Une fois la création terminée, cliquez sur "Accéder à la ressource"
+
+
Page de résultat de création de ressource dans Azure.
+
+7. Visitez votre instance Flowise en copiant l'adresse IP et en ajoutant :3000 comme port :
+
+
Page d'aperçu de l'instance de conteneur
+
+
Application Flowise déployée en tant qu'instance de conteneur
+
+### Créer en utilisant l'Azure CLI
+
+1. Créez un groupe de ressources (si vous n'en avez pas déjà un)
+
+```bash
+az group create --name flowise-rg --location "West US"
+```
+
+2. Créez une instance de conteneur
+
+```bash
+az container create -g flowise-rg \
+ --name flowise \
+ --image flowiseai/flowise \
+ --command-line "/bin/sh -c 'flowise start'" \
+ --ip-address public \
+ --ports 80 3000 \
+ --restart-policy OnFailure
+```
+
+3. Visitez l'adresse IP (y compris le port :3000) affichée dans la sortie de la commande ci-dessus.
+
+## Créer une instance de conteneur avec stockage persistant
+
+La création d'une instance de conteneur avec stockage persistant n'est possible que via la CLI :
+
+1. Créez un groupe de ressources (si vous n'en avez pas déjà un)
+
+```bash
+az group create --name flowise-rg --location "West US"
+```
+```markdown
+2. Créez la ressource de compte de stockage (ou utilisez un compte existant) dans le groupe de ressources ci-dessus. Vous pouvez vérifier comment le faire [ici](https://learn.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-portal?tabs=azure-portal).
+3. Dans Azure Storage, créez un nouveau partage de fichiers. Vous pouvez vérifier comment le faire [ici](https://learn.microsoft.com/en-us/azure/storage/files/storage-how-to-use-files-portal?tabs=azure-portal).
+4. Créez une instance de conteneur
+``````bash
+az container create -g flowise-rg \
+ --name flowise \
+ --image flowiseai/flowise \
+ --command-line "/bin/sh -c 'flowise start'" \
+ --environment-variables DATABASE_PATH=/opt/flowise/.flowise SECRETKEY_PATH=/opt/flowise/.flowise LOG_PATH=/opt/flowise/.flowise/logs BLOB_STORAGE_PATH=/opt/flowise/.flowise/storage \
+ --ip-address public \
+ --ports 80 3000 \
+ --restart-policy OnFailure \
+ --azure-file-volume-share-name here goes the name of your File share \
+ --azure-file-volume-account-name here goes the name of your Storage Account \
+ --azure-file-volume-account-key here goes the access key to your Storage Account \
+ --azure-file-volume-mount-path /opt/flowise/.flowise
+```
+
+5. Visitez l'adresse IP (y compris le port :3000) affichée dans la sortie de la commande ci-dessus.
+6. À partir de maintenant, vos données seront stockées dans une base de données SQLite que vous pouvez trouver dans votre partage de fichiers.
+
+Regardez le tutoriel vidéo sur le déploiement sur Azure Container Instance :
+
+{% embed url="https://www.youtube.com/watch?v=yDebxDfn2yk" %}
diff --git a/fr/configuration/deployment/digital-ocean.md b/fr/configuration/deployment/digital-ocean.md
new file mode 100644
index 00000000..d1bdfc66
--- /dev/null
+++ b/fr/configuration/deployment/digital-ocean.md
@@ -0,0 +1,281 @@
+---
+description: Apprenez à déployer Flowise sur Digital Ocean
+---
+
+# Digital Ocean
+
+***
+
+## Créer un Droplet
+
+Dans cette section, nous allons créer un Droplet. Pour plus d'informations, consultez le [guide officiel](https://docs.digitalocean.com/products/droplets/quickstart/).
+
+1. Tout d'abord, cliquez sur **Droplets** dans le menu déroulant
+
+
+
+2. Sélectionnez la région de données et un type de Droplet Basique à 6 $/mois
+
+
+
+3. Sélectionnez la méthode d'authentification. Dans cet exemple, nous allons utiliser un mot de passe
+
+
+
+4. Après un moment, vous devriez voir votre Droplet créé avec succès
+
+
+
+## Comment se connecter à votre Droplet
+
+Pour Windows, suivez ce [guide](https://docs.digitalocean.com/products/droplets/how-to/connect-with-ssh/putty/).
+
+Pour Mac/Linux, suivez ce [guide](https://docs.digitalocean.com/products/droplets/how-to/connect-with-ssh/openssh/).
+
+## Installer Docker
+
+1. ```
+ curl -fsSL https://get.docker.com -o get-docker.sh ```
+2. ```
+ sudo sh get-docker.sh
+ ```
+3. Installer docker-compose :
+
+```
+sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
+```
+
+4. Définir les autorisations :
+
+```
+sudo chmod +x /usr/local/bin/docker-compose
+```
+
+## Configuration
+
+1. Clone le dépôt
+
+```
+git clone https://github.com/FlowiseAI/Flowise.git
+```
+
+2. Accédez au dossier docker
+
+```bash
+cd Flowise && cd docker
+```
+
+3. Créez un fichier `.env`. Vous pouvez utiliser votre éditeur préféré. J'utiliserai `nano`
+
+```bash
+nano .env
+```
+
+
+
+4. Spécifiez les variables d'environnement :
+
+```sh
+PORT=3000
+DATABASE_PATH=/root/.flowise
+SECRETKEY_PATH=/root/.flowise
+LOG_PATH=/root/.flowise/logs
+BLOB_STORAGE_PATH=/root/.flowise/storage
+```
+
+5. Ensuite, appuyez sur `Ctrl + X` pour quitter, puis sur `Y` pour enregistrer le fichier
+6. Exécutez docker compose
+
+```bash
+docker compose up -d
+```
+
+7. Vous pouvez ensuite visualiser l'application : "Votre DNS IPv4 public" :3000. Exemple : `176.63.19.226:3000`
+8. Vous pouvez arrêter l'application en :
+
+```bash
+docker compose stop
+```
+
+9. Vous pouvez récupérer la dernière image en :
+
+```bash
+docker pull flowiseai/flowise
+```
+
+## Ajout d'un Proxy Inverse & SSL
+
+Un proxy inverse est la méthode recommandée pour exposer un serveur d'application à Internet. Il nous permettra de nous connecter à notre droplet en utilisant uniquement une URL au lieu de l'adresse IP du serveur et du numéro de port. Cela offre des avantages en matière de sécurité en isolant le serveur d'application de l'accès direct à Internet, la possibilité de centraliser la protection du pare-feu, un plan d'attaque minimisé pour les menaces courantes telles que les attaques par déni de service, et surtout pour nos besoins, la capacité de terminer le chiffrement SSL/TLS à un seul endroit.
+
+> A lack of SSL on your Droplet will cause the embeddable widget and API endpoints to be inaccessible in modern browsers. This is because browsers have begun to deprecate HTTP in favor of HTTPS, and block HTTP requests from pages loaded over HTTPS.
+
+### Étape 1 — Installation de Nginx
+
+1. Nginx est disponible pour installation avec apt via les dépôts par défaut. Mettez à jour votre index de dépôts, puis installez Nginx :
+
+```bash
+sudo apt update
+sudo apt install nginx
+```
+
+> Press Y to confirm the installation. If you are asked to restart services, press ENTER to accept the defaults.
+
+```markdown
+2. Vous devez autoriser l'accès à Nginx via votre pare-feu. Après avoir configuré votre serveur selon les prérequis initiaux, ajoutez la règle suivante avec ufw :
+```
+
+```bash
+sudo ufw allow 'Nginx HTTP'
+```
+
+3. Maintenant, vous pouvez vérifier que Nginx fonctionne :
+
+```bash
+systemctl status nginx
+```
+
+Sure, please provide the Markdown chunk you would like me to translate into French.
+
+```bash
+● nginx.service - A high performance web server and a reverse proxy server
+ Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
+ Active: active (running) since Mon 2022-08-29 06:52:46 UTC; 39min ago
+ Docs: man:nginx(8)
+ Main PID: 9919 (nginx)
+ Tasks: 2 (limit: 2327)
+ Memory: 2.9M
+ CPU: 50ms
+ CGroup: /system.slice/nginx.service
+ ├─9919 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
+ └─9920 "nginx: worker process
+```
+
+Next you will add a custom server block with your domain and app server proxy.
+
+### Étape 2 — Configuration de votre bloc serveur + enregistrement DNS
+
+Il est recommandé de créer un fichier de configuration personnalisé pour vos nouvelles additions de bloc serveur, plutôt que de modifier directement la configuration par défaut.
+
+1. Créez et ouvrez un nouveau fichier de configuration Nginx en utilisant nano ou votre éditeur de texte préféré :
+
+```bash
+sudo nano /etc/nginx/sites-available/your_domain
+```
+
+2. Insérez ce qui suit dans votre nouveau fichier, en veillant à remplacer `your_domain` par le nom de votre propre domaine :
+
+```
+server {
+ listen 80;
+ listen [::]:80;
+ server_name your_domain; #Example: demo.flowiseai.com
+ location / {
+ proxy_pass http://localhost:3000;
+ proxy_http_version 1.1;
+ proxy_set_header Host $host;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_set_header Connection 'upgrade';
+ proxy_cache_bypass $http_upgrade;
+ }
+}
+```
+
+3. Enregistrez et quittez, avec `nano` vous pouvez le faire en appuyant sur `CTRL+O` puis `CTRL+X`.
+4. Ensuite, activez ce fichier de configuration en créant un lien depuis celui-ci vers le répertoire sites-enabled que Nginx lit au démarrage, en vous assurant encore une fois de remplacer `your_domain` par votre propre nom de domaine :
+
+```bash
+sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
+```
+
+5. Vous pouvez maintenant tester votre fichier de configuration pour détecter des erreurs de syntaxe :
+
+```bash
+sudo nginx -t
+```
+
+6. Sans problèmes signalés, redémarrez Nginx pour appliquer vos modifications :
+
+```bash
+sudo systemctl restart nginx
+```
+
+7. Allez chez votre fournisseur DNS et ajoutez un nouvel enregistrement A. Le nom sera votre nom de domaine, et la valeur sera l'adresse IPv4 publique de votre droplet.
+
+
+
+Nginx est maintenant configuré comme un proxy inverse pour votre serveur d'application. Vous devriez maintenant pouvoir ouvrir l'application : http://yourdomain.com.
+
+### Étape 3 — Installation de Certbot pour HTTPS (SSL)
+
+Si vous souhaitez ajouter une connexion sécurisée `https` à votre Droplet comme https://yourdomain.com, vous devrez faire ce qui suit :
+
+1. Pour installer Certbot et activer HTTPS sur NGINX, nous allons nous appuyer sur Python. Donc, tout d'abord, configurons un environnement virtuel :
+
+```bash
+apt install python3.10-venv
+sudo python3 -m venv /opt/certbot/
+sudo /opt/certbot/bin/pip install --upgrade pip
+```
+
+2. Ensuite, exécutez cette commande pour installer Certbot :
+
+```bash
+sudo /opt/certbot/bin/pip install certbot certbot-nginx
+```
+
+3. Maintenant, exécutez la commande suivante pour vous assurer que la commande `certbot` peut être exécutée :
+
+```bash
+sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
+```
+
+4. Enfin, exécutez la commande suivante pour obtenir un certificat et permettre à Certbot de modifier automatiquement la configuration NGINX, activant ainsi HTTPS :
+
+```bash
+sudo certbot --nginx
+```
+
+5. Après avoir suivi l'assistant de génération de certificat, nous pourrons accéder à notre Droplet via HTTPS en utilisant l'adresse https://yourdomain.com
+
+### Configurer le renouvellement automatique
+
+Pour permettre à Certbot de renouveler automatiquement les certificats, il suffit d'ajouter une tâche cron en exécutant la commande suivante :
+
+```bash
+echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
+```
+
+## Félicitations !
+
+Vous avez réussi à configurer Flowise sur votre Droplet, avec un certificat SSL sur votre domaine [🥳](https://emojipedia.org/partying-face/)
+
+## Étapes pour mettre à jour Flowise sur Digital Ocean
+
+1. Accédez au répertoire dans lequel vous avez installé flowise
+
+```bash
+cd Flowise/docker
+```
+
+2. Arrêter et supprimer l'image docker
+
+Remarque : Cela ne supprimera pas vos flux car la base de données est stockée dans un dossier séparé
+
+```bash
+sudo docker compose stop
+sudo docker compose rm
+```
+
+3. Récupérez la dernière image Flowise
+
+Vous pouvez consulter la dernière version publiée [ici](https://github.com/FlowiseAI/Flowise/releases)
+
+```bash
+docker pull flowiseai/flowise
+```
+
+4. Démarrer le docker
+
+```bash
+docker compose up -d
+```
diff --git a/fr/configuration/deployment/gcp.md b/fr/configuration/deployment/gcp.md
new file mode 100644
index 00000000..a78fad2b
--- /dev/null
+++ b/fr/configuration/deployment/gcp.md
@@ -0,0 +1,194 @@
+---
+description: Apprenez à déployer Flowise sur GCP
+---
+
+# GCP
+
+***
+
+## Prérequis
+
+1. Notez votre Google Cloud \[ProjectId]
+2. Installez [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
+3. Installez le [Google Cloud CLI](https://cloud.google.com/sdk/docs/install-sdk)
+4. Installez [Docker Desktop](https://docs.docker.com/desktop/)
+
+## Configuration du Cluster Kubernetes
+
+1. Créez un Cluster Kubernetes si vous n'en avez pas.
+
+
Cliquez sur `Clusters` pour en créer un.
+
+2. Nommez le Cluster, choisissez le bon emplacement des ressources, utilisez le mode `Autopilot` et conservez toutes les autres configurations par défaut.
+3. Une fois le Cluster créé, cliquez sur le menu 'Connecter' dans le menu des actions.
+
+
+
+4. Copiez la commande et collez-la dans votre terminal, puis appuyez sur entrée pour connecter votre cluster.
+5. Exécutez la commande ci-dessous et sélectionnez le bon nom de contexte, qui ressemble à `gke_[ProjectId]_[DataCenter]_[ClusterName]`
+
+```
+kubectl config get-contexts
+```
+
+6. Définir le contexte actuel
+
+```
+kubectl config use-context gke_[ProjectId]_[DataCenter]_[ClusterName]
+```
+
+## Construire et pousser l'image Docker
+
+Exécutez les commandes suivantes pour construire et pousser l'image Docker vers le registre de conteneurs GCP.
+
+1. Clonez Flowise
+
+```
+git clone https://github.com/FlowiseAI/Flowise.git
+```
+
+2. Construire le Flowise
+
+```
+cd Flowise
+pnpm install
+pnpm build
+```
+
+3. Mettez à jour légèrement le fichier `Dockerfile`.
+
+> Specify the platform of nodejs
+>
+> ```
+> FROM --platform=linux/amd64 node:18-alpine
+> ```
+>
+> Add python3, make and g++ to install
+>
+> ```
+> RUN apk add --no-cache python3 make g++
+> ```
+
+3. Construire en tant qu'image Docker, assurez-vous que l'application Docker Desktop est en cours d'exécution
+
+```
+docker build -t gcr.io/[ProjectId]/flowise:dev .
+```
+
+4. Poussez l'image Docker vers le registre de conteneurs GCP.
+
+```
+docker push gcr.io/[ProjectId]/flowise:dev
+```
+
+## Déploiement sur GCP
+
+1. Créez un dossier racine `yamls` dans le projet.
+2. Ajoutez le fichier `deployment.yaml` dans ce dossier.
+
+```
+# deployment.yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: flowise
+ labels:
+ app: flowise
+spec:
+ selector:
+ matchLabels:
+ app: flowise
+ replicas: 1
+ template:
+ metadata:
+ labels:
+ app: flowise
+ spec:
+ containers:
+ - name: flowise
+ image: gcr.io/[ProjectID]/flowise:dev
+ imagePullPolicy: Always
+ resources:
+ requests:
+ cpu: "1"
+ memory: "1Gi"
+```
+
+3. Ajoutez le fichier `service.yaml` dans ce dossier.
+
+```
+# service.yaml
+apiVersion: "v1"
+kind: "Service"
+metadata:
+ name: "flowise-service"
+ namespace: "default"
+ labels:
+ app: "flowise"
+spec:
+ ports:
+ - protocol: "TCP"
+ port: 80
+ targetPort: 3000
+ selector:
+ app: "flowise"
+ type: "LoadBalancer"
+
+```
+
+It ressemblera à ce qui suit.
+
+
+
+4. Déployez les fichiers yaml en exécutant les commandes suivantes.
+
+```
+kubectl apply -f yamls/deployment.yaml
+kubectl apply -f yamls/service.yaml
+```
+
+5. Allez dans `Workloads` dans le GCP, vous pouvez voir que votre pod est en cours d'exécution.
+
+
+
+6. Allez dans `Services & Ingress`, vous pouvez cliquer sur le `Endpoint` où Flowise est hébergé.
+
+
+
+## Félicitations !
+
+Vous avez réussi à héberger les applications Flowise sur GCP [🥳](https://emojipedia.org/partying-face/)
+
+## Délai d'attente
+
+Par défaut, un délai d'attente de 30 secondes est attribué au proxy par GCP. Cela a causé des problèmes lorsque la réponse prenait plus de 30 secondes pour revenir. Pour résoudre ce problème, apportez les modifications suivantes aux fichiers YAML :
+
+Remarque : Pour définir le délai d'attente à 10 minutes (par exemple) -- nous spécifions 600 secondes ci-dessous.
+
+1. Créez un fichier `backendconfig.yaml` avec le contenu suivant :
+
+```yaml
+apiVersion: cloud.google.com/v1
+kind: BackendConfig
+metadata:
+ name: flowise-backendconfig
+ namespace: your-namespace
+spec:
+ timeoutSec: 600
+```
+
+2. Problème : `kubectl apply -f backendconfig.yaml`
+3. Mettez à jour votre fichier `service.yaml` avec la référence suivante au `BackendConfig` :
+
+```yaml
+apiVersion: v1
+kind: Service
+metadata:
+ annotations:
+ cloud.google.com/backend-config: '{"default": "flowise-backendconfig"}'
+ name: flowise-service
+ namespace: your-namespace
+...
+```
+
+4. Problème : `kubectl apply -f service.yaml`
diff --git a/fr/configuration/deployment/hugging-face.md b/fr/configuration/deployment/hugging-face.md
new file mode 100644
index 00000000..e82f1e54
--- /dev/null
+++ b/fr/configuration/deployment/hugging-face.md
@@ -0,0 +1,63 @@
+---
+description: Apprenez à déployer Flowise sur Hugging Face
+---
+
+# Hugging Face
+
+***
+
+### Créer un nouvel espace
+
+1. Connectez-vous à [Hugging Face](https://huggingface.co/login)
+2. Commencez à créer un [nouvel espace](https://huggingface.co/new-space) avec le nom de votre choix.
+3. Sélectionnez **Docker** comme **SDK de l'espace** et choisissez **Vide** comme modèle Docker.
+4. Sélectionnez **CPU de base ∙ 2 vCPU ∙ 16 Go ∙ GRATUIT** comme **matériel de l'espace**.
+5. Cliquez sur **Créer l'espace**.
+
+### Définir les variables d'environnement
+
+1. Allez dans **Paramètres** de votre nouvel espace et trouvez la section **Variables et Secrets**
+2. Cliquez sur **Nouvelle variable** et ajoutez le nom `PORT` avec la valeur `7860`
+3. Cliquez sur **Sauvegarder**
+4. _(Optionnel)_ Cliquez sur **Nouveau secret**
+5. _(Optionnel)_ Remplissez avec vos variables d'environnement, telles que les identifiants de base de données, les chemins de fichiers, etc. Vous pouvez vérifier les champs valides dans le fichier `.env.example` [ici](https://github.com/FlowiseAI/Flowise/blob/main/docker/.env.example)
+
+### Créer un Dockerfile
+
+1. Dans l'onglet des fichiers, cliquez sur le bouton _**+ Ajouter un fichier**_ et cliquez sur **Créer un nouveau fichier** (ou téléchargez des fichiers si vous préférez)
+2. Créez un fichier appelé **Dockerfile** et collez ce qui suit :
+
+```Dockerfile
+FROM node:18-alpine
+USER root
+
+# Arguments that can be passed at build time
+ARG FLOWISE_PATH=/usr/local/lib/node_modules/flowise
+ARG BASE_PATH=/root/.flowise
+ARG DATABASE_PATH=$BASE_PATH
+ARG SECRETKEY_PATH=$BASE_PATH
+ARG LOG_PATH=$BASE_PATH/logs
+ARG BLOB_STORAGE_PATH=$BASE_PATH/storage
+
+# Install dependencies
+RUN apk add --no-cache git python3 py3-pip make g++ build-base cairo-dev pango-dev chromium
+
+ENV PUPPETEER_SKIP_DOWNLOAD=true
+ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium-browser
+
+# Install Flowise globally
+RUN npm install -g flowise
+
+# Configure Flowise directories using the ARG
+RUN mkdir -p $LOG_PATH $FLOWISE_PATH/uploads && chmod -R 777 $LOG_PATH $FLOWISE_PATH
+
+WORKDIR /data
+
+CMD ["npx", "flowise", "start"]
+```
+
+3. Cliquez sur **Valider le fichier dans `main`** et cela commencera à construire votre application.
+
+### Terminé 🎉
+
+Lorsque la construction est terminée, vous pouvez cliquer sur l'onglet **Application** pour voir votre application en cours d'exécution.
diff --git a/fr/configuration/deployment/railway.md b/fr/configuration/deployment/railway.md
new file mode 100644
index 00000000..982e875f
--- /dev/null
+++ b/fr/configuration/deployment/railway.md
@@ -0,0 +1,49 @@
+---
+description: Apprenez à déployer Flowise sur Railway
+---
+
+# Railway
+
+***
+
+1. Cliquez sur le [modèle](https://railway.app/template/pn4G8S?referralCode=WVNPD9) préconstruit suivant
+2. Cliquez sur Déployer maintenant
+
+
+
+3. Changez le nom du dépôt selon votre préférence et cliquez sur Déployer
+
+
+
+4. Si cela réussit, vous devriez voir une URL déployée
+
+
+
+5. Pour ajouter une autorisation, allez dans l'onglet Variables et ajoutez :
+
+* FLOWISE\_USERNAME
+* FLOWISE\_PASSWORD
+
+
+
+6. Il existe une liste de variables d'environnement que vous pouvez configurer. Consultez [environment-variables.md](../environment-variables.md "mention")
+
+C'est tout ! Vous avez maintenant un Flowise déployé sur Railway [🎉](https://emojipedia.org/party-popper/)[🎉](https://emojipedia.org/party-popper/)
+
+## Volume Persistant
+
+Le système de fichiers par défaut pour les services fonctionnant sur Railway est éphémère. Les données de Flowise ne sont pas conservées entre les déploiements et les redémarrages. Pour résoudre ce problème, nous pouvons utiliser [Railway Volume](https://docs.railway.app/reference/volumes).
+
+Pour simplifier les étapes, nous avons un modèle Railway avec volume monté : [https://railway.app/template/nEGbjR](https://railway.app/template/nEGbjR)
+
+Il suffit de cliquer sur Déployer et de remplir les variables d'environnement comme ci-dessous :
+
+* DATABASE\_PATH - `/opt/railway/.flowise`
+* APIKEY\_PATH - `/opt/railway/.flowise`
+* LOG\_PATH - `/opt/railway/.flowise/logs`
+* SECRETKEY\_PATH - `/opt/railway/.flowise`
+* BLOB\_STORAGE\_PATH - `/opt/railway/.flowise/storage`
+
+
+
+Essayez maintenant de créer un flux et de l'enregistrer dans Flowise. Ensuite, essayez de redémarrer le service ou de redéployer, vous devriez toujours voir le flux que vous avez enregistré précédemment.
\ No newline at end of file
diff --git a/fr/configuration/deployment/render.md b/fr/configuration/deployment/render.md
new file mode 100644
index 00000000..c8222fdb
--- /dev/null
+++ b/fr/configuration/deployment/render.md
@@ -0,0 +1,83 @@
+---
+description: Apprenez à déployer Flowise sur Render
+---
+
+# Render
+
+***
+
+1. Forkez le [dépôt officiel de Flowise](https://github.com/FlowiseAI/Flowise)
+2. Visitez votre profil GitHub pour vous assurer que vous avez bien effectué un fork
+3. Connectez-vous à [Render](https://dashboard.render.com)
+4. Cliquez sur **Nouveau +**
+
+
+
+5. Sélectionnez **Service Web**
+
+
+
+6. Connectez votre compte GitHub
+7. Sélectionnez votre dépôt Flowise forké et cliquez sur **Connecter**
+
+
+
+8. Remplissez votre **Nom** et **Région** préférés.
+9. Sélectionnez `Docker` comme votre **Runtime**
+
+
+
+9. Sélectionnez une **Instance**
+
+
+
+10. _(Optionnel)_ Ajoutez une autorisation au niveau de l'application, cliquez sur **Avancé** et ajoutez `Variable d'environnement`
+
+* FLOWISE\_USERNAME
+* FLOWISE\_PASSWORD
+
+
+
+Ajoutez `NODE_VERSION` avec la valeur `18.18.1` comme version de node pour exécuter l'instance.
+
+Il y a une liste de variables d'environnement que vous pouvez configurer. Consultez [environment-variables.md](../environment-variables.md "mention")
+
+11. Cliquez sur **Créer un service web**
+
+
+
+12. Accédez à l'URL déployée et c'est tout [🚀](https://emojipedia.org/rocket/)[🚀](https://emojipedia.org/rocket/)
+
+
+
+## Disque Persistant
+
+Le système de fichiers par défaut pour les services fonctionnant sur Render est éphémère. Les données de Flowise ne sont pas conservées entre les déploiements et les redémarrages. Pour résoudre ce problème, nous pouvons utiliser [Render Disk](https://render.com/docs/disks).
+
+1. Dans la barre latérale gauche, cliquez sur **Disques**
+2. Nommez votre disque et spécifiez le **Chemin de montage** à `/opt/render/.flowise`
+
+
+
+3. Cliquez sur la section **Environnement**, et ajoutez ces nouvelles variables d'environnement :
+
+* HOST - `0.0.0.0`
+* DATABASE\_PATH - `/opt/render/.flowise`
+* APIKEY\_PATH - `/opt/render/.flowise`
+* LOG\_PATH - `/opt/render/.flowise/logs`
+* SECRETKEY\_PATH - `/opt/render/.flowise`
+* BLOB\_STORAGE\_PATH - `/opt/render/.flowise/storage`
+
+
+
+4. Cliquez sur **Déploiement manuel** puis sélectionnez **Effacer le cache de construction et déployer**
+
+
+
+5. Essayez maintenant de créer un flux et de l'enregistrer dans Flowise. Ensuite, essayez de redémarrer le service ou de redéployer, vous devriez toujours pouvoir voir le flux que vous avez enregistré précédemment.
+
+Regardez comment déployer sur Render
+
+{% embed url="https://youtu.be/Fxyc6-frgrI" %}
+
+{% embed url="https://youtu.be/l-0NzOMeCco" %}
\ No newline at end of file
diff --git a/fr/configuration/deployment/replit.md b/fr/configuration/deployment/replit.md
new file mode 100644
index 00000000..5402dea1
--- /dev/null
+++ b/fr/configuration/deployment/replit.md
@@ -0,0 +1,42 @@
+---
+description: Apprenez à déployer Flowise sur Replit
+---
+
+# Replit
+
+***
+
+1. Connectez-vous à [Replit](https://replit.com/~)
+2. Créez un nouveau **Repl**. Sélectionnez **Node.js** comme modèle et remplissez votre **Titre** préféré.
+
+
+
+3. Après la création d'un nouveau Repl, dans la barre latérale gauche, cliquez sur Secret :
+
+
+
+4. Créez 3 Secrets pour ignorer le téléchargement de Chromium pour les bibliothèques Puppeteer et Playwright.
+
+
Secrets
Valeur
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD
1
PUPPETEER_SKIP_DOWNLOAD
true
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD
true
+
+
+
+5. Vous pouvez maintenant passer à l'onglet Shell
+
+
+
+6. Tapez `npm install -g flowise` dans la fenêtre du terminal Shell. Si vous rencontrez une erreur concernant une version de node incompatible, utilisez la commande suivante `yarn global add flowise --ignore-engines`
+
+
+
+7. Ensuite, suivez avec `npx flowise start`
+
+
+
+8. Vous devriez maintenant pouvoir voir Flowise sur Replit !
+
+
+
+9. Vous verrez maintenant une page de connexion. Connectez-vous simplement avec le nom d'utilisateur et le mot de passe que vous avez définis.
+
+
\ No newline at end of file
diff --git a/fr/configuration/deployment/sealos.md b/fr/configuration/deployment/sealos.md
new file mode 100644
index 00000000..15ca4b5a
--- /dev/null
+++ b/fr/configuration/deployment/sealos.md
@@ -0,0 +1,36 @@
+---
+description: Apprenez à déployer Flowise sur Sealos
+---
+
+# Sealos
+
+***
+
+1. Cliquez sur le [modèle](https://template.sealos.io/deploy?templateName=flowise) préconstruit ci-dessous ou sur le bouton ci-dessous.
+
+[](https://template.sealos.io/deploy?templateName=flowise)
+
+2. Ajoutez l'autorisation
+ * FLOWISE\_USERNAME
+ * FLOWISE\_PASSWORD
+
+
+
+3. Cliquez sur "Déployer l'application" sur la page du modèle pour commencer le déploiement.
+4. Une fois le déploiement terminé, cliquez sur "Détails" pour accéder aux détails de l'application.
+
+
+
+5. Attendez que le statut de l'application passe à "en cours d'exécution". Ensuite, cliquez sur le lien externe pour ouvrir l'interface Web de l'application directement via le domaine externe.
+
+
+
+## Volume Persistant
+
+Cliquez sur "Mettre à jour" en haut à droite de la page des détails de l'application, puis cliquez sur "Avancé" -> "Ajouter un volume", remplissez la valeur du "chemin de montage" : `/root/.flowise`.
+
+
+
+Pour terminer, cliquez sur le bouton "Déployer".
+
+Essayez maintenant de créer un flux et de l'enregistrer dans Flowise. Ensuite, essayez de redémarrer le service ou de redéployer, vous devriez toujours pouvoir voir le flux que vous avez enregistré précédemment.
\ No newline at end of file
diff --git a/fr/configuration/deployment/zeabur.md b/fr/configuration/deployment/zeabur.md
new file mode 100644
index 00000000..52a47d21
--- /dev/null
+++ b/fr/configuration/deployment/zeabur.md
@@ -0,0 +1,42 @@
+---
+description: Apprenez à déployer Flowise sur Zeabur
+---
+
+# Zeabur
+
+***
+
+{% hint style="warning" %}
+Veuillez noter que le modèle suivant créé par Zeabur est obsolète (du 2024-01-24).
+{% endhint %}
+
+1. Cliquez sur le [modèle](https://zeabur.com/templates/2JYZTR) préconstruit ci-dessous ou sur le bouton ci-dessous.
+
+[](https://zeabur.com/templates/2JYZTR)
+
+2. Cliquez sur Déployer
+
+
+
+3. Sélectionnez votre région préférée et continuez
+
+
+
+4. Vous serez redirigé vers le tableau de bord de Zeabur et vous verrez le processus de déploiement
+
+
+
+5. Pour ajouter une autorisation, allez dans l'onglet Variables et ajoutez :
+
+* FLOWISE\_USERNAME
+* FLOWISE\_PASSWORD
+
+
+
+6. Il existe une liste de variables d'environnement que vous pouvez configurer. Consultez [environment-variables.md](../environment-variables.md "mention")
+
+C'est tout ! Vous avez maintenant déployé Flowise sur Zeabur [🎉](https://emojipedia.org/party-popper/)[🎉](https://emojipedia.org/party-popper/)
+
+## Volume Persistant
+
+Zeabur créera automatiquement un volume persistant pour vous, donc vous n'avez pas à vous en soucier.
\ No newline at end of file
diff --git a/fr/configuration/environment-variables.md b/fr/configuration/environment-variables.md
new file mode 100644
index 00000000..c2f0f8bc
--- /dev/null
+++ b/fr/configuration/environment-variables.md
@@ -0,0 +1,201 @@
+---
+description: Learn how to configure environment variables for Flowise
+---
+
+# Environment Variables
+
+Flowise support different environment variables to configure your instance. You can specify the following variables in the `.env` file inside `packages/server` folder. Refer to [.env.example](https://github.com/FlowiseAI/Flowise/blob/main/packages/server/.env.example) file.
+
+
Variable
Description
Type
Default
PORT
The HTTP port Flowise runs on
Number
3000
FLOWISE_FILE_SIZE_LIMIT
Maximum file size when uploading
String
50mb
NUMBER_OF_PROXIES
Rate Limit Proxy
Number
CORS_ORIGINS
The allowed origins for all cross-origin HTTP calls
String
IFRAME_ORIGINS
The allowed origins for iframe src embedding
String
SHOW_COMMUNITY_NODES
Display nodes that are created by community
Boolean: true or false
DISABLED_NODES
Comma separated list of node names to disable
String
+
+## For Database
+
+| Variable | Description | Type | Default |
+| ------------------ | ---------------------------------------------------------------- | ------------------------------------------ | ------------------------ |
+| DATABASE\_TYPE | Type of database to store the flowise data | Enum String: `sqlite`, `mysql`, `postgres` | `sqlite` |
+| DATABASE\_PATH | Location where database is saved (When DATABASE\_TYPE is sqlite) | String | `your-home-dir/.flowise` |
+| DATABASE\_HOST | Host URL or IP address (When DATABASE\_TYPE is not sqlite) | String | |
+| DATABASE\_PORT | Database port (When DATABASE\_TYPE is not sqlite) | String | |
+| DATABASE\_USER | Database username (When DATABASE\_TYPE is not sqlite) | String | |
+| DATABASE\_PASSWORD | Database password (When DATABASE\_TYPE is not sqlite) | String | |
+| DATABASE\_NAME | Database name (When DATABASE\_TYPE is not sqlite) | String | |
+| DATABASE\_SSL | Database SSL is required (When DATABASE\_TYPE is not sqlite) | Boolean: `true` or `false` | `false` |
+
+## For Storage
+
+Flowise store the following files under a local path folder by default.
+
+* Files uploaded on [Document Loaders](../integrations/langchain/document-loaders/)/Document Store
+* Image/Audio uploads from chat
+* Images/Files from Assistant
+* Files from [Vector Upsert API](broken-reference)
+
+User can specify `STORAGE_TYPE` to use AWS S3, Google Cloud Storage or local path
+
+| Variable | Description | Type | Default |
+| -------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------- | -------------------------------- |
+| STORAGE\_TYPE | Type of storage for uploaded files. default is `local` | Enum String: `s3`, `gcs`, `local` | `local` |
+| BLOB\_STORAGE\_PATH | Local folder path where uploaded files are stored when `STORAGE_TYPE` is `local` | String | `your-home-dir/.flowise/storage` |
+| S3\_STORAGE\_BUCKET\_NAME | Bucket name to hold the uploaded files when `STORAGE_TYPE` is `s3` | String | |
+| S3\_STORAGE\_ACCESS\_KEY\_ID | AWS Access Key | String | |
+| S3\_STORAGE\_SECRET\_ACCESS\_KEY | AWS Secret Key | String | |
+| S3\_STORAGE\_REGION | Region for S3 bucket | String | |
+| S3\_ENDPOINT\_URL | Custom S3 endpoint (optional) | String | |
+| S3\_FORCE\_PATH\_STYLE | Force S3 path style (optional) | Boolean | false |
+| GOOGLE\_CLOUD\_STORAGE\_CREDENTIAL | Google Cloud Service Account Key | String | |
+| GOOGLE\_CLOUD\_STORAGE\_PROJ\_ID | Google Cloud Project ID | String | |
+| GOOGLE\_CLOUD\_STORAGE\_BUCKET\_NAME | Google Cloud Storage Bucket Name | String | |
+| GOOGLE\_CLOUD\_UNIFORM\_BUCKET\_ACCESS | Type of Access | Boolean | true |
+
+## For Debugging and Logs
+
+| Variable | Description | Type | |
+| ---------- | ----------------------------------- | ------------------------------------------------ | ------------------------------ |
+| DEBUG | Print logs from components | Boolean | |
+| LOG\_PATH | Location where log files are stored | String | `Flowise/packages/server/logs` |
+| LOG\_LEVEL | Different levels of logs | Enum String: `error`, `info`, `verbose`, `debug` | `info` |
+
+`DEBUG`: if set to true, will print logs to terminal/console:
+
+
+
+`LOG_LEVEL`: Different log levels for loggers to be saved. Can be `error`, `info`, `verbose`, or `debug.` By default it is set to `info,` only `logger.info` will be saved to the log files. If you want to have complete details, set to `debug`.
+
+
server-requests.log.jsonl - logs every request sent to Flowise
+
+
server.log - logs general actions on Flowise
+
+
server-error.log - logs error with stack trace
+
+### Logs Streaming S3
+
+When `STORAGE_TYPE` env variable is set to `s3` , logs will be automatically streamed and stored to S3. New log file will be created hourly, enabling easier debugging.
+
+### Logs Streaming GCS
+
+When `STORAGE_TYPE` env variable is set to `gcs` , logs will be automatically streamed to Google [Cloud Logging](https://cloud.google.com/logging?hl=en).
+
+## For Credentials
+
+Flowise store your third party API keys as encrypted credentials using an encryption key.
+
+By default, a random encryption key will be generated when starting up the application and stored under a file path. This encryption key is then retrieved everytime to decrypt the credentials used within a chatflow. For example, your OpenAI API key, Pinecone API key, etc.
+
+You can configure to use AWS Secret Manager to store the encryption key instead.
+
+| Variable | Description | Type | Default |
+| ----------------------------- | ----------------------------------------------------- | --------------------------- | ------------------------- |
+| SECRETKEY\_STORAGE\_TYPE | How to store the encryption key | Enum String: `local`, `aws` | `local` |
+| SECRETKEY\_PATH | Local file path where encryption key is saved | String | `Flowise/packages/server` |
+| FLOWISE\_SECRETKEY\_OVERWRITE | Encryption key to be used instead of the existing key | String | |
+| SECRETKEY\_AWS\_ACCESS\_KEY | | String | |
+| SECRETKEY\_AWS\_SECRET\_KEY | | String | |
+| SECRETKEY\_AWS\_REGION | | String | |
+
+For some reasons, sometimes encryption key might be re-generated or the stored path was changed, this will cause errors like - Credentials could not be decrypted.
+
+To avoid this, you can set your own encryption key as `FLOWISE_SECRETKEY_OVERWRITE`, so that the same encryption key will be used everytime. There is no restriction on the format, you can set it as any text that you want, or the same as your `FLOWISE_PASSWORD`.
+
+
+
+{% hint style="info" %}
+Credential API Key returned from the UI is not the same length as your original Api Key that you have set. This is a fake prefix string that prevents network spoofing, that's why we are not returning the Api Key back to UI. However, the correct Api Key will be retrieved and used during your interaction with the chatflow.
+{% endhint %}
+
+## For Models
+
+In some cases, you might want to use custom model on the existing Chat Model and LLM nodes, or restrict access to only certain models.
+
+By default, Flowise pulls the model list from [here](https://github.com/FlowiseAI/Flowise/blob/main/packages/components/models.json). However user can create their own `models.json` file and specify the file path:
+
+
Variable
Description
Type
Default
MODEL_LIST_CONFIG_JSON
Link to load list of models from your models.json config file
+
+## For Built-In and External Dependencies
+
+There are certain nodes/features within Flowise that allow user to run Javascript code. For security reasons, by default it only allow certain dependencies. It's possible to lift that restriction for built-in and external modules by setting the following environment variables:
+
+
Variable
Description
TOOL_FUNCTION_BUILTIN_DEP
NodeJS built-in modules to be used
String
TOOL_FUNCTION_EXTERNAL_DEP
External modules to be used
String
ALLOW_BUILTIN_DEP
Allow project dependencies to be used such as cheerio, typeorm
Boolean
+
+{% code title=".env" %}
+```bash
+# Allows usage of all builtin modules
+TOOL_FUNCTION_BUILTIN_DEP=*
+
+# Allows usage of only fs
+TOOL_FUNCTION_BUILTIN_DEP=fs
+
+# Allows usage of only crypto and fs
+TOOL_FUNCTION_BUILTIN_DEP=crypto,fs
+
+# Allow usage of external npm modules.
+TOOL_FUNCTION_EXTERNAL_DEP=cheerio,typeorm
+
+ALLOW_BUILTIN_DEP=true
+```
+{% endcode %}
+
+### NodeVM Execution Error: VMError: Cannot find module
+
+If you are using library that is not allowed by default, you can either:
+
+1. Allow all project's [libraries/dependencies](https://github.com/FlowiseAI/Flowise/blob/main/packages/components/src/utils.ts#L52): `ALLOW_BUILTIN_DEP=true`
+2. (Recommended) Specifically allow certain libraries/dependencies: `TOOL_FUNCTION_EXTERNAL_DEP=cheerio,typeorm`
+
+## Security Configuration
+
+
Variable
Description
Options
Default
HTTP_DENY_LIST
Blocks HTTP requests to specified URLs or domains in MCP servers
Comma-separated URLs/domains
(empty)
CUSTOM_MCP_SECURITY_CHECK
Enables comprehensive security validation for Custom MCP configurations
true | false
true
CUSTOM_MCP_PROTOCOL
Sets the default protocol for Custom MCP communication
stdio | sse
stdio
+
+#### `CUSTOM_MCP_SECURITY_CHECK=true`
+
+By default, this is enabled. When enabled, applies the following security validations:
+
+* **Command Allowlist**: Only permits safe commands (`node`, `npx`, `python`, `python3`, `docker`)
+* **Argument Validation**: Blocks dangerous file paths, directory traversal, and executable files
+* **Injection Prevention**: Prevents shell metacharacters and command chaining
+* **Environment Protection**: Blocks modification of critical environment variables (PATH, LD\_LIBRARY\_PATH)
+
+#### `CUSTOM_MCP_PROTOCOL`
+
+* **`stdio`**: Direct process communication (default, requires command execution)
+* **`sse`**: Server-Sent Events over HTTP (recommended for production, more secure)
+
+### Recommended Production Settings
+
+```bash
+# Enable security validation (default)
+CUSTOM_MCP_SECURITY_CHECK=true
+
+# Use SSE protocol for better security
+CUSTOM_MCP_PROTOCOL=sse
+
+# Block dangerous domains (example)
+HTTP_DENY_LIST=localhost,127.0.0.1,internal.company.com
+```
+
+> **Warning**: Disabling `CUSTOM_MCP_SECURITY_CHECK` allows arbitrary command execution and poses significant security risks in production environments.
+
+## Examples of how to set environment variables
+
+### NPM
+
+You can set all these variables when running Flowise using npx. For example:
+
+```
+npx flowise start --PORT=3000 --DEBUG=true
+```
+
+### Docker
+
+```
+docker run -d -p 5678:5678 flowise \
+ -e DATABASE_TYPE=postgresdb \
+ -e DATABASE_PORT= \
+ -e DATABASE_HOST= \
+ -e DATABASE_NAME= \
+ -e DATABASE_USER= \
+ -e DATABASE_PASSWORD= \
+```
+
+### Docker Compose
+
+You can set all these variables in the `.env` file inside `docker` folder. Refer to [.env.example](https://github.com/FlowiseAI/Flowise/blob/main/docker/.env.example) file.
diff --git a/fr/configuration/rate-limit.md b/fr/configuration/rate-limit.md
new file mode 100644
index 00000000..cee605d2
--- /dev/null
+++ b/fr/configuration/rate-limit.md
@@ -0,0 +1,31 @@
+---
+description: Apprenez à gérer les demandes d'API dans Flowise
+---
+
+# Limite de Taux
+
+***
+
+Lorsque vous partagez votre chatflow publiquement sans autorisation API via l'API ou le chat intégré, n'importe qui peut accéder au flux. Pour éviter le spam, vous pouvez définir la limite de taux sur votre chatflow.
+
+
+
+* **Limite de Messages par Durée** : Combien de messages peuvent être reçus dans une durée spécifique. Ex : 20
+* **Durée en Secondes** : La durée spécifiée. Ex : 60
+* **Message de Limite** : Quel message retourner lorsque la limite est dépassée. Ex : Quota Dépassé
+
+En utilisant l'exemple ci-dessus, cela signifie que seulement 20 messages peuvent être reçus en 60 secondes. La limitation de taux est suivie par adresse IP. Si vous avez déployé Flowise sur un service cloud, vous devrez définir la variable d'environnement `NUMBER_OF_PROXIES`.
+
+## Configuration de la Limite de Taux
+
+Lorsque vous hébergez Flowise sur un cloud tel qu'AWS, GCP, Azure, etc., il est probable que vous soyez derrière un proxy/équilibreur de charge. Par conséquent, la limite de taux pourrait ne pas fonctionner. Plus d'infos peuvent être trouvées [ici](https://github.com/express-rate-limit/express-rate-limit/wiki/Troubleshooting-Proxy-Issues).
+
+Pour résoudre le problème :
+
+1. **Définir la Variable d'Environnement :** Créez une variable d'environnement nommée `NUMBER_OF_PROXIES` et définissez sa valeur à `0` dans votre environnement d'hébergement.
+2. **Redémarrez votre instance Flowise hébergée :** Cela permet à Flowise d'appliquer les modifications des variables d'environnement.
+3. **Vérifiez l'Adresse IP :** Pour vérifier l'adresse IP, accédez à l'URL suivante : `{{hosted_url}}/api/v1/ip`. Vous pouvez le faire en entrant l'URL dans votre navigateur ou en effectuant une requête API.
+4. **Comparer l'Adresse IP** Après avoir effectué la requête, comparez l'adresse IP retournée avec votre adresse IP actuelle. Vous pouvez trouver votre adresse IP actuelle en visitant l'un de ces sites :
+ * [http://ip.nfriedly.com/](http://ip.nfriedly.com/)
+ * [https://api.ipify.org/](https://api.ipify.org/)
+5. **Adresse IP Incorrecte :** Si l'adresse IP retournée ne correspond pas à votre adresse IP actuelle, augmentez `NUMBER_OF_PROXIES` de 1 et redémarrez votre instance Flowise. Répétez ce processus jusqu'à ce que l'adresse IP corresponde à la vôtre.
\ No newline at end of file
diff --git a/fr/configuration/running-flowise-behind-company-proxy.md b/fr/configuration/running-flowise-behind-company-proxy.md
new file mode 100644
index 00000000..d55806a0
--- /dev/null
+++ b/fr/configuration/running-flowise-behind-company-proxy.md
@@ -0,0 +1,19 @@
+# Exécuter Flowise derrière un proxy d'entreprise
+
+Si vous exécutez Flowise dans un environnement qui nécessite un proxy, comme au sein d'un réseau organisationnel, vous pouvez configurer Flowise pour acheminer toutes ses requêtes backend via un proxy de votre choix. Cette fonctionnalité est alimentée par le package `global-agent`.
+
+[https://github.com/gajus/global-agent](https://github.com/gajus/global-agent)
+
+## Configuration
+
+Il y a 2 variables d'environnement dont vous aurez besoin pour exécuter Flowise derrière un proxy d'entreprise :
+
+| Variable | Objectif | Requis |
+| -------------------------- | -------------------------------------------------------------------------------- | -------- |
+| `GLOBAL_AGENT_HTTP_PROXY` | Où acheminer toutes les requêtes HTTP du serveur | Oui |
+| `GLOBAL_AGENT_HTTPS_PROXY` | Où acheminer toutes les requêtes HTTPS du serveur | Non |
+| `GLOBAL_AGENT_NO_PROXY` | Un motif d'URLs qui doivent être exclues du proxy. Par exemple, `*.foo.com,baz.com` | Non |
+
+## Liste blanche des connexions sortantes
+
+Pour le plan entreprise, vous devez autoriser plusieurs connexions sortantes pour la vérification de licence. Veuillez contacter support@flowiseai.com pour plus d'informations.
\ No newline at end of file
diff --git a/fr/configuration/running-flowise-using-queue.md b/fr/configuration/running-flowise-using-queue.md
new file mode 100644
index 00000000..0d8b3e8f
--- /dev/null
+++ b/fr/configuration/running-flowise-using-queue.md
@@ -0,0 +1,201 @@
+# Exécution de Flowise en mode Queue
+
+Par défaut, Flowise s'exécute dans un thread principal NodeJS. Cependant, avec un grand nombre de prédictions, cela ne s'adapte pas bien. Il existe donc 2 modes que vous pouvez configurer : `main` (par défaut) et `queue`.
+
+## Mode Queue
+
+Avec les variables d'environnement suivantes, vous pouvez exécuter Flowise en mode `queue`.
+
+
Variable
Description
Type
Par défaut
MODE
Mode d'exécution de Flowise
Enum String : main, queue
main
WORKER_CONCURRENCY
Nombre de tâches autorisées à être traitées en parallèle pour un travailleur. Si vous avez 1 travailleur, cela signifie combien de tâches de prédiction simultanées il peut gérer. Plus d'infos
Nombre
10000
QUEUE_NAME
Le nom de la file de messages
String
flowise-queue
QUEUE_REDIS_EVENT_STREAM_MAX_LEN
Le flux d'événements est automatiquement réduit afin que sa taille ne croisse pas trop. Plus d'infos
+
+En mode `queue`, le serveur principal sera responsable du traitement des demandes, en envoyant des tâches à la file de messages. Le serveur principal n'exécutera pas la tâche. Un ou plusieurs travailleurs reçoivent des tâches de la file, les exécutent et renvoient les résultats.
+
+Cela permet une mise à l'échelle dynamique : vous pouvez ajouter des travailleurs pour gérer des charges de travail accrues ou les retirer pendant les périodes plus légères.
+
+Voici comment cela fonctionne :
+
+1. Le serveur principal reçoit des demandes de prédiction ou d'autres demandes du web, les ajoutant comme tâches à la file.
+2. Ces files de tâches sont des listes essentielles de tâches en attente d'être traitées. Les travailleurs, qui sont essentiellement des processus ou des threads séparés, prennent ces tâches et les exécutent.
+3. Une fois la tâche terminée, le travailleur :
+ * Écrit les résultats dans la base de données.
+ * Envoie un événement pour indiquer l'achèvement de la tâche.
+4. Le serveur principal reçoit l'événement et renvoie le résultat à l'interface utilisateur.
+5. Redis pub/sub est également utilisé pour diffuser des données vers l'interface utilisateur.
+
+
+
+## Diagramme de Flux
+
+
+
+#### 1. Point d'Entrée de la Demande
+
+Une demande de prédiction atteint le serveur Express et vérifie immédiatement si `MODE=QUEUE`. Si c'est vrai, il passe de l'exécution directe au traitement asynchrone en file d'attente.
+
+#### 2. Création de Tâche & Canaux Doubles
+
+Le système crée deux chemins parallèles :
+
+* **Canal de Tâche** : Les données de la demande deviennent une tâche Redis via BullMQ, le thread HTTP attend l'achèvement
+* **Canal de Flux** : Connexion SSE établie pour des mises à jour en temps réel via la publication/souscription Redis
+
+#### 3. Traitement par le Travailleur
+
+Des processus de travailleurs indépendants interrogent Redis pour des tâches. Lorsqu'une tâche est assignée :
+
+* Reconstruire le contexte d'exécution complet (DB, composants, contrôleurs d'abandon)
+* Exécuter le flux de travail avec un traitement nœud par nœud
+* Publier des événements en temps réel (tokens, outils, progrès) sur les canaux Redis
+
+#### 4. Communication en Temps Réel
+
+Pendant l'exécution :
+
+* [**RedisEventPublisher**](https://github.com/FlowiseAI/Flowise/blob/main/packages/server/src/queue/RedisEventPublisher.ts) diffuse des événements du travailleur vers Redis
+* [**RedisEventSubscriber**](https://github.com/FlowiseAI/Flowise/blob/main/packages/server/src/queue/RedisEventSubscriber.ts) transmet des événements de Redis aux clients SSE
+* [**SSEStreamer**](https://github.com/FlowiseAI/Flowise/blob/main/packages/server/src/utils/SSEStreamer.ts) livre des événements au navigateur en temps réel
+
+#### 5. Achèvement & Réponse
+
+La tâche se termine, le résultat est stocké dans Redis :
+
+* Le thread HTTP se débloque, reçoit le résultat
+* La connexion SSE se ferme proprement
+* Les ressources sont nettoyées (contrôleurs d'abandon, connexions)
+
+## Configuration Locale
+
+### Démarrer Redis
+
+Avant de démarrer le serveur principal et les travailleurs, Redis doit d'abord être en cours d'exécution. Vous pouvez exécuter Redis sur une machine séparée, mais assurez-vous qu'il est accessible par les instances de serveur et de travailleurs.
+
+Par exemple, vous pouvez faire fonctionner Redis sur votre Docker en suivant ce [guide](https://www.docker.com/blog/how-to-use-the-redis-docker-official-image/).
+
+### Démarrer le Serveur Principal
+
+C'est la même procédure que celle que vous suivriez pour exécuter Flowise par défaut, à l'exception de la configuration des variables d'environnement mentionnées ci-dessus.
+
+```bash
+pnpm start
+```
+
+### Démarrer le Travailleur
+
+Tout comme pour le serveur principal, les variables d'environnement ci-dessus doivent être configurées. Nous recommandons d'utiliser le même fichier `.env` pour les instances principales et de travail. La seule différence réside dans la façon de lancer les travailleurs. Ouvrez un autre terminal et exécutez :
+
+```bash
+pnpm run start-worker
+```
+
+{% hint style="warning" %}
+Le serveur principal et le worker doivent partager la même clé secrète. Référez-vous à [#for-credentials](environment-variables.md#for-credentials "mention"). Pour la production, nous recommandons d'utiliser Postgres comme base de données pour des performances optimales.
+{% endhint %}
+
+## Configuration de Docker
+
+### Méthode 1 : Images préconstruites (Recommandée)
+
+Cette méthode utilise des images Docker préconstruites depuis Docker Hub, ce qui en fait l'option de déploiement la plus rapide et la plus fiable.
+
+**Étape 1 : Configurer l'environnement**
+
+Créez un fichier `.env` dans le répertoire `docker` :
+
+```bash
+# Basic Configuration
+PORT=3000
+WORKER_PORT=5566
+
+# Queue Configuration (Required)
+MODE=queue
+QUEUE_NAME=flowise-queue
+REDIS_URL=redis://redis:6379
+
+# Optional Queue Settings
+WORKER_CONCURRENCY=5
+REMOVE_ON_AGE=24
+REMOVE_ON_COUNT=1000
+QUEUE_REDIS_EVENT_STREAM_MAX_LEN=1000
+ENABLE_BULLMQ_DASHBOARD=false
+
+# Database (Optional - defaults to SQLite)
+DATABASE_PATH=/root/.flowise
+
+# Storage
+BLOB_STORAGE_PATH=/root/.flowise/storage
+
+# Secret Keys
+SECRETKEY_PATH=/root/.flowise
+
+# Logging
+LOG_PATH=/root/.flowise/logs
+```
+
+**Étape 2 : Déployer**
+
+```bash
+cd docker
+docker compose -f docker-compose-queue-prebuilt.yml up -d
+```
+
+**Étape 3 : Vérifier le déploiement**
+
+```bash
+# Check container status
+docker compose -f docker-compose-queue-prebuilt.yml ps
+
+# View logs
+docker compose -f docker-compose-queue-prebuilt.yml logs -f flowise
+docker compose -f docker-compose-queue-prebuilt.yml logs -f flowise-worker
+```
+
+### Méthode 2 : Construire à partir du code source
+
+Cette méthode construit Flowise à partir du code source, utile pour le développement ou les modifications personnalisées.
+
+**Étape 1 : Configurer l'environnement**
+
+Créez le même fichier `.env` que dans [Méthode 1](running-flowise-using-queue.md#method-1-pre-built-images-recommended).
+
+**Étape 2 : Déployer**
+
+```bash
+cd docker
+docker compose -f docker-compose-queue-source.yml up -d
+```
+
+**Étape 3 : Processus de construction**
+
+La construction source va :
+
+* Construire l'application principale Flowise à partir du code source
+* Construire l'image du worker à partir du code source
+* Configurer Redis et le réseau
+
+**Étape 4 : Surveiller la construction**
+
+```bash
+# Watch build progress
+docker compose -f docker-compose-queue-source.yml logs -f
+
+# Check final status
+docker compose -f docker-compose-queue-source.yml ps
+```
+
+### Vérifications de santé
+
+Tous les fichiers compose incluent des vérifications de santé :
+
+```bash
+# Check main instance health
+curl http://localhost:3000/api/v1/ping
+
+# Check worker health
+curl http://localhost:5566/healthz
+```
+
+## Tableau de bord des files d'attente
+
+Définir `ENABLE_BULLMQ_DASHBOARD` sur true permettra aux utilisateurs de voir tous les travaux, l'état, le résultat et les données en naviguant vers `/admin/queues`
+
+
diff --git a/fr/configuration/running-in-production.md b/fr/configuration/running-in-production.md
new file mode 100644
index 00000000..8c06201a
--- /dev/null
+++ b/fr/configuration/running-in-production.md
@@ -0,0 +1,30 @@
+# Exécution en Production
+
+## Mode
+
+Lorsque vous exécutez en production, nous vous recommandons vivement d'utiliser le mode [Queue](running-flowise-using-queue.md) avec les paramètres suivants :
+
+* 2 serveurs principaux avec équilibrage de charge, chacun commençant avec 4vCPU 8 Go de RAM
+* 4 travailleurs, chacun commençant avec 4vCPU 8 Go de RAM
+
+Vous pouvez configurer l'auto-scaling en fonction du trafic et du volume.
+
+## Base de données
+
+Par défaut, Flowise utilisera SQLite comme base de données. Cependant, lorsqu'il est exécuté à grande échelle, il est recommandé d'utiliser PostgresQL.
+
+## Stockage
+
+Actuellement, Flowise ne prend en charge que [AWS S3](https://aws.amazon.com/s3/) avec un plan pour prendre en charge d'autres fournisseurs de stockage d'objets. Cela permettra de stocker des fichiers et des journaux sur S3, au lieu d'un chemin de fichier local. Consultez [#for-storage](environment-variables.md#for-storage "mention")
+
+## Chiffrement
+
+Flowise utilise une clé de chiffrement pour chiffrer/déchiffrer les identifiants que vous utilisez, tels que les clés API OpenAI. Il est recommandé d'utiliser [AWS Secret Manager](https://aws.amazon.com/secrets-manager/) en production pour un meilleur contrôle de la sécurité et une rotation des clés. Consultez [#for-credentials](environment-variables.md#for-credentials "mention")
+
+## Limite de Taux
+
+Lorsqu'il est déployé dans le cloud/en local, il est probable que les instances soient derrière un proxy/un équilibreur de charge. L'adresse IP de la requête pourrait être celle de l'équilibreur de charge/proxy inverse, rendant le limiteur de taux effectivement global et bloquant toutes les requêtes une fois la limite atteinte ou `undefined`. Définir le bon `NUMBER_OF_PROXIES` peut résoudre le problème. Consultez [#rate-limit-setup](rate-limit.md#rate-limit-setup "mention")
+
+## Test de Charge
+
+Artillery peut être utilisé pour tester la charge de votre application Flowise déployée. Un exemple de script peut être trouvé [ici](https://github.com/FlowiseAI/Flowise/blob/main/artillery-load-test.yml).
\ No newline at end of file
diff --git a/fr/configuration/sso.md b/fr/configuration/sso.md
new file mode 100644
index 00000000..01d8238b
--- /dev/null
+++ b/fr/configuration/sso.md
@@ -0,0 +1,126 @@
+# SSO
+
+{% hint style="info" %}
+Le SSO est uniquement disponible pour le plan Entreprise
+{% endhint %}
+
+Flowise prend en charge [OIDC](https://openid.net/) qui permet aux utilisateurs d'utiliser _l'authentification unique_ (_SSO_) pour accéder à l'application. Actuellement, seul l'[Administrateur de l'organisation](../using-flowise/workspaces.md#setting-up-admin-account) peut configurer les paramètres SSO.
+
+## Microsoft
+
+1. Dans le portail Azure, recherchez Microsoft Entra ID :
+
+
+
+2. Dans la barre latérale gauche, cliquez sur Enregistrements d'applications, puis sur Nouvelle inscription :
+
+
+
+3. Entrez un nom d'application et sélectionnez Locataire unique :
+
+
+
+4. Après la création de l'application, notez l'ID d'application (client) et l'ID de répertoire (locataire) :
+
+
+
+5. Dans la barre latérale gauche, cliquez sur Certificats et secrets -> Nouveau secret client -> Ajouter :
+
+
+
+6. Après la création du secret, copiez la Valeur, pas l'ID de secret :
+
+
+
+7. Dans la barre latérale gauche, cliquez sur Authentification -> Ajouter une plateforme -> Web :
+
+
+
+8. Remplissez les URI de redirection. Cela devra être modifié en fonction de la façon dont vous l'hébergez : `http[s]://[votre-instance-flowise.com]/api/v1/azure/callback` :
+
+
+
+9. Vous devriez voir la nouvelle URI de redirection créée :
+
+
+
+10. Retournez à l'application Flowise, connectez-vous en tant qu'Administrateur de l'organisation. Accédez à la configuration SSO depuis la barre latérale gauche. Remplissez l'ID de locataire Azure et l'ID client de l'étape 4, et le secret client de l'étape 6. Cliquez sur Tester la configuration pour voir si la connexion peut être établie avec succès :
+
+
+
+11. Enfin, activez et enregistrez :
+
+
+
+12. Avant que les utilisateurs puissent se connecter en utilisant le SSO, ils doivent d'abord être invités. Consultez [Inviter des utilisateurs pour la connexion SSO](sso.md#inviting-users-for-sso-sign-in) pour un guide étape par étape. Les utilisateurs invités doivent également faire partie des utilisateurs du répertoire dans Azure.
+
+
+
+## Google
+
+Pour activer la connexion avec Google sur votre site web, vous devez d'abord configurer votre ID client API Google. Pour ce faire, suivez les étapes suivantes :
+
+1. Ouvrez la page **Identifiants** de la [console API Google](https://console.developers.google.com/apis).
+2. Cliquez sur **Créer des identifiants** > **ID client OAuth**
+
+
+
+3\. Sélectionnez **Application Web** :
+
+
+
+4\. Remplissez les URI de redirection. Cela devra être modifié en fonction de la façon dont vous l'hébergez : `http[s]://[votre-instance-flowise.com]/api/v1/google/callback` :
+
+
+
+5\. Après la création, récupérez l'ID client et le secret :
+
+
+
+6\. Retournez à l'application Flowise, ajoutez l'ID client et le secret. Testez la connexion et enregistrez-le.
+
+
+
+## Auth0
+
+1. Inscrivez-vous sur [Auth0](https://auth0.com/), puis créez une nouvelle application
+
+
+
+2. Sélectionnez **Application Web régulière** :
+
+
+
+3. Configurez les champs tels que Nom, Description. Prenez note du **Domaine**, de l'**ID client** et du **Secret client**.
+
+
+
+4\. Remplissez les URI de l'application. Cela devra être modifié en fonction de la façon dont vous l'hébergez : `http[s]://[votre-instance-flowise.com]/api/v1/auth0/callback` :
+
+
+
+5. Dans l'onglet API, assurez-vous que l'API de gestion Auth0 est activée avec les permissions suivantes
+ * read:users
+ * read:client\_grants
+
+
+
+6\. Retournez à l'application Flowise, remplissez le Domaine, l'ID client et le Secret. Testez et enregistrez la configuration.
+
+
+
+## Inviter des utilisateurs pour la connexion SSO
+
+Pour qu'un nouvel utilisateur puisse se connecter, vous devez inviter de nouveaux utilisateurs dans l'application Flowise. Cela est essentiel pour garder une trace du rôle / espace de travail de l'utilisateur invité. Consultez la section [Inviter des utilisateurs](../using-flowise/workspaces.md#invite-user) pour la configuration des variables d'environnement.
+
+L'utilisateur invité recevra un lien d'invitation pour se connecter :
+
+
+
+En cliquant sur le bouton, l'utilisateur invité sera directement dirigé vers l'écran de connexion SSO de Flowise :
+
+
+
+Ou naviguez vers l'application Flowise et connectez-vous avec SSO :
+
+
\ No newline at end of file
diff --git a/fr/contributing/README.md b/fr/contributing/README.md
new file mode 100644
index 00000000..bd087030
--- /dev/null
+++ b/fr/contributing/README.md
@@ -0,0 +1,59 @@
+---
+description: Apprenez à contribuer à ce projet
+---
+
+# Guide de Contribution
+
+***
+
+Nous apprécions toutes les contributions ! Peu importe votre niveau de compétence ou votre parcours technique, vous pouvez aider ce projet à grandir. Voici quelques façons de contribuer :
+
+## ⭐ Étoile
+
+Étoile et partagez le [Github Repo](https://github.com/FlowiseAI/Flowise).
+
+## 🙌 Partager Chatflow
+
+Oui ! Partager comment vous utilisez Flowise est une façon de contribuer. Exportez votre chatflow au format JSON, joignez une capture d'écran et partagez-le dans la [section Show and Tell](https://github.com/FlowiseAI/Flowise/discussions/categories/show-and-tell).
+
+## 💡 Idées
+
+Nous accueillons les idées pour de nouvelles fonctionnalités et intégrations d'applications. Soumettez vos suggestions dans la [section Idées](https://github.com/FlowiseAI/Flowise/discussions/categories/ideas).
+
+## 🙋 Q\&A
+
+Vous voulez en savoir plus ? Recherchez des réponses à vos questions dans la [section Q\&A](https://github.com/FlowiseAI/Flowise/discussions/categories/q-a). Si vous ne trouvez pas de réponse, n'hésitez pas à créer une nouvelle question. Cela pourrait aider d'autres personnes ayant des questions similaires.
+
+## 🐞 Signaler des Bugs
+
+Vous avez trouvé un problème ? [Signalez-le](https://github.com/FlowiseAI/Flowise/issues/new/choose).
+
+## 📖 Contribuer à la Documentation
+
+1. Forkez le [Flowise Docs Repo](https://github.com/FlowiseAI/FlowiseDocs) officiel
+2. Clonez votre dépôt forké
+3. Créez une nouvelle branche
+4. Passez à la branche que vous venez de créer
+5. Allez dans le dossier du dépôt
+
+ ```bash
+ cd FlowiseDocs
+ ```
+6. Apportez des modifications
+7. Validez les modifications et soumettez une Pull Request depuis la branche forkée pointant vers [FlowiseDocs main](https://github.com/FlowiseAI/FlowiseDocs)
+
+## 👨💻 Contribuer au Code
+
+Pour apprendre à contribuer du code, rendez-vous dans la section [Pour les Développeurs](../getting-started/#setup-2) et suivez les instructions.
+
+Si vous contribuez à une nouvelle intégration de nœud, lisez le guide [Building Node](building-node.md).
+
+## 🏷️ Processus de Pull Request
+
+Un membre de l'équipe FlowiseAI sera automatiquement notifié/assigné lorsque vous ouvrirez une pull request. Vous pouvez également nous contacter sur [Discord](https://discord.gg/jbaHfsRVBW).
+
+## 📜 Code de Conduite
+
+Ce projet et toutes les personnes qui y participent sont régis par le Code de Conduite que vous pouvez trouver dans le [fichier](https://github.com/FlowiseAI/Flowise/blob/main/CODE\_OF\_CONDUCT.md). En participant, vous êtes censé respecter ce code.
+
+Veuillez signaler tout comportement inacceptable à hello@flowiseai.com.
\ No newline at end of file
diff --git a/fr/contributing/building-node.md b/fr/contributing/building-node.md
new file mode 100644
index 00000000..683a67a7
--- /dev/null
+++ b/fr/contributing/building-node.md
@@ -0,0 +1,125 @@
+# Construction de Node
+
+### Installer Git
+
+Tout d'abord, installez Git et clonez le dépôt Flowise. Vous pouvez suivre les étapes du guide [Commencer](broken-reference).
+
+### Structure
+
+Flowise sépare chaque intégration de node dans le dossier `packages/components/nodes`. Essayons de créer un outil simple !
+
+### Créer l'outil Calculatrice
+
+Créez un nouveau dossier nommé `Calculator` dans le dossier `packages/components/nodes/tools`. Ensuite, créez un nouveau fichier nommé `Calculator.ts`. À l'intérieur du fichier, nous allons d'abord écrire la classe de base.
+
+```javascript
+import { INode } from '../../../src/Interface'
+import { getBaseClasses } from '../../../src/utils'
+
+class Calculator_Tools implements INode {
+ label: string
+ name: string
+ version: number
+ description: string
+ type: string
+ icon: string
+ category: string
+ author: string
+ baseClasses: string[]
+
+ constructor() {
+ this.label = 'Calculator'
+ this.name = 'calculator'
+ this.version = 1.0
+ this.type = 'Calculator'
+ this.icon = 'calculator.svg'
+ this.category = 'Tools'
+ this.author = 'Your Name'
+ this.description = 'Perform calculations on response'
+ this.baseClasses = [this.type, ...getBaseClasses(Calculator)]
+ }
+}
+
+module.exports = { nodeClass: Calculator_Tools }
+```
+
+Every node will implements the `INode` base class. Breakdown of what each property means:
+
+
Propriété
Description
label
Le nom du nœud qui apparaît dans l'interface utilisateur
name
Le nom utilisé par le code. Doit être camelCase
version
Version du nœud
type
Généralement identique au label. Pour définir quel nœud peut être connecté à ce type spécifique dans l'interface utilisateur
icon
Icône du nœud
category
Catégorie du nœud
author
Créateur du nœud
description
Description du nœud
baseClasses
Les classes de base du nœud, puisque un nœud peut s'étendre à partir d'un composant de base. Utilisé pour définir quel nœud peut être connecté à ce nœud dans l'interface utilisateur
+
+### Définir la classe
+
+Maintenant que la classe de composant est partiellement terminée, nous pouvons procéder à la définition de la classe Tool réelle, dans ce cas - `Calculator`.
+
+Créez un nouveau fichier dans le même dossier `Calculator`, et nommez-le `core.ts`
+
+```javascript
+import { Parser } from "expr-eval"
+import { Tool } from "@langchain/core/tools"
+
+export class Calculator extends Tool {
+ name = "calculator"
+ description = `Useful for getting the result of a math expression. The input to this tool should be a valid mathematical expression that could be executed by a simple calculator.`
+
+ async _call(input: string) {
+ try {
+ return Parser.evaluate(input).toString()
+ } catch (error) {
+ return "I don't know how to do that."
+ }
+ }
+}
+```
+
+### Finishing
+
+Retournez au fichier `Calculator.ts`, nous pouvons terminer cela en ajoutant la fonction `async init`. Dans cette fonction, nous allons initialiser la classe Calculator que nous avons créée ci-dessus. Lorsque le flux est exécuté, la fonction `init` dans chaque nœud sera appelée, et la fonction `_call` sera exécutée lorsque le LLM décidera d'appeler cet outil.
+
+```javascript
+import { INode } from '../../../src/Interface'
+import { getBaseClasses } from '../../../src/utils'
+import { Calculator } from './core'
+
+class Calculator_Tools implements INode {
+ label: string
+ name: string
+ version: number
+ description: string
+ type: string
+ icon: string
+ category: string
+ author: string
+ baseClasses: string[]
+
+ constructor() {
+ this.label = 'Calculator'
+ this.name = 'calculator'
+ this.version = 1.0
+ this.type = 'Calculator'
+ this.icon = 'calculator.svg'
+ this.category = 'Tools'
+ this.author = 'Your Name'
+ this.description = 'Perform calculations on response'
+ this.baseClasses = [this.type, ...getBaseClasses(Calculator)]
+ }
+
+
+ async init() {
+ return new Calculator()
+ }
+}
+
+module.exports = { nodeClass: Calculator_Tools }
+```
+
+### Construire et Exécuter
+
+Dans le fichier `.env` à l'intérieur de `packages/server`, créez une nouvelle variable d'environnement :
+
+```javascript
+SHOW_COMMUNITY_NODES=true
+```
+
+Maintenant, nous pouvons utiliser `pnpm build` et `pnpm start` pour donner vie au composant !
+
+
diff --git a/fr/getting-started/README.md b/fr/getting-started/README.md
new file mode 100644
index 00000000..fddc2d60
--- /dev/null
+++ b/fr/getting-started/README.md
@@ -0,0 +1,216 @@
+# Commencer
+
+***
+
+## Cloud
+
+L'auto-hébergement nécessite plus de compétences techniques pour configurer l'instance, sauvegarder la base de données et maintenir les mises à jour. Si vous n'êtes pas expérimenté dans la gestion des serveurs et que vous souhaitez simplement utiliser l'application web, nous vous recommandons d'utiliser [Flowise Cloud](https://cloud.flowiseai.com).
+
+## Démarrage rapide
+
+{% hint style="info" %}
+Prérequis : assurez-vous que [NodeJS](https://nodejs.org/en/download) est installé sur la machine. Node `v18.15.0` ou `v20` et supérieur est pris en charge.
+{% endhint %}
+
+Installez Flowise localement en utilisant NPM.
+
+1. Installez Flowise:
+
+```bash
+npm install -g flowise
+```
+
+Vous pouvez également installer une version spécifique. Consultez les [versions](https://www.npmjs.com/package/flowise?activeTab=versions) disponibles.
+
+```
+npm install -g flowise@x.x.x
+```
+
+2. Démarrer Flowise :
+
+```bash
+npx flowise start
+```
+
+3. Ouvrez : [http://localhost:3000](http://localhost:3000)
+
+***
+
+## Docker
+
+Il existe deux façons de déployer Flowise avec Docker. Tout d'abord, clonez le projet : [https://github.com/FlowiseAI/Flowise](https://github.com/FlowiseAI/Flowise)
+
+### Docker Compose
+
+1. Allez dans le dossier `docker` à la racine du projet
+2. Copiez le fichier `.env.example` et collez-le sous un autre nom de fichier `.env`
+3. Exécutez :
+
+```bash
+docker compose up -d
+```
+
+4. Ouvrez : [http://localhost:3000](http://localhost:3000)
+5. Vous pouvez arrêter les conteneurs en exécutant :
+
+```bash
+docker compose stop
+```
+
+### Image Docker
+
+1. Construisez l'image :
+
+```bash
+docker build --no-cache -t flowise .
+```
+
+2. Exécuter l'image :
+
+```bash
+docker run -d --name flowise -p 3000:3000 flowise
+```
+
+3. Arrêter l'image :
+
+```bash
+docker stop flowise
+```
+
+***
+
+## Pour les développeurs
+
+Flowise dispose de 4 modules différents dans un seul dépôt mono :
+
+* **Serveur** : backend Node pour gérer la logique de l'API
+* **UI** : frontend React
+* **Composants** : composants d'intégration
+* **Documentation de l'API** : spécification Swagger pour les APIs Flowise
+
+### Prérequis
+
+Installez [PNPM](https://pnpm.io/installation).
+
+```bash
+npm i -g pnpm
+```
+
+### Configuration 1
+
+Configuration simple utilisant PNPM :
+
+1. Clonez le dépôt
+
+```bash
+git clone https://github.com/FlowiseAI/Flowise.git
+```
+
+2. Accédez au dossier du dépôt
+
+```bash
+cd Flowise
+```
+
+3. Installez toutes les dépendances de tous les modules :
+
+```bash
+pnpm install
+```
+
+4. Construire le code :
+
+```bash
+pnpm build
+```
+
+Démarrez l'application à [http://localhost:3000](http://localhost:3000)
+
+```bash
+pnpm start
+```
+
+### Configuration 2
+
+Instructions étape par étape pour les contributeurs du projet :
+
+1. Forkez le [dépôt Github officiel de Flowise](https://github.com/FlowiseAI/Flowise)
+2. Clonez votre dépôt forké
+3. Créez une nouvelle branche, consultez le [guide](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository). Conventions de nommage :
+ * Pour la branche de fonctionnalité : `feature/`
+ * Pour la branche de correction de bogue : `bugfix/`.
+4. Passez à la branche que vous venez de créer
+5. Accédez au dossier du dépôt :
+
+```bash
+cd Flowise
+```
+
+6. Installez toutes les dépendances de tous les modules :
+
+```bash
+pnpm install
+```
+
+7. Construire le code :
+
+```bash
+pnpm build
+```
+
+8. Démarrez l'application à [http://localhost:3000](http://localhost:3000)
+
+```bash
+pnpm start
+```
+
+9. Pour la construction de développement :
+
+* Créez un fichier `.env` et spécifiez le `PORT` (voir `.env.example`) dans `packages/ui`
+* Créez un fichier `.env` et spécifiez le `PORT` (voir `.env.example`) dans `packages/server`
+
+```bash
+pnpm dev
+```
+
+* Toute modification apportée dans `packages/ui` ou `packages/server` sera reflétée sur [http://localhost:8080](http://localhost:8080/)
+* Pour les modifications apportées dans `packages/components`, vous devrez reconstruire pour prendre en compte les changements
+* Après avoir effectué toutes les modifications, exécutez :
+
+ ```bash
+ pnpm build
+ ```
+
+ et
+
+ ```bash
+ pnpm start
+ ```
+
+ pour vous assurer que tout fonctionne correctement en production.
+
+***
+
+## Pour les entreprises
+
+Avant de démarrer l'application, les utilisateurs d'entreprise doivent remplir les valeurs des paramètres d'entreprise dans le fichier `.env`. Consultez `.env.example` pour les modifications requises.
+
+Contactez support@flowiseai.com pour la valeur des variables d'environnement suivantes :
+
+```
+LICENSE_URL
+FLOWISE_EE_LICENSE_KEY
+```
+
+***
+
+## En savoir plus
+
+Dans ce tutoriel vidéo, Leon présente une introduction à Flowise et explique comment l'installer sur votre machine locale.
+
+{% embed url="https://youtu.be/nqAK_L66sIQ" %}
+
+## Guide de la communauté
+
+* [Introduction à la construction d'applications LLM avec Flowise / LangChain \[Pratique\]](https://volcano-ice-cd6.notion.site/Introduction-to-Practical-Building-LLM-Applications-with-Flowise-LangChain-03d6d75bfd20495d96dfdae964bea5a5)
+* [Introduction à la construction d'applications LLM avec Flowise / LangChain \[Pratique\]](https://volcano-ice-cd6.notion.site/Flowise-LangChain-LLM-e106bb0f7e2241379aad8fa428ee064a)
diff --git a/fr/integrations/3rd-party-platform-integration/README.md b/fr/integrations/3rd-party-platform-integration/README.md
new file mode 100644
index 00000000..6a70d94d
--- /dev/null
+++ b/fr/integrations/3rd-party-platform-integration/README.md
@@ -0,0 +1,11 @@
+---
+description: Apprenez à intégrer Flowise avec des plateformes tierces
+---
+
+# Intégrations externes
+
+***
+
+Flowise peut également être utilisé sur des plateformes tierces. Voici quelques exemples d'utilisation :
+
+* [Zapier Zaps](zapier-zaps.md)
\ No newline at end of file
diff --git a/fr/integrations/3rd-party-platform-integration/open-webui.md b/fr/integrations/3rd-party-platform-integration/open-webui.md
new file mode 100644
index 00000000..0d22c77f
--- /dev/null
+++ b/fr/integrations/3rd-party-platform-integration/open-webui.md
@@ -0,0 +1,213 @@
+# Open WebUI
+
+[Open WebUI](https://github.com/open-webui/open-webui) est une plateforme _IA auto-hébergée_ extensible, riche en fonctionnalités et conviviale, conçue pour fonctionner entièrement hors ligne.
+
+[Les Fonctions](https://docs.openwebui.com/features/plugin/functions/) sont comme des plugins pour Open WebUI. Nous pouvons créer une [Fonction Pipe](https://docs.openwebui.com/features/plugin/functions/pipe) personnalisée qui traite les entrées et génère des réponses en invoquant l'API de prédiction Flowise avant de retourner les résultats à l'utilisateur. Grâce à cela, Flowise peut être utilisé dans Open WebUI.
+
+## Configuration
+
+1. Tout d'abord, assurez-vous qu'Open WebUI est opérationnel, vous pouvez consulter le guide [Démarrage rapide](https://docs.openwebui.com/getting-started/quick-start/). En bas à gauche, cliquez sur votre profil et **Panneau d'administration**
+
+
+
+2. Ouvrez l'onglet **Fonctions**, et ajoutez une nouvelle Fonction.
+
+
+
+3. Nommez la Fonction, et ajoutez le code suivant :
+
+```python
+"""
+title: Flowise Integration for OpenWebUI
+Requirements:
+ - Flowise API URL (set via FLOWISE_API_URL)
+ - Flowise API Key (set via FLOWISE_API_KEY)
+"""
+
+from pydantic import BaseModel, Field
+from typing import Optional, Dict, Any, List, Union, Generator, Iterator
+import requests
+import json
+import os
+
+
+class Pipe:
+ class Valves(BaseModel):
+ flowise_url: str = Field(
+ default=os.getenv("FLOWISE_API_URL", ""),
+ description="Flowise URL",
+ )
+ flowise_api_key: str = Field(
+ default=os.getenv("FLOWISE_API_KEY", ""),
+ description="Flowise API key for authentication",
+ )
+
+ def __init__(self):
+ self.type = "manifold"
+ self.id = "flowise_chat"
+ self.valves = self.Valves()
+
+ # Validate required settings
+ if not self.valves.flowise_url:
+ print(
+ "⚠️ Please set your Flowise URL using the FLOWISE_API_URL environment variable"
+ )
+ if not self.valves.flowise_api_key:
+ print(
+ "⚠️ Please set your Flowise API key using the FLOWISE_API_KEY environment variable"
+ )
+
+ def pipes(self):
+ if self.valves.flowise_api_key and self.valves.flowise_url:
+ try:
+ headers = {
+ "Authorization": f"Bearer {self.valves.flowise_api_key}",
+ "Content-Type": "application/json",
+ }
+
+ r = requests.get(
+ f"{self.valves.flowise_url}/api/v1/chatflows?type=AGENTFLOW",
+ headers=headers,
+ )
+ models = r.json()
+ return [
+ {
+ "id": model["id"],
+ "name": model["name"],
+ }
+ for model in models
+ ]
+
+ except Exception as e:
+ return [
+ {
+ "id": "error",
+ "name": str(e),
+ },
+ ]
+ else:
+ return [
+ {
+ "id": "error",
+ "name": "API Key not provided.",
+ },
+ ]
+
+ def _process_message_content(self, message: dict) -> str:
+ """Process message content, handling text for now"""
+ if isinstance(message.get("content"), list):
+ processed_content = []
+ for item in message["content"]:
+ if item["type"] == "text":
+ processed_content.append(item["text"])
+ return " ".join(processed_content)
+ return message.get("content", "")
+
+ def pipe(
+ self, body: dict, __user__: Optional[dict] = None, __metadata__: dict = None
+ ):
+ try:
+ stream_enabled = body.get("stream", True)
+ session_id = (__metadata__ or {}).get("chat_id") or "owui-session"
+ # model can be "flowise." or just ""
+ model_name = body.get("model", "")
+ dot = model_name.find(".")
+ model_id = model_name[dot + 1 :] if dot != -1 else model_name
+
+ messages = body.get("messages") or []
+ if not messages:
+ raise Exception("No messages found in request body")
+ question = self._process_message_content(messages[-1])
+
+ data = {
+ "question": question,
+ "overrideConfig": {"sessionId": session_id},
+ "streaming": stream_enabled,
+ }
+
+ headers = {
+ "Authorization": f"Bearer {self.valves.flowise_api_key}",
+ "Content-Type": "application/json",
+ "Accept": "text/event-stream" if stream_enabled else "application/json",
+ }
+
+ url = f"{self.valves.flowise_url}/api/v1/prediction/{model_id}"
+ with requests.post(
+ url, json=data, headers=headers, stream=stream_enabled, timeout=60
+ ) as r:
+ r.raise_for_status()
+
+ if stream_enabled:
+ # Ensure correct decoding for SSE (prevents ’ etc.)
+ r.encoding = "utf-8"
+
+ for raw_line in r.iter_lines(decode_unicode=True):
+ if not raw_line:
+ continue
+ line = raw_line.strip()
+
+ # Skip keep-alives or non-data fields
+ if not line.startswith("data:"):
+ continue
+
+ payload = line[5:].strip()
+ if payload in ("[DONE]", '"[DONE]"'):
+ break
+
+ # Flowise usually sends {"event":"token","data":"..."}
+ try:
+ obj = json.loads(payload)
+ except json.JSONDecodeError:
+ # Occasionally plain text arrives—stream it anyway
+ if payload:
+ yield payload
+ continue
+
+ if isinstance(obj, dict):
+ if obj.get("event") == "token":
+ token = obj.get("data") or ""
+ if token:
+ yield token
+ else:
+ # Some versions send {"data":{"text":"..."}}
+ data_field = obj.get("data")
+ if isinstance(data_field, dict):
+ text = data_field.get("text")
+ if text:
+ yield text
+ return # end streaming
+
+ # Non-streaming fallback
+ resp = r.json()
+ return (
+ resp.get("text") or (resp.get("data") or {}).get("text", "") or ""
+ )
+
+ except requests.HTTPError as http_err:
+ try:
+ detail = http_err.response.text[:500]
+ except Exception:
+ detail = ""
+ return f"HTTP error from Flowise: {http_err.response.status_code} {detail}"
+ except Exception as e:
+ return f"Error in Flowise pipe: {e}"
+```
+```markdown
+4. Après avoir enregistré la fonction, activez-la et cliquez sur le bouton des paramètres pour entrer votre URL Flowise et votre clé API Flowise :
+
+
+
+
+
+5. Maintenant, lorsque vous actualisez et cliquez sur Nouveau Chat, vous pourrez voir la liste des flux. Vous pouvez modifier le code pour afficher :
+
+* Seulement les Agentflows V2 : `f"{self.valves.flowise_url}/api/v1/chatflows?type=AGENTFLOW"`
+* Seulement les Chatflows : `f"{self.valves.flowise_url}/api/v1/chatflows?type=CHATFLOW"`
+* Seulement les Assistants : `f"{self.valves.flowise_url}/api/v1/chatflows?type=ASSISTANT"`
+
+
+
+6. Test :
+
+
+```
\ No newline at end of file
diff --git a/fr/integrations/3rd-party-platform-integration/streamlit.md b/fr/integrations/3rd-party-platform-integration/streamlit.md
new file mode 100644
index 00000000..f835a3d7
--- /dev/null
+++ b/fr/integrations/3rd-party-platform-integration/streamlit.md
@@ -0,0 +1,71 @@
+# Streamlit
+
+[Python SDK](https://github.com/FlowiseAI/FlowisePy) peut être utilisé pour créer une [Streamlit](https://streamlit.io/) application :
+
+```python
+import streamlit as st
+from flowise import Flowise, PredictionData
+import json
+
+# Flowise app base url
+base_url = st.secrets["APP_URL"] or "https://your-flowise-url.com"
+
+# Chatflow/Agentflow ID
+flow_id = st.secrets["FLOW_ID"] or "abc"
+
+# Show title and description.
+st.title("💬 Flowise Streamlit Chat")
+st.write(
+ "This is a simple chatbot that uses Flowise Python SDK"
+)
+
+# Create a Flowise client.
+client = Flowise(base_url=base_url)
+
+# Create a session state variable to store the chat messages. This ensures that the
+# messages persist across reruns.
+if "messages" not in st.session_state:
+ st.session_state.messages = []
+
+# Display the existing chat messages via `st.chat_message`.
+for message in st.session_state.messages:
+ with st.chat_message(message["role"]):
+ st.markdown(message["content"])
+
+def generate_response(prompt: str):
+ print('generating response')
+ completion = client.create_prediction(
+ PredictionData(
+ chatflowId=flow_id,
+ question=prompt,
+ overrideConfig={
+ "sessionId": "session1234"
+ },
+ streaming=True
+ )
+ )
+
+ for chunk in completion:
+ print(chunk)
+ parsed_chunk = json.loads(chunk)
+ if (parsed_chunk['event'] == 'token' and parsed_chunk['data'] != ''):
+ yield str(parsed_chunk['data'])
+
+# Create a chat input field to allow the user to enter a message. This will display
+# automatically at the bottom of the page.
+if prompt := st.chat_input("What is up?"):
+
+ # Store and display the current prompt.
+ st.session_state.messages.append({"role": "user", "content": prompt})
+ with st.chat_message("user"):
+ st.markdown(prompt)
+
+ # Stream the response to the chat using `st.write_stream`, then store it in
+ # session state.
+ with st.chat_message("assistant"):
+ response = generate_response(prompt)
+ full_response = st.write_stream(response)
+ st.session_state.messages.append({"role": "assistant", "content": full_response})
+```
+
+Github Repo: [https://github.com/HenryHengZJ/flowise-streamlit](https://github.com/HenryHengZJ/flowise-streamlit)
diff --git a/fr/integrations/3rd-party-platform-integration/zapier-zaps.md b/fr/integrations/3rd-party-platform-integration/zapier-zaps.md
new file mode 100644
index 00000000..53fb4166
--- /dev/null
+++ b/fr/integrations/3rd-party-platform-integration/zapier-zaps.md
@@ -0,0 +1,104 @@
+---
+description: Apprenez à intégrer Flowise et Zapier
+---
+
+# Zapier Zaps
+
+***
+
+## Prérequis
+
+1. [Connectez-vous](https://zapier.com/app/login) ou [inscrivez-vous](https://zapier.com/sign-up) à Zapier
+2. Consultez [le déploiement](../../configuration/deployment/) pour créer une version hébergée dans le cloud de Flowise.
+
+## Configuration
+
+1. Allez sur [Zapier Zaps](https://zapier.com/app/zaps)
+2. Cliquez sur **Créer**
+
+
+
+### Recevoir le message de déclenchement
+
+1. Cliquez ou recherchez **Discord**
+
+
+2. Sélectionnez **Nouveau message posté dans le canal** comme événement, puis cliquez sur **Continuer**
+
+
+3. **Connectez-vous** à votre compte Discord
+
+
+4. Ajoutez le **Bot Zapier** à votre serveur préféré
+
+
+5. Accordez les autorisations appropriées et cliquez sur **Autoriser**, puis cliquez sur **Continuer**
+
+
+
+
+6. Sélectionnez votre **canal préféré** pour interagir avec le Bot Zapier, puis cliquez sur **Continuer**
+
+
+7. **Envoyez un message** à votre canal sélectionné à l'étape 8
+
+
+8. Cliquez sur **Tester le déclencheur**
+
+
+9. Sélectionnez votre message, puis cliquez sur **Continuer avec l'enregistrement sélectionné**
+
+
+
+### Filtrer le message du Bot Zapier
+
+1. Cliquez ou recherchez **Filtre**
+
+
+2. Configurez le **Filtre** pour ne pas continuer si le message reçu provient du **Bot Zapier**, puis cliquez sur **Continuer**
+
+
+
+### FlowiseAI génère le message de résultat
+
+1. Cliquez sur **+**, cliquez ou recherchez **FlowiseAI**
+
+
+2. Sélectionnez **Faire une prédiction** comme événement, puis cliquez sur **Continuer**
+
+
+3. Cliquez sur **Se connecter** et saisissez vos informations, puis cliquez sur **Oui, continuer vers FlowiseAI**
+
+
+
+
+4. Sélectionnez **Contenu** de Discord et votre ID Flow, puis cliquez sur **Continuer**
+
+
+5. Cliquez sur **Tester l'action** et attendez votre résultat
+
+
+
+### Envoyer un message de résultat
+
+1. Cliquez sur **+**, cliquez ou recherchez **Discord**
+
+
+2. Sélectionnez **Envoyer un message dans le canal** comme événement, puis cliquez sur **Continuer**
+
+
+3. Sélectionnez le compte Discord auquel vous êtes connecté, puis cliquez sur **Continuer**
+
+
+4. Sélectionnez votre canal préféré pour le canal et choisissez **Texte** et **Source de chaîne** (si disponible) de FlowiseAI pour le texte du message, puis cliquez sur **Continuer**
+
+
+5. Cliquez sur **Tester l'action**
+
+
+6. Voilà [🎉](https://emojipedia.org/party-popper/) vous devriez voir le message arriver dans votre canal Discord
+
+
+7. Enfin, renommez votre Zap et publiez-le
+
+
\ No newline at end of file
diff --git a/fr/integrations/README.md b/fr/integrations/README.md
new file mode 100644
index 00000000..94a07df3
--- /dev/null
+++ b/fr/integrations/README.md
@@ -0,0 +1,50 @@
+---
+description: Learn about all available integrations / nodes in Flowise
+---
+
+# Integrations
+
+***
+
+In Flowise, nodes are referred to as integrations. Similar to LEGO, you can build a customized LLM ochestration flow, a chatbot, an agent with all the integrations available in Flowise.
+
+### LangChain
+
+* [Agents](langchain/agents/)
+* [Cache](langchain/cache/)
+* [Chains](langchain/chains/)
+* [Chat Models](langchain/chat-models/)
+* [Document Loaders](langchain/document-loaders/)
+* [Embeddings](langchain/embeddings/)
+* [LLMs](langchain/llms/)
+* [Memory](langchain/memory/)
+* [Moderation](langchain/moderation/)
+* [Output Parsers](langchain/output-parsers/)
+* [Prompts](langchain/prompts/)
+* [Record Managers](langchain/record-managers.md)
+* [Retrievers](langchain/retrievers/)
+* [Text Splitters](langchain/text-splitters/)
+* [Tools](langchain/tools/)
+* [Vector Stores](langchain/vector-stores/)
+
+### LlamaIndex
+
+* [Agents](llamaindex/agents/)
+* [Chat Models](llamaindex/chat-models/)
+* [Embeddings](llamaindex/embeddings/)
+* [Engine](llamaindex/engine/)
+* [Response Synthesizer](llamaindex/response-synthesizer/)
+* [Tools](llamaindex/tools/)
+* [Vector Stores](llamaindex/vector-stores/)
+
+### Utilities
+
+* [Custom JS Function](utilities/custom-js-function.md)
+* [Set/Get Variable](utilities/set-get-variable.md)
+* [If Else](utilities/if-else.md)
+* [Set Variable](broken-reference)
+* [Sticky Note](utilities/sticky-note.md)
+
+### External Integrations
+
+* [Zapier Zaps](3rd-party-platform-integration/zapier-zaps.md)
diff --git a/fr/integrations/langchain/README.md b/fr/integrations/langchain/README.md
new file mode 100644
index 00000000..9e8ce800
--- /dev/null
+++ b/fr/integrations/langchain/README.md
@@ -0,0 +1,30 @@
+---
+description: Learn how Flowise integrates with the LangChain framework
+---
+
+# Lubriole
+
+***
+
+[**LangChain**](https://www.langchain.com/)est un cadre pour développer des applications alimentées par des modèles de langue. Il simplifie le processus de création d'application d'IA générative, de connexion des sources de données, des vecteurs, des souvenirs avec LLMS.
+
+Flowise complète Langchain en offrant une interface visuelle. Ici, les nœuds sont organisés en sections distinctes, ce qui facilite la construction de workflows.
+
+### Sections de Langchain:
+
+* [Agents](agents/)
+* [Cache](cache/)
+* [Chains](chains/)
+* [Chat Models](chat-models/)
+* [Document Loaders](document-loaders/)
+* [Embeddings](embeddings/)
+* [LLMs](llms/)
+* [Memory](memory/)
+* [Moderation](moderation/)
+* [Output Parsers](output-parsers/)
+* [Prompts](prompts/)
+* [Record Managers](record-managers.md)
+* [Retrievers](retrievers/)
+* [Text Splitters](text-splitters/)
+* [Tools](tools/)
+* [Vector Stores](vector-stores/)
diff --git a/fr/integrations/langchain/agents/README.md b/fr/integrations/langchain/agents/README.md
new file mode 100644
index 00000000..8ced6389
--- /dev/null
+++ b/fr/integrations/langchain/agents/README.md
@@ -0,0 +1,28 @@
+---
+description: Nœuds d'Agent LangChain
+---
+
+# Agents
+
+***
+
+À eux seuls, les modèles de langage ne peuvent pas agir - ils se contentent de produire du texte.
+
+Les agents sont des systèmes qui utilisent un LLM comme moteur de raisonnement pour déterminer quelles actions entreprendre et quels devraient être les inputs de ces actions. Les résultats de ces actions peuvent ensuite être réintroduits dans l'agent, qui détermine si d'autres actions sont nécessaires ou s'il est acceptable de terminer.
+
+### Nœuds d'Agent :
+
+* [Agent Airtable](airtable-agent.md)
+* [AutoGPT](autogpt.md)
+* [BabyAGI](babyagi.md)
+* [Agent CSV](csv-agent.md)
+* [Agent Conversationnel](conversational-agent.md)
+* [Agent de Récupération Conversationnelle](conversational-retrieval-agent.md)
+* [Agent Outil MistralAI](mistralai-tool-agent.md)
+* [Assistant OpenAI](openai-assistant/)
+* [Agent Fonction OpenAI](openai-function-agent.md)
+* [Agent Outil OpenAI](../../llamaindex/agents/openai-tool-agent.md)
+* [Chat d'Agent ReAct](react-agent-chat.md)
+* [LLM d'Agent ReAct](react-agent-llm.md)
+* [Agent Outil](tool-agent.md)
+* [Agent XML](xml-agent.md)
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/airtable-agent.md b/fr/integrations/langchain/agents/airtable-agent.md
new file mode 100644
index 00000000..4e6ecd1e
--- /dev/null
+++ b/fr/integrations/langchain/agents/airtable-agent.md
@@ -0,0 +1,34 @@
+---
+description: Agent utilisé pour répondre aux requêtes sur la table Airtable.
+---
+
+# Agent Airtable
+
+
Node de l'Agent Airtable
+
+## Fonctionnalité de l'Agent Airtable
+
+L'Agent Airtable est conçu pour faciliter les interactions entre Flowise AI et les tables Airtable, permettant aux utilisateurs de consulter les données d'Airtable de manière conversationnelle. En utilisant cet agent, les utilisateurs peuvent poser des questions sur le contenu de leur base Airtable et recevoir des réponses pertinentes basées sur les données stockées. Cela peut être particulièrement utile pour extraire rapidement des informations spécifiques, automatiser des flux de travail ou générer des résumés à partir des données stockées dans Airtable.
+
+Par exemple, l'Agent Airtable peut être utilisé pour répondre à des questions telles que :
+
+* "Combien de tâches sont encore incomplètes dans ma table de suivi de projet ?"
+* "Quels sont les détails de contact des clients listés dans le CRM ?"
+* "Donnez-moi un résumé de tous les enregistrements ajoutés au cours de la semaine dernière."
+
+Cette fonctionnalité aide les utilisateurs à obtenir des informations de leurs bases Airtable sans avoir besoin de naviguer dans l'interface Airtable, rendant ainsi la gestion et l'analyse de leurs données plus faciles et interactives.
+
+## Entrées
+
+L'Agent Airtable nécessite les entrées suivantes pour fonctionner efficacement :
+
+* **Modèle de Langue** : Le modèle de langue à utiliser pour traiter les requêtes. Cette entrée est requise et aide à déterminer la qualité et l'exactitude des réponses fournies par l'agent.
+* **Modération des Entrées** : Entrée optionnelle qui permet la modération du contenu. Cela aide à garantir que les requêtes sont appropriées et ne contiennent pas de contenu offensant ou nuisible.
+* **Identifiant de Connexion** : Entrée requise pour se connecter à Airtable. Les utilisateurs doivent sélectionner l'identifiant approprié qui a les permissions pour accéder à leurs données Airtable.
+* **ID de Base** : L'ID de la base Airtable à laquelle se connecter. C'est un champ requis et peut être trouvé dans la documentation API d'Airtable ou dans les paramètres de la base. Si l'URL de votre table ressemble à `https://airtable.com/app11RobdGoX0YNsC/tblJdmvbrgizbYlCO/viw9UrP77idOCE4ee`, `app11RobdGoX0YNsC` est l'ID de la Base. Il est utilisé pour spécifier quelle base Airtable contient les données à interroger.
+* **ID de Table** : L'ID de la table spécifique au sein de la base Airtable. C'est également un champ requis et aide l'agent à cibler la bonne table pour la récupération des données. Dans l'URL d'exemple `https://airtable.com/app11RobdGoX0YNsC/tblJdmvbrgizbYlCO/viw9UrP77idOCE4ee`, `tblJdmvbrgizbYlCO` est l'ID de la Table.
+* **Paramètres Supplémentaires** : Paramètres optionnels qui peuvent être utilisés pour personnaliser le comportement de l'agent. Ces paramètres peuvent être configurés en fonction de cas d'utilisation spécifiques.
+ * **Retourner Tout** : Cette option permet aux utilisateurs de retourner tous les enregistrements de la table spécifiée. Si activée, tous les enregistrements seront récupérés, sinon, seul un nombre limité sera retourné.
+ * **Limite** : Spécifie le nombre maximum d'enregistrements à retourner si **Retourner Tout** n'est pas activé. La valeur par défaut est `100`.
+
+**Remarque** : Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez fournir pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/autogpt.md b/fr/integrations/langchain/agents/autogpt.md
new file mode 100644
index 00000000..638cc912
--- /dev/null
+++ b/fr/integrations/langchain/agents/autogpt.md
@@ -0,0 +1,11 @@
+---
+description: Agent autonome avec chaîne de pensées pour l'accomplissement autonome des tâches.
+---
+
+# AutoGPT
+
+
Node AutoGPT
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/babyagi.md b/fr/integrations/langchain/agents/babyagi.md
new file mode 100644
index 00000000..ee735776
--- /dev/null
+++ b/fr/integrations/langchain/agents/babyagi.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Agent autonome orienté tâches qui crée de nouvelles tâches et réorganise la liste des tâches
+ en fonction des objectifs
+---
+
+# BabyAGI
+
+
Node BabyAGI
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/conversational-agent.md b/fr/integrations/langchain/agents/conversational-agent.md
new file mode 100644
index 00000000..44625ff7
--- /dev/null
+++ b/fr/integrations/langchain/agents/conversational-agent.md
@@ -0,0 +1,11 @@
+---
+description: Agent conversationnel pour un modèle de chat. Il utilisera des invites spécifiques au chat.
+---
+
+# Agent Conversationnel
+
+
Noeud d'Agent Conversationnel
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/conversational-retrieval-agent.md b/fr/integrations/langchain/agents/conversational-retrieval-agent.md
new file mode 100644
index 00000000..c3ee1d75
--- /dev/null
+++ b/fr/integrations/langchain/agents/conversational-retrieval-agent.md
@@ -0,0 +1,7 @@
+---
+description: Dépréciation de Node.
+---
+
+# Agent de Récupération Conversationnel
+
+
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/csv-agent.md b/fr/integrations/langchain/agents/csv-agent.md
new file mode 100644
index 00000000..cec1eaca
--- /dev/null
+++ b/fr/integrations/langchain/agents/csv-agent.md
@@ -0,0 +1,11 @@
+---
+description: Agent utilisé pour répondre aux requêtes sur les données CSV.
+---
+
+# Agent CSV
+
+
Noeud de l'Agent CSV
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/mistralai-tool-agent.md b/fr/integrations/langchain/agents/mistralai-tool-agent.md
new file mode 100644
index 00000000..6eeebee0
--- /dev/null
+++ b/fr/integrations/langchain/agents/mistralai-tool-agent.md
@@ -0,0 +1,7 @@
+---
+description: Dépréciation de Node.
+---
+
+# Agent Outil MistralAI
+
+
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/openai-assistant/README.md b/fr/integrations/langchain/agents/openai-assistant/README.md
new file mode 100644
index 00000000..19bf00eb
--- /dev/null
+++ b/fr/integrations/langchain/agents/openai-assistant/README.md
@@ -0,0 +1,11 @@
+---
+description: Un agent qui utilise l'API OpenAI Assistant pour choisir l'outil et les arguments à appeler.
+---
+
+# OpenAI Assistant
+
+
OpenAI Assistant
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](../../../../contributing/) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/openai-assistant/threads.md b/fr/integrations/langchain/agents/openai-assistant/threads.md
new file mode 100644
index 00000000..e2d619c2
--- /dev/null
+++ b/fr/integrations/langchain/agents/openai-assistant/threads.md
@@ -0,0 +1,33 @@
+# Threads
+
+[Threads](https://platform.openai.com/docs/assistants/how-it-works/managing-threads-and-messages) n'est utilisé que lorsqu'un Assistant OpenAI est en cours d'utilisation. Il s'agit d'une session de conversation entre un Assistant et un utilisateur. Les threads stockent les messages et gèrent automatiquement la troncature pour adapter le contenu au contexte d'un modèle.
+
+
+
+## Conversations séparées pour plusieurs utilisateurs
+
+### UI & Chat intégré
+
+Par défaut, l'UI et le Chat intégré sépareront automatiquement les threads pour les conversations de plusieurs utilisateurs. Cela se fait en générant un **`chatId`** unique pour chaque nouvelle interaction. Cette logique est gérée en arrière-plan par Flowise.
+
+### API de prédiction
+
+POST /`api/v1/prediction/{your-chatflowid}`, spécifiez le **`chatId`**. Le même thread sera utilisé pour le même chatId.
+
+```json
+{
+ "question": "hello!",
+ "chatId": "user1"
+}
+```
+
+### Message API
+
+* GET `/api/v1/chatmessage/{your-chatflowid}`
+* DELETE `/api/v1/chatmessage/{your-chatflowid}`
+
+Vous pouvez également filtrer via **`chatId` -** `/api/v1/chatmessage/{your-chatflowid}?chatId={your-chatid}`
+
+Toutes les conversations peuvent également être visualisées et gérées depuis l'interface utilisateur :
+
+
diff --git a/fr/integrations/langchain/agents/openai-function-agent.md b/fr/integrations/langchain/agents/openai-function-agent.md
new file mode 100644
index 00000000..c7fa832d
--- /dev/null
+++ b/fr/integrations/langchain/agents/openai-function-agent.md
@@ -0,0 +1,7 @@
+---
+description: Dépréciation de Node.
+---
+
+# Agent de Fonction OpenAI
+
+
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/openai-tool-agent.md b/fr/integrations/langchain/agents/openai-tool-agent.md
new file mode 100644
index 00000000..eddbfb60
--- /dev/null
+++ b/fr/integrations/langchain/agents/openai-tool-agent.md
@@ -0,0 +1,7 @@
+---
+description: Dépréciation de Node.
+---
+
+# Agent d'outil OpenAI
+
+
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/react-agent-chat.md b/fr/integrations/langchain/agents/react-agent-chat.md
new file mode 100644
index 00000000..9599a251
--- /dev/null
+++ b/fr/integrations/langchain/agents/react-agent-chat.md
@@ -0,0 +1,11 @@
+# ReAct Agent Chat
+
+Agent qui utilise la logique [ReAct](https://react-lm.github.io/) (Raisonnement et Action) pour décider quelle action entreprendre, optimisé pour être utilisé avec des modèles de chat.
+
+
+
+
Noeud de Chat de l'Agent ReAct
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez fournir pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/react-agent-llm.md b/fr/integrations/langchain/agents/react-agent-llm.md
new file mode 100644
index 00000000..17c6f758
--- /dev/null
+++ b/fr/integrations/langchain/agents/react-agent-llm.md
@@ -0,0 +1,11 @@
+# ReAct Agent LLM
+
+Agent qui utilise la logique [ReAct](https://react-lm.github.io/) (Raisonnement et Action) pour décider quelle action entreprendre, optimisé pour être utilisé avec des modèles non conversationnels.
+
+
+
+
Node de l'Agent ReAct LLM
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/tool-agent.md b/fr/integrations/langchain/agents/tool-agent.md
new file mode 100644
index 00000000..3ad73da5
--- /dev/null
+++ b/fr/integrations/langchain/agents/tool-agent.md
@@ -0,0 +1,11 @@
+---
+description: Agent qui utilise l'appel de fonction pour choisir les outils et les arguments à appeler.
+---
+
+# Agent d'Outils
+
+
Noeud de l'Agent d'Outils
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/agents/xml-agent.md b/fr/integrations/langchain/agents/xml-agent.md
new file mode 100644
index 00000000..c2b76e05
--- /dev/null
+++ b/fr/integrations/langchain/agents/xml-agent.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Agent conçu pour les LLMs qui sont performants en raisonnement/rédaction XML (par ex :
+ Anthropic Claude).
+---
+
+# Agent XML
+
+
Noeud de l'Agent XML
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/README.md b/fr/integrations/langchain/cache/README.md
new file mode 100644
index 00000000..19a521b1
--- /dev/null
+++ b/fr/integrations/langchain/cache/README.md
@@ -0,0 +1,18 @@
+---
+description: Nœuds de Cache LangChain
+---
+
+# Cache
+
+***
+
+Le caching peut vous faire économiser de l'argent en réduisant le nombre d'appels API que vous effectuez auprès du fournisseur LLM, si vous demandez souvent la même complétion plusieurs fois. Cela peut accélérer votre application en diminuant le nombre d'appels API que vous faites au fournisseur LLM.
+
+### Nœuds de Cache :
+
+* [Cache Memoire](in-memory-cache.md)
+* [Cache Integrée Memoire](inmemory-embedding-cache.md)
+* [Cache Momento](momento-cache.md)
+* [Cache Redis](redis-cache.md)
+* [Cache Integrée Redis](redis-embeddings-cache.md)
+* [Cache Redis Upstash](upstash-redis-cache.md)
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/in-memory-cache.md b/fr/integrations/langchain/cache/in-memory-cache.md
new file mode 100644
index 00000000..919c9bc1
--- /dev/null
+++ b/fr/integrations/langchain/cache/in-memory-cache.md
@@ -0,0 +1,11 @@
+---
+description: Met en cache la réponse LLM dans la mémoire locale, sera effacée lorsque l'application sera redémarrée.
+---
+
+# Cache InMemory
+
+
Noeud de Cache InMemory
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/inmemory-embedding-cache.md b/fr/integrations/langchain/cache/inmemory-embedding-cache.md
new file mode 100644
index 00000000..b604abf0
--- /dev/null
+++ b/fr/integrations/langchain/cache/inmemory-embedding-cache.md
@@ -0,0 +1,11 @@
+---
+description: Mettre en cache les embeddings générés en mémoire pour éviter de devoir les recalculer.
+---
+
+# Cache d'Embedding en Mémoire
+
+
Noeud de Cache d'Embedding en Mémoire
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/momento-cache.md b/fr/integrations/langchain/cache/momento-cache.md
new file mode 100644
index 00000000..24956a4f
--- /dev/null
+++ b/fr/integrations/langchain/cache/momento-cache.md
@@ -0,0 +1,11 @@
+---
+description: Mettre en cache la réponse LLM en utilisant Momento, un cache distribué et sans serveur.
+---
+
+# Cache Momento
+
+
Noeud de Cache Momento
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/redis-cache.md b/fr/integrations/langchain/cache/redis-cache.md
new file mode 100644
index 00000000..4b16ca7c
--- /dev/null
+++ b/fr/integrations/langchain/cache/redis-cache.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Mettre en cache la réponse LLM dans Redis, utile pour partager le cache
+ entre plusieurs processus ou serveurs.
+---
+
+# Cache Redis
+
+
Noeud de Cache Redis
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez fournir pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/redis-embeddings-cache.md b/fr/integrations/langchain/cache/redis-embeddings-cache.md
new file mode 100644
index 00000000..d1ddf949
--- /dev/null
+++ b/fr/integrations/langchain/cache/redis-embeddings-cache.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Mettre en cache la réponse LLM dans Redis, utile pour partager le cache entre plusieurs
+ processus ou serveurs.
+---
+
+# Cache d'Embeddings Redis
+
+
Noeud de Cache d'Embeddings Redis
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/cache/upstash-redis-cache.md b/fr/integrations/langchain/cache/upstash-redis-cache.md
new file mode 100644
index 00000000..b10cfcdc
--- /dev/null
+++ b/fr/integrations/langchain/cache/upstash-redis-cache.md
@@ -0,0 +1,11 @@
+---
+description: Mise en cache des réponses LLM dans Upstash Redis, données sans serveur pour Redis et Kafka.
+---
+
+# Cache Upstash Redis
+
+
Noeud de cache Upstash Redis
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/README.md b/fr/integrations/langchain/chains/README.md
new file mode 100644
index 00000000..03e48d94
--- /dev/null
+++ b/fr/integrations/langchain/chains/README.md
@@ -0,0 +1,34 @@
+---
+description: Nœuds de chaîne LangChain
+---
+
+# Chaînes
+
+***
+
+Dans le contexte des chatbots et des grands modèles de langage, les "chaînes" désignent généralement des séquences de texte ou de tours de conversation. Ces chaînes sont utilisées pour stocker et gérer l'historique de la conversation et le contexte pour le chatbot ou le modèle de langage. Les chaînes aident le modèle à comprendre la conversation en cours et à fournir des réponses cohérentes et contextuellement pertinentes.
+
+Voici comment fonctionnent les chaînes :
+
+1. **Historique de la conversation** : Lorsque un utilisateur interagit avec un chatbot ou un modèle de langage, la conversation est souvent représentée comme une série de messages texte ou de tours de conversation. Chaque message de l'utilisateur et du modèle est stocké dans l'ordre chronologique pour maintenir le contexte de la conversation.
+2. **Entrée et sortie** : Chaque chaîne se compose à la fois de l'entrée de l'utilisateur et de la sortie du modèle. L'entrée de l'utilisateur est généralement appelée la "chaîne d'entrée", tandis que les réponses du modèle sont stockées dans la "chaîne de sortie". Cela permet au modèle de se référer aux messages précédents dans la conversation.
+3. **Compréhension contextuelle** : En préservant l'ensemble de l'historique de la conversation dans ces chaînes, le modèle peut comprendre le contexte et se référer à des messages antérieurs pour fournir des réponses cohérentes et contextuellement pertinentes. Cela est crucial pour maintenir une conversation naturelle et significative avec les utilisateurs.
+4. **Longueur maximale** : Les chaînes ont une longueur maximale pour gérer l'utilisation de la mémoire et les ressources informatiques. Lorsque une chaîne devient trop longue, des messages plus anciens peuvent être supprimés ou tronqués pour faire de la place pour de nouveaux messages. Cela peut potentiellement entraîner une perte de contexte si des détails importants de la conversation sont supprimés.
+5. **Continuation de la conversation** : Dans une interaction en temps réel avec un chatbot ou un modèle de langage, la chaîne d'entrée est continuellement mise à jour avec les nouveaux messages de l'utilisateur, et la chaîne de sortie est mise à jour avec les réponses du modèle. Cela permet au modèle de suivre la conversation en cours et de répondre de manière appropriée.
+
+Les chaînes sont un concept fondamental dans la construction et le maintien des conversations des chatbots et des modèles de langage. Elles garantissent que le modèle a accès au contexte dont il a besoin pour générer des réponses significatives et conscientes du contexte, rendant l'interaction plus engageante et utile pour les utilisateurs.
+
+### Nœuds de chaîne :
+
+* [GET API Chain](get-api-chain.md)
+* [OpenAPI Chain](openapi-chain.md)
+* [POST API Chain](post-api-chain.md)
+* [Conversation Chain](conversation-chain.md)
+* [Conversational Retrieval QA Chain](conversational-retrieval-qa-chain.md)
+* [LLM Chain](llm-chain.md)
+* [Multi Prompt Chain](multi-prompt-chain.md)
+* [Multi Retrieval QA Chain](multi-retrieval-qa-chain.md)
+* [Retrieval QA Chain](retrieval-qa-chain.md)
+* [Sql Database Chain](sql-database-chain.md)
+* [Vectara QA Chain](vectara-chain.md)
+* [VectorDB QA Chain](vectordb-qa-chain.md)
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/conversation-chain.md b/fr/integrations/langchain/chains/conversation-chain.md
new file mode 100644
index 00000000..a85ae1d7
--- /dev/null
+++ b/fr/integrations/langchain/chains/conversation-chain.md
@@ -0,0 +1,11 @@
+---
+description: Modèles de chat pour une chaîne de conversation spécifique avec mémoire.
+---
+
+# Chaîne de Conversation
+
+
Noeud de la Chaîne de Conversation
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/conversational-retrieval-qa-chain.md b/fr/integrations/langchain/chains/conversational-retrieval-qa-chain.md
new file mode 100644
index 00000000..86873233
--- /dev/null
+++ b/fr/integrations/langchain/chains/conversational-retrieval-qa-chain.md
@@ -0,0 +1,31 @@
+# Conversational Retrieval QA Chain
+
+A chain for performing question-answering tasks with a retrieval component.
+
+
+
+## Definitions
+
+**A retrieval-based question-answering chain**, which integrates with a retrieval component and allows you to configure input parameters and perform question-answering tasks.\
+**Retrieval-Based Chatbots:** Retrieval-based chatbots are chatbots that generate responses by selecting pre-defined responses from a database or a set of possible responses. They "retrieve" the most appropriate response based on the input from the user.\
+**QA (Question Answering):** QA systems are designed to answer questions posed in natural language. They typically involve understanding the question and searching for or generating an appropriate answer.
+
+## Inputs
+
+* [Language Model](../chat-models/)
+* [Vector Store Retriever](../vector-stores/)
+* [Memory (optional)](../memory/)
+
+## Parameters
+
+| Name | Description |
+| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Return Source Documents | To return citations/sources that were used to build up the response |
+| System Message | An instruction for LLM on how to answer query |
+| Chain Option | Method on how to summarize, answer questions, and extract information from documents. Read [more](https://js.langchain.com/docs/modules/chains/document/) |
+
+## Outputs
+
+| Name | Description |
+| ------------------------------ | ----------------------------- |
+| ConversationalRetrievalQAChain | Final node to return response |
diff --git a/fr/integrations/langchain/chains/get-api-chain.md b/fr/integrations/langchain/chains/get-api-chain.md
new file mode 100644
index 00000000..a454a765
--- /dev/null
+++ b/fr/integrations/langchain/chains/get-api-chain.md
@@ -0,0 +1 @@
+fr/integrations/langchain/chains/conversation-chain.md fr/integrations/langchain/chains/conversational-retrieval-qa-chain.md fr/integrations/langchain/chains/get-api-chain.md fr/integrations/langchain/chains/llm-chain.md fr/integrations/langchain/chains/multi-prompt-chain.md fr/integrations/langchain/chains/multi-retrieval-qa-chain.md fr/integrations/langchain/chains/openapi-chain.md fr/integrations/langchain/chains/post-api-chain.md fr/integrations/langchain/chains/README.md fr/integrations/langchain/chains/retrieval-qa-chain.md fr/integrations/langchain/chains/sql-database-chain.md fr/integrations/langchain/chains/vectara-chain.md fr/integrations/langchain/chains/vectordb-qa-chain.md
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/llm-chain.md b/fr/integrations/langchain/chains/llm-chain.md
new file mode 100644
index 00000000..9c98e517
--- /dev/null
+++ b/fr/integrations/langchain/chains/llm-chain.md
@@ -0,0 +1,11 @@
+---
+description: Chaîne pour exécuter des requêtes contre des LLM.
+---
+
+# Chaîne LLM
+
+
Noeud de la Chaîne LLM
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
diff --git a/fr/integrations/langchain/chains/multi-prompt-chain.md b/fr/integrations/langchain/chains/multi-prompt-chain.md
new file mode 100644
index 00000000..4f9634d7
--- /dev/null
+++ b/fr/integrations/langchain/chains/multi-prompt-chain.md
@@ -0,0 +1,12 @@
+---
+description: >-
+ Chain sélectionne automatiquement un prompt approprié parmi plusieurs modèles de prompt.
+---
+
+# Chaîne de Prompts Multiples
+
+
Noeud de Chaîne de Prompts Multiples
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/multi-retrieval-qa-chain.md b/fr/integrations/langchain/chains/multi-retrieval-qa-chain.md
new file mode 100644
index 00000000..b681befb
--- /dev/null
+++ b/fr/integrations/langchain/chains/multi-retrieval-qa-chain.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Chaîne QA qui sélectionne automatiquement un magasin de vecteurs approprié parmi plusieurs
+ récupérateurs.
+---
+
+# Chaîne QA de Multi Récupération
+
+
Noeud de la Chaîne QA de Multi Récupération
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/openapi-chain.md b/fr/integrations/langchain/chains/openapi-chain.md
new file mode 100644
index 00000000..49c041df
--- /dev/null
+++ b/fr/integrations/langchain/chains/openapi-chain.md
@@ -0,0 +1,11 @@
+---
+description: Chaîne qui sélectionne et appelle automatiquement des API uniquement sur la base d'une spécification OpenAPI.
+---
+
+# Chaîne OpenAPI
+
+
Noeud de la Chaîne OpenAPI
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/post-api-chain.md b/fr/integrations/langchain/chains/post-api-chain.md
new file mode 100644
index 00000000..a97b9ea8
--- /dev/null
+++ b/fr/integrations/langchain/chains/post-api-chain.md
@@ -0,0 +1,11 @@
+---
+description: Chaîne pour exécuter des requêtes contre l'API POST.
+---
+
+# Chaîne API POST
+
+
Noeud de la chaîne API POST
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/retrieval-qa-chain.md b/fr/integrations/langchain/chains/retrieval-qa-chain.md
new file mode 100644
index 00000000..380ec7b8
--- /dev/null
+++ b/fr/integrations/langchain/chains/retrieval-qa-chain.md
@@ -0,0 +1,11 @@
+---
+description: Chaîne QA pour répondre à une question basée sur les documents récupérés.
+---
+
+# Chaîne QA de Récupération
+
+
Noeud de la Chaîne QA de Récupération
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/sql-database-chain.md b/fr/integrations/langchain/chains/sql-database-chain.md
new file mode 100644
index 00000000..a4a374b5
--- /dev/null
+++ b/fr/integrations/langchain/chains/sql-database-chain.md
@@ -0,0 +1,11 @@
+---
+description: Répondre à des questions sur une base de données SQL.
+---
+
+# Chaîne de Base de Données SQL
+
+
Noeud de Chaîne de Base de Données SQL
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/vectara-chain.md b/fr/integrations/langchain/chains/vectara-chain.md
new file mode 100644
index 00000000..2bc49cb1
--- /dev/null
+++ b/fr/integrations/langchain/chains/vectara-chain.md
@@ -0,0 +1,27 @@
+# Vectara QA Chain
+
+Une chaîne pour effectuer des tâches de question-réponse avec Vectara.
+
+
+
+## Définitions
+
+**Une chaîne de question-réponse basée sur la récupération**, qui s'intègre à un composant de récupération Vectara et vous permet de configurer les paramètres d'entrée et d'effectuer des tâches de question-réponse.
+
+## Entrées
+
+* [Vectara Store](../vector-stores/vectara.md)
+
+## Paramètres
+
+| Nom | Description |
+| ---------------------- | ------------------------------------------------------------- |
+| Nom du Prompt de Résumé | modèle à utiliser pour générer le résumé |
+| Langue de la Réponse | langue souhaitée pour la réponse |
+| Résultats Résumés Max | nombre de résultats principaux à utiliser dans le résumé (par défaut 7) |
+
+## Sorties
+
+| Nom | Description |
+| ----------------- | ----------------------------- |
+| VectaraQAChain | Noeud final pour retourner la réponse |
\ No newline at end of file
diff --git a/fr/integrations/langchain/chains/vectordb-qa-chain.md b/fr/integrations/langchain/chains/vectordb-qa-chain.md
new file mode 100644
index 00000000..b637e09e
--- /dev/null
+++ b/fr/integrations/langchain/chains/vectordb-qa-chain.md
@@ -0,0 +1,11 @@
+---
+description: Chaîne QA pour les bases de données vectorielles.
+---
+
+# Chaîne QA VectorDB
+
+
Noeud de la chaîne QA VectorDB
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/README.md b/fr/integrations/langchain/chat-models/README.md
new file mode 100644
index 00000000..c62a36d5
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/README.md
@@ -0,0 +1,30 @@
+---
+description: Nœuds de Modèles de Chat LangChain
+---
+
+# Modèles de Chat
+
+***
+
+Les modèles de chat prennent une liste de messages en entrée et renvoient un message généré par le modèle en sortie. Ces modèles, tels que **gpt-3.5-turbo** ou **gpt4**, sont puissants et moins coûteux que leurs prédécesseurs, les modèles de Complétion tels que **text-davincii-003**.
+
+### Nœuds de Modèle de Chat :
+
+* [AWS ChatBedrock](aws-chatbedrock.md)
+* [Azure ChatOpenAI](../../llamaindex/chat-models/azurechatopenai.md)
+* [NIBittensorChat](broken-reference)
+* [ChatAnthropic](chatanthropic.md)
+* [ChatCohere](chatcohere.md)
+* [Chat Fireworks](chat-fireworks.md)
+* [ChatGoogleGenerativeAI](google-ai.md)
+* [ChatGooglePaLM](broken-reference)
+* [Google VertexAI](google-vertexai.md)
+* [ChatHuggingFace](chathuggingface.md)
+* [ChatLocalAI](chatlocalai.md)
+* [ChatMistralAI](mistral-ai.md)
+* [ChatOllama](chatollama.md)
+* [ChatOllama Funtion](broken-reference)
+* [ChatOpenAI](azure-chatopenai.md)
+* [ChatOpenAI Custom](broken-reference)
+* [ChatTogetherAI](chattogetherai.md)
+* [GroqChat](groqchat.md)
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/aws-chatbedrock.md b/fr/integrations/langchain/chat-models/aws-chatbedrock.md
new file mode 100644
index 00000000..866e1d53
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/aws-chatbedrock.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper autour des modèles de langage volumineux AWS Bedrock utilisant le point de terminaison Chat.
+---
+
+# AWS ChatBedrock
+
+
AWS ChatBedrock
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/azure-chatopenai-1.md b/fr/integrations/langchain/chat-models/azure-chatopenai-1.md
new file mode 100644
index 00000000..866e1d53
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/azure-chatopenai-1.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper autour des modèles de langage volumineux AWS Bedrock utilisant le point de terminaison Chat.
+---
+
+# AWS ChatBedrock
+
+
AWS ChatBedrock
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/azure-chatopenai.md b/fr/integrations/langchain/chat-models/azure-chatopenai.md
new file mode 100644
index 00000000..5de1d4f5
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/azure-chatopenai.md
@@ -0,0 +1,64 @@
+# ChatOpenAI
+
+## Prerequisite
+
+1. An [OpenAI](https://openai.com/) account
+2. Create an [API key](https://platform.openai.com/api-keys)
+
+## Setup
+
+1. **Chat Models** > drag **ChatOpenAI** node
+
+
+
+2. **Connect Credential** > click **Create New**
+
+
+
+2. Fill in the **ChatOpenAI** credential
+
+
+
+4. Voila [🎉](https://emojipedia.org/party-popper/), you can now use **ChatOpenAI node** in Flowise
+
+
+
+## Custom base URL and headers
+
+Flowise supports using custom base URL and headers for Chat OpenAI. Users can easily use integrations like OpenRouter, TogetherAI and others that support OpenAI API compatibility.
+
+### TogetherAI
+
+1. Refer to official [docs](https://docs.together.ai/docs/openai-api-compatibility#nodejs) from TogetherAI
+2. Create a new credential with TogetherAI API key
+3. Click **Additional Parameters** on ChatOpenAI node.
+4. Change the Base Path:
+
+
+
+### Open Router
+
+1. Refer to official [docs](https://openrouter.ai/docs#quick-start) from OpenRouter
+2. Create a new credential with OpenRouter API key
+3. Click Additional Parameters on ChatOpenAI node
+4. Change the Base Path and Base Options:
+
+
+
+## Custom Model
+
+For models that are not supported on ChatOpenAI node, you can use ChatOpenAI Custom for that. This allow users to fill in model name such as `mistralai/Mixtral-8x7B-Instruct-v0.1`
+
+
+
+## Image Upload
+
+You can also allow images to be uploaded and analyzed by LLM. Under the hood, Flowise will use [OpenAI Vison ](https://platform.openai.com/docs/guides/vision)model to process the image. Only works with LLMChain, Conversation Chain, ReAct Agent, and Conversational Agent.
+
+
+
+From the chat interface, you will now see a new image upload button:
+
+
+
+
diff --git a/fr/integrations/langchain/chat-models/chat-fireworks.md b/fr/integrations/langchain/chat-models/chat-fireworks.md
new file mode 100644
index 00000000..30dbf3fa
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chat-fireworks.md
@@ -0,0 +1,11 @@
+---
+description: Enveloppe autour des points de terminaison de Fireworks Chat.
+---
+
+# Chat Fireworks
+
+
Noeud de Chat Fireworks
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/chatanthropic.md b/fr/integrations/langchain/chat-models/chatanthropic.md
new file mode 100644
index 00000000..19c91ccf
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chatanthropic.md
@@ -0,0 +1,11 @@
+---
+description: Enveloppe autour des modèles de langage de ChatAnthropic qui utilisent le point de terminaison Chat.
+---
+
+# ChatAnthropic
+
+
Noeud ChatAnthropic
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/chatcohere.md b/fr/integrations/langchain/chat-models/chatcohere.md
new file mode 100644
index 00000000..a1d9051c
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chatcohere.md
@@ -0,0 +1,11 @@
+---
+description: Enveloppe autour des points de terminaison de Cohere Chat.
+---
+
+# ChatCohere
+
+
Node ChatCohere
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/chatcometapi.md b/fr/integrations/langchain/chat-models/chatcometapi.md
new file mode 100644
index 00000000..b6a6ef21
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chatcometapi.md
@@ -0,0 +1,16 @@
+# ChatCometAPI
+
+## Description
+CometAPI est une plateforme API unifiée qui donne accès à plus de 500 modèles d'IA, y compris GPT, Claude, Gemini, Qwen, DeepSeek, Midjourney, et d'autres, via une seule intégration. Elle offre un accès simplifié avec des formats API cohérents entre différents fournisseurs de modèles.
+
+## Prérequis
+1. Consultez la [documentation](https://api.cometapi.com/doc) officielle de CometAPI.
+2. Obtenez votre clé API depuis la [Console CometAPI](https://api.cometapi.com/console/token).
+
+## Guide étape par étape
+
Noeud ChatCometAPI
+
+1. **Modèles de chat** > Faites glisser le noeud **ChatCometAPI**.
+2. Créez un nouvel identifiant avec la clé API de CometAPI.
+3. Cliquez sur **Paramètres supplémentaires** dans le noeud ChatCometAPI.
+4. Changez le chemin de base en : `https://api.cometapi.com/v1/`.
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/chathuggingface.md b/fr/integrations/langchain/chat-models/chathuggingface.md
new file mode 100644
index 00000000..074a6604
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chathuggingface.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper autour des grands modèles de langage HuggingFace.
+---
+
+# ChatHuggingFace
+
+
Node ChatHuggingFace
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/chatlocalai.md b/fr/integrations/langchain/chat-models/chatlocalai.md
new file mode 100644
index 00000000..3c76a55b
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chatlocalai.md
@@ -0,0 +1,62 @@
+# ChatLocalAI
+
+## Configuration de LocalAI
+
+[**LocalAI** ](https://github.com/go-skynet/LocalAI) est une API REST de remplacement qui est compatible avec les spécifications de l'API OpenAI pour l'inférence locale. Elle vous permet d'exécuter des LLM (et pas seulement) localement ou sur site avec du matériel de consommation, prenant en charge plusieurs familles de modèles compatibles avec le format ggml.
+
+Pour utiliser ChatLocalAI dans Flowise, suivez les étapes ci-dessous :
+
+1. ```bash
+ git clone https://github.com/go-skynet/LocalAI ```
+2.
cd LocalAI
+
+3. ```bash
+ # copy your models to models/
+ cp your-model.bin models/
+ ```
+
+Pour exemple :
+
+Téléchargez l'un des modèles depuis [gpt4all.io](https://gpt4all.io/index.html)
+
+```bash
+# Download gpt4all-j to models/
+wget https://gpt4all.io/models/ggml-gpt4all-j.bin -O models/ggml-gpt4all-j
+```
+In le dossier `/models`, vous devriez pouvoir voir le modèle téléchargé :
+
+
+
+Consultez [ici](https://localai.io/model-compatibility/index.html) pour la liste des modèles pris en charge.
+
+4. ```bash
+ docker compose up -d --pull always
+``` ```
+5. Now API is accessible at localhost:8080
+
+```bash
+# Test API
+curl http://localhost:8080/v1/models
+# {"object":"list","data":[{"id":"ggml-gpt4all-j.bin","object":"model"}]}
+```
+
+## Configuration de Flowise
+
+Glissez-déposez un nouveau composant ChatLocalAI sur le canevas :
+
+
+
+Remplissez les champs :
+
+* **Chemin de base** : L'URL de base de LocalAI, comme [http://localhost:8080/v1](http://localhost:8080/v1)
+* **Nom du modèle** : Le modèle que vous souhaitez utiliser. Notez qu'il doit se trouver dans le dossier `/models` du répertoire LocalAI. Par exemple : `ggml-gpt4all-j.bin`
+
+{% hint style="info" %}
+Si vous exécutez à la fois Flowise et LocalAI sur Docker, vous devrez peut-être changer le chemin de base en [http://host.docker.internal:8080/v1](http://host.docker.internal:8080/v1). Pour les systèmes basés sur Linux, la passerelle Docker par défaut doit être utilisée car host.docker.internal n'est pas disponible : [http://172.17.0.1:8080/v1](http://172.17.0.1:8080/v1)
+{% endhint %}
+
+C'est tout ! Pour plus d'informations, consultez la [documentation](https://localai.io/basics/getting_started/index.html) de LocalAI.
+
+Regardez comment vous pouvez utiliser LocalAI sur Flowise
+
+{% embed url="https://youtu.be/0B0oIs8NS9k" %}
diff --git a/fr/integrations/langchain/chat-models/chatollama.md b/fr/integrations/langchain/chat-models/chatollama.md
new file mode 100644
index 00000000..4c12a4f0
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chatollama.md
@@ -0,0 +1,38 @@
+# ChatOllama
+
+## Prérequis
+
+1. Téléchargez [Ollama](https://github.com/ollama/ollama) ou exécutez-le sur [Docker.](https://hub.docker.com/r/ollama/ollama)
+2. Par exemple, vous pouvez utiliser la commande suivante pour lancer une instance Docker avec llama3
+
+ ```bash
+ docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
+ docker exec -it ollama ollama run llama3
+ ```
+
+## Configuration
+
+1. **Modèles de chat** > faites glisser le nœud **ChatOllama**
+
+
+
+2. Remplissez le modèle qui fonctionne sur Ollama. Par exemple : `llama2`. Vous pouvez également utiliser des paramètres supplémentaires :
+
+
+
+3. Voilà [🎉](https://emojipedia.org/party-popper/), vous pouvez maintenant utiliser le **nœud ChatOllama** dans Flowise
+
+
+
+### Supplémentaire
+
+Si vous exécutez à la fois Flowise et Ollama sur Docker, vous devrez changer l'URL de base pour ChatOllama.
+
+Pour les systèmes d'exploitation Windows et MacOS, spécifiez [http://host.docker.internal:8000](http://host.docker.internal:8000/). Pour les systèmes basés sur Linux, la passerelle Docker par défaut doit être utilisée car host.docker.internal n'est pas disponible : [http://172.17.0.1:8000](http://172.17.0.1:8000/)
+
+
+
+## Ressources
+
+* [LangchainJS ChatOllama](https://js.langchain.com/docs/integrations/chat/ollama)
+* [Ollama](https://github.com/ollama/ollama)
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/chattogetherai.md b/fr/integrations/langchain/chat-models/chattogetherai.md
new file mode 100644
index 00000000..36265af7
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/chattogetherai.md
@@ -0,0 +1,11 @@
+---
+description: Enveloppe autour des modèles de langage de TogetherAI
+---
+
+# ChatTogetherAI
+
+
Node ChatTogetherAI
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/google-ai.md b/fr/integrations/langchain/chat-models/google-ai.md
new file mode 100644
index 00000000..ceb1cf9c
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/google-ai.md
@@ -0,0 +1,42 @@
+# ChatGoogleGenerativeAI
+
+## Prérequis
+
+1. Inscrivez-vous pour un compte [Google](https://accounts.google.com/InteractiveLogin)
+2. Créez une [clé API](https://aistudio.google.com/app/apikey)
+
+## Configuration
+
+1. **Modèles de Chat** > faites glisser le nœud **ChatGoogleGenerativeAI**
+
+
+
+2. **Connecter les Identifiants** > cliquez sur **Créer Nouveau**
+
+
+
+3. Remplissez les identifiants **Google AI**
+
+
+
+4. Voilà [🎉](https://emojipedia.org/party-popper/), vous pouvez maintenant utiliser le nœud **ChatGoogleGenerativeAI** dans Flowise
+
+
+
+## Configuration des Attributs de Sécurité
+
+1. Cliquez sur **Paramètres Supplémentaires**
+
+
+
+* Lors de la configuration des **Attributs de Sécurité**, le nombre de sélections dans **Catégorie de Dommages** et **Seuil de Blocage de Dommages** doit être le même. Sinon, une erreur sera générée : `La Catégorie de Dommages et le Seuil de Blocage de Dommages ne sont pas de la même longueur`
+
+* La combinaison des **Attributs de Sécurité** ci-dessous entraînera que `Dangereux` est défini sur `Faible et Au-dessus` et `Harcèlement` est défini sur `Moyen et Au-dessus`
+
+
+
+## Ressources
+
+* [LangChain JS ChatGoogleGenerativeAI](https://js.langchain.com/docs/integrations/chat/google_generativeai)
+* [Google AI pour les Développeurs](https://ai.google.dev/)
+* [Documentation de l'API Gemini](https://ai.google.dev/docs)
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/google-vertexai.md b/fr/integrations/langchain/chat-models/google-vertexai.md
new file mode 100644
index 00000000..c32b2c3a
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/google-vertexai.md
@@ -0,0 +1,86 @@
+# Google VertexAI
+
+## Prérequis
+
+1. [Commencez votre GCP](https://cloud.google.com/docs/get-started)
+2. Installez le [Google Cloud CLI](https://cloud.google.com/sdk/docs/install-sdk)
+
+## Configuration
+
+### Activer l'API Vertex AI
+
+1. Allez sur Vertex AI dans GCP et cliquez sur **"ACTIVER TOUTES LES API RECOMMANDÉES"**
+
+
+
+## Créer un fichier d'identification _(Optionnel)_
+
+Il existe 2 façons de créer un fichier d'identification
+
+### No. 1 : Utiliser le GCP CLI
+
+1. Ouvrez le terminal et exécutez la commande suivante
+
+```bash
+gcloud auth application-default login
+```
+```markdown
+2. Connectez-vous à votre compte GCP
+3. Vérifiez votre fichier d'identification. Vous pouvez trouver votre fichier d'identification dans `~/.config/gcloud/application_default_credentials.json`
+
+### No. 2 : Utiliser la console GCP
+
+1. Allez sur la console GCP et cliquez sur **"CRÉER DES IDENTIFIANTS"**
+
+
+
+2. Créez un compte de service
+
+
+
+3. Remplissez le formulaire des détails du compte de service et cliquez sur **"CRÉER ET CONTINUER"**
+4. Sélectionnez le rôle approprié (par exemple, Utilisateur Vertex AI) et cliquez sur **"FAIRE"**
+
+
+
+5. Cliquez sur le compte de service que vous avez créé et cliquez sur **"AJOUTER UNE CLÉ" -> "Créer une nouvelle clé"**
+
+
+
+6. Sélectionnez JSON et cliquez sur **"CRÉER"**, puis vous pourrez télécharger votre fichier d'identification
+
+
+
+## Flowise
+
+
+
+### Sans fichier d'identification
+
+Si vous utilisez un service GCP comme Cloud Run, ou si vous avez installé des identifiants par défaut sur votre machine locale, vous n'avez pas besoin de définir cet identifiant.
+
+### Avec fichier d'identification
+
+1. Allez sur la page des identifiants sur Flowise et cliquez sur **"Ajouter un identifiant"**
+2. Cliquez sur Google Vertex Auth
+
+
+
+3. Enregistrez votre fichier d'identification. Il y a 2 façons d'enregistrer votre fichier d'identification.
+
+
+
+* **Option 1 : Entrez le chemin de votre fichier d'identification**
+ * Si vous avez un fichier d'identification sur votre machine, vous pouvez entrer le chemin de votre fichier d'identification dans `Chemin du fichier d'identification Google Application`
+* **Option 2 : Collez le texte de votre fichier d'identification**
+ * Ou vous pouvez copier tout le texte du fichier d'identification et le coller dans `Objet JSON d'identification Google`
+
+4. Enfin, cliquez sur le bouton "Ajouter".
+5. **🎉**Vous pouvez maintenant utiliser ChatGoogleVertexAI avec l'identifiant dans Flowise !
+
+### Ressources
+
+* [LangChain JS GoogleVertexAI](https://js.langchain.com/docs/api/llms_googlevertexai/classes/GoogleVertexAI)
+* [Aperçu des comptes de service Google](https://cloud.google.com/iam/docs/service-account-overview?)
+* [Essayez Google Vertex AI Palm 2 avec Flowise : Sans coder pour tirer parti de l'intuition](https://tech.beatrust.com/entry/2023/08/22/Try_Google_Vertex_AI_Palm_2_with_Flowise%3A_Without_Coding_to_Leverage_Intuition)
+```
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/groqchat.md b/fr/integrations/langchain/chat-models/groqchat.md
new file mode 100644
index 00000000..3298a161
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/groqchat.md
@@ -0,0 +1,11 @@
+---
+description: Enveloppe autour de l'API Groq avec le moteur d'inférence LPU.
+---
+
+# GroqChat
+
+
Node GroqChat
+
+{% hint style="info" %}
+Cette section est en cours de développement. Nous apprécions toute aide que vous pouvez apporter pour compléter cette section. Veuillez consulter notre [Guide de Contribution](broken-reference) pour commencer.
+{% endhint %}
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/ibm-watsonx.md b/fr/integrations/langchain/chat-models/ibm-watsonx.md
new file mode 100644
index 00000000..04d8b3b4
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/ibm-watsonx.md
@@ -0,0 +1,49 @@
+# IBM Watsonx
+
+## Prérequis
+
+1. Inscrivez-vous sur [IBM Watsonx](https://www.ibm.com/watsonx)
+2. Créez un nouveau projet :
+
+
+
+
+
+3. Une fois le projet créé, retournez au tableau de bord principal et cliquez sur **Explorer les modèles de base** :
+
+
+
+4. Choisissez le modèle que vous souhaitez utiliser et ouvrez-le dans Prompt Lab :
+
+
+
+5. Dans le coin supérieur droit, cliquez sur Afficher le code :
+
+
+
+6. Notez le paramètre `model_id` et `version`. Dans ce cas, c'est `ibm/granite-3-8b-instruct,` et la version est `2023-05-29`.
+7. Cliquez sur la barre de navigation à gauche, puis cliquez sur Accès développeur
+
+
+
+8. Notez l'URL `watsonx.ai`, l'ID du projet et créez une nouvelle clé API depuis le tableau de bord IBM Cloud.
+9. À ce stade, vous devriez avoir les informations suivantes :
+ * URL Watsonx.ai
+ * ID du projet
+ * Clé API
+ * Version du modèle
+ * ID du modèle
+
+## Configuration
+
+1. **Modèles de chat** > faites glisser le nœud **ChatIBMWatsonx**
+
+
+
+2. Remplissez le modèle avec l'ID du modèle précédemment. Créez de nouvelles informations d'identification et remplissez tous les détails.
+
+
+
+2. Voilà [🎉](https://emojipedia.org/party-popper/), vous pouvez maintenant utiliser le **nœud ChatIBMWatsonx** dans Flowise !
+
+
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/mistral-ai.md b/fr/integrations/langchain/chat-models/mistral-ai.md
new file mode 100644
index 00000000..d83a4049
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/mistral-ai.md
@@ -0,0 +1,30 @@
+# ChatMistralAI
+
+## Prérequis
+
+1. Inscrivez-vous pour un compte [Mistral AI](https://mistral.ai/)
+2. Créez une [clé API](https://console.mistral.ai/user/api-keys/)
+
+## Configuration
+
+1. **Modèles de Chat** > faites glisser le nœud **ChatMistralAI**
+
+
+
+2. **Connecter les Identifiants** > cliquez sur **Créer Nouveau**
+
+
+
+3. Remplissez les identifiants **Mistral AI**
+
+
+
+4. Voilà [🎉](https://emojipedia.org/party-popper/), vous pouvez maintenant utiliser le **nœud ChatMistralAI** dans Flowise
+
+
+
+## Ressources
+
+* [LangChain JS ChatMistralAI](https://js.langchain.com/docs/integrations/chat/mistral)
+* [Mistral AI](https://mistral.ai/)
+* [Documentation Mistral AI](https://docs.mistral.ai/)
\ No newline at end of file
diff --git a/fr/integrations/langchain/chat-models/nvidia-nim.md b/fr/integrations/langchain/chat-models/nvidia-nim.md
new file mode 100644
index 00000000..4ea04edb
--- /dev/null
+++ b/fr/integrations/langchain/chat-models/nvidia-nim.md
@@ -0,0 +1,93 @@
+# NVIDIA NIM
+
+## Local
+
+### Remarque importante sur l'exécution de NIM avec Flowise
+
+Si une instance NIM existante est déjà en cours d'exécution (par exemple, via ChatRTX de NVIDIA), démarrer une autre instance via Flowise **sans vérifier un point de terminaison existant** peut provoquer des conflits. Ce problème se produit lorsque plusieurs commandes `podman run` sont exécutées sur le même NIM, entraînant des échecs.
+
+Pour obtenir de l'aide, consultez :
+
+- **[Forums des développeurs NVIDIA](https://forums.developer.nvidia.com/)** – Pour les problèmes techniques et les questions.
+- **[Discord des développeurs NVIDIA](https://discord.gg/nvidiadeveloper)** – Pour l'engagement communautaire et les [annonces](https://discord.com/channels/1019361803752456192/1340013505834647572).
+
+### Prérequis
+
+1. Configurez [NVIDIA NIM localement avec WSL2](https://docs.nvidia.com/nim/wsl2/1.0.0/getting-started.html).
+
+### Flowise
+
+1. **Modèles de chat** > Faites glisser le nœud **Chat NVIDIA NIM** > Cliquez sur **Configurer NIM localement**.
+
+
+
+2. Si NIM est déjà installé, cliquez sur **Suivant**. Sinon, cliquez sur **Télécharger** pour démarrer l'installateur.
+
+
+
+3. Sélectionnez une image de modèle à télécharger.
+
+
+
+4. Une fois sélectionnée, cliquez sur **Suivant** pour continuer le téléchargement.
+
+
+
+5. **Téléchargement de l'image** – La durée dépend de la vitesse de connexion Internet.
+
+
+
+6. En savoir plus sur [Relaxer les contraintes de mémoire](https://docs.nvidia.com/nim/large-language-models/1.7.0/configuration.html#environment-variables).
+ Le **port hôte** est le port que le conteneur doit mapper à la machine locale.
+
+
+
+7. **Démarrage du conteneur...**
+
+
+
+_Remarque : Si vous avez déjà un conteneur en cours d'exécution avec le modèle sélectionné, Flowise vous demandera si vous souhaitez réutiliser le conteneur en cours d'exécution. Vous pouvez choisir de réutiliser le conteneur en cours d'exécution ou d'en démarrer un nouveau avec un port différent._
+
+
+
+8. **Enregistrer le flux de discussion**
+
+9. [🎉](https://emojipedia.org/party-popper/) **Voilà !** Votre nœud **Chat NVIDIA NIM** est maintenant prêt à être utilisé dans Flowise !
+
+
+
+## Cloud
+
+### Prérequis
+
+1. Connectez-vous ou inscrivez-vous sur [NVIDIA](https://build.nvidia.com/).
+2. Dans la barre de navigation en haut, cliquez sur NIM :
+
+
+
+3. Recherchez le modèle que vous souhaitez utiliser. Pour le télécharger localement, nous allons utiliser Docker :
+
+
+
+4. Suivez les instructions de configuration de Docker. Vous devez d'abord obtenir une clé API pour tirer l'image Docker :
+
+
+
+### Flowise
+
+1. **Modèles de chat** > faites glisser le nœud **Chat NVIDIA NIM**
+
+
+
+2. Si vous utilisez un point de terminaison hébergé par NVIDIA, vous devez avoir votre clé API. **Connecter les identifiants** > cliquez sur **Créer nouveau.** Cependant, si vous utilisez une configuration locale, cela est optionnel.
+
+
+
+3. Entrez le nom du modèle et voilà [🎉](https://emojipedia.org/party-popper/), votre **nœud Chat NVIDIA NIM** est maintenant prêt à être utilisé dans Flowise !
+
+
+
+### Ressources
+
+- [NVIDIA LLM Guide de démarrage](https://docs.nvidia.com/nim/large-language-models/latest/getting-started.html)
+- [NVIDIA NIM](https://build.nvidia.com/microsoft/phi-3-mini-4k?snippet_tab=Docker)
\ No newline at end of file
diff --git a/fr/integrations/langchain/document-loaders/README.md b/fr/integrations/langchain/document-loaders/README.md
new file mode 100644
index 00000000..061ae7cc
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/README.md
@@ -0,0 +1,53 @@
+---
+description: LangChain Document Loader Nodes
+---
+
+# Chargeurs de documents
+
+***
+
+Les chargeurs de documents vous permettent de charger des documents provenant de différentes sources comme PDF, TXT, CSV, notion, confluence, etc. Ils sont souvent utilisés avec[Vector Stores](../vector-stores/)à être mis en baisse comme des intérêts, qui peuvent ensuite récupérer sur la requête.
+
+### Regardez une introduction sur les chargeurs de documents
+
+{% embed url = "https://youtu.be/kmtf9snicao"%}
+
+### Nœuds de chargeur de documents:
+
+* [Airtable](airtable.md)
+* [API Loader](api-loader.md)
+* [Apify Website Content Crawler](apify-website-content-crawler.md)
+* [BraveSearch Loader](bravesearch-api.md)
+* [Cheerio Web Scraper](cheerio-web-scraper.md)
+* [Confluence](confluence.md)
+* [Csv File](csv-file.md)
+* [Custom Document Loader](custom-document-loader.md)
+* [Document Store](document-store.md)
+* [Docx File](docx-file.md)
+* [Epub File](epub-file.md)
+* [Figma](figma.md)
+* [File](file-loader.md)
+* [FireCrawl](firecrawl.md)
+* [Folder](folder.md)
+* [GitBook](gitbook.md)
+* [Github](github.md)
+* [Google Drive](google-drive.md)
+* [Google Sheets](google-sheets.md)
+* [Jira](jira.md)
+* [Json File](json-file.md)
+* [Json Lines File](jsonlines.md)
+* [Microsoft Excel](microsoft-excel.md)
+* [Microsoft Powerpoint](microsoft-powerpoint.md)
+* [Microsoft Word](microsoft-word.md)
+* [Notion](notion.md)
+* [PDF Files](pdf-file.md)
+* [Plain Text](plain-text.md)
+* [Playwright Web Scraper](playwright-web-scraper.md)
+* [Puppeteer Web Scraper](puppeteer-web-scraper.md)
+* [S3 File Loader](s3-file-loader.md)
+* [SearchApi For Web Search](searchapi-for-web-search.md)
+* [SerpApi For Web Search](serpapi-for-web-search.md)
+* [Spider - web search & crawler](spider-web-scraper-crawler.md)
+* [Text File](text-file.md)
+* [Unstructured File Loader](unstructured-file-loader.md)
+* [Unstructured Folder Loader](unstructured-folder-loader.md)
diff --git a/fr/integrations/langchain/document-loaders/airtable.md b/fr/integrations/langchain/document-loaders/airtable.md
new file mode 100644
index 00000000..211a24f8
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/airtable.md
@@ -0,0 +1,66 @@
+---
+description: Load data from Airtable table.
+---
+
+# Chargeur de documents Airtable
+
+
nœud AirTable
figure>
+
+AirTable est un service de collaboration cloud qui combine les fonctionnalités d'une feuille de calcul avec une base de données. Ce module fournit des fonctionnalités complètes pour charger et traiter les données des tables Airtable.
+
+Ce module fournit un chargeur de document Airtable sophistiqué qui peut:
+- Chargez des données à partir de bases, de tables et de vues à air spécifiques
+- Filtre et sélectionner des champs spécifiques
+- Gérer la pagination et les grands ensembles de données
+- Prise en charge du filtrage personnalisé avec des formules
+- Traiter les données avec des séparateurs de texte
+- Personnaliser l'extraction des métadonnées
+
+## Entrées
+
+### Paramètres requis
+- ** ID de base **: l'identifiant de base Airtable (par exemple, app10ROBDGOX0YNSC)
+- ** ID de table **: l'identifiant de table spécifique (par exemple, tbljdmvbrgizbyico)
+- ** Connectez les informations d'identification **: AirTable API Credentials
+
+### Paramètres facultatifs
+- ** Voir ID **: Identificateur de vue spécifique (par exemple, viw9urp77id0ce4ee)
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Inclure uniquement les champs **: Liste de noms ou identifiants séparés par des virgules à inclure
+- ** Renvoie tout **: s'il faut renvoyer tous les résultats (par défaut: true)
+- ** Limit **: Nombre de résultats à retourner lorsque le retour tout est faux (par défaut: 100)
+- ** Filtre par formule **: Formule AirTable pour filtrer les enregistrements
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Récupération des données basée sur l'API
+- Sélection et filtrage des champs
+- Support de pagination
+- Filtrage basé sur la formule
+- Manipulation des métadonnées personnalisables
+- Capacités de division de texte
+- Gestion des erreurs pour les entrées non valides
+
+## Notes
+- Nécessite des informations d'identification API Airtable valide
+- L'ID de base et l'ID de table sont obligatoires
+- Les noms de champ contenant des virgules doivent utiliser des ID de champ à la place
+- Les formules de filtre doivent suivre la syntaxe de formule Airtable
+- La limitation des taux et les quotas API s'appliquent
+- Prend en charge la récupération de données complète et partielle
+
+## Exemple de structure d'URL
+Pour une URL de table comme:
+```
+https://airtable.com/app11RobdGoX0YNsC/tblJdmvbrgizbYICO/viw9UrP77Id0CE4ee
+```
+- ID de base: app10ROBDGOX0YNSC
+- ID de table: tbljdmvbrgizbyico
+- Afficher l'ID: viw9urp77id0ce4ee
+
diff --git a/fr/integrations/langchain/document-loaders/api-loader.md b/fr/integrations/langchain/document-loaders/api-loader.md
new file mode 100644
index 00000000..3832fe0b
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/api-loader.md
@@ -0,0 +1,82 @@
+---
+description: Load data from an API.
+---
+
+# Chargeur de documents API
+
+ figure>
API Loder Node
+
+Le chargeur de document API fournit des fonctionnalités pour charger et traiter les données des API externes à l'aide de requêtes HTTP. Ce module permet une intégration transparente avec des API et services Web RESTful.
+
+Ce module fournit un chargeur de document API polyvalent qui peut:
+- Faire obtenir HTTP et publier des demandes
+- Gérer les en-têtes personnalisés et les corps de demande
+- Traiter les réponses de l'API dans les documents
+- Soutenir les structures de données JSON
+- Personnaliser l'extraction des métadonnées
+- Traiter les réponses avec des séparateurs de texte
+
+## Entrées
+
+### Paramètres requis
+- ** URL **: L'URL de point de terminaison de l'API à appeler
+- ** Méthode **: Méthode HTTP à utiliser (obtenir ou publier)
+
+### Paramètres facultatifs
+- ** En-têtes **: objet JSON contenant des en-têtes HTTP
+- ** Corps **: objet JSON pour le corps de la demande postale
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Prise en charge de la méthode HTTP (GET / POST)
+- Configuration de l'en-tête personnalisée
+- Demander la personnalisation du corps
+- Traitement des réponses
+- Gestion des erreurs
+- Personnalisation des métadonnées
+- Capacités de division de texte
+
+## Exemple d'utilisation
+
+### Faire une demande
+```json
+{
+ "method": "GET",
+ "url": "https://api.example.com/data",
+ "headers": {
+ "Authorization": "Bearer token123",
+ "Accept": "application/json"
+ }
+}
+```
+
+### Demande de poste
+```json
+{
+ "method": "POST",
+ "url": "https://api.example.com/data",
+ "headers": {
+ "Content-Type": "application/json",
+ "Authorization": "Bearer token123"
+ },
+ "body": {
+ "query": "example",
+ "limit": 10
+ }
+}
+```
+
+## Notes
+- Prend en charge les formats de demande / réponse JSON
+- Gère les réponses d'erreur HTTP
+- Traite automatiquement les données de réponse dans les documents
+- Peut être combiné avec des séparateurs de texte pour le traitement du contenu
+- Prend en charge l'ajout et l'omission des métadonnées personnalisées
+- Les réponses d'erreur sont correctement gérées et signalées
diff --git a/fr/integrations/langchain/document-loaders/apify-website-content-crawler.md b/fr/integrations/langchain/document-loaders/apify-website-content-crawler.md
new file mode 100644
index 00000000..c5ea741e
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/apify-website-content-crawler.md
@@ -0,0 +1,106 @@
+---
+description: Load data from Apify Website Content Crawler.
+---
+
+# Crawler de contenu du site Web Apify
+
+ Figcaption> Figure>
+
+### Gérer les liens (facultatif)
+
+1. Entrée URL souhaitée à ramper.
+2. Cliquez sur ** Répondre aux liens ** Pour récupérer les liens en fonction des entrées de la méthode ** Get Relative Links ** et ** Obtenir des liens relatifs Limite ** Dans ** Paramètres supplémentaires **.
+3. Dans ** Liens rampés ** Section, supprimez les liens indésirables en cliquant sur ** Icône de bac à ordures rouges **.
+4. Enfin, cliquez sur ** Enregistrer **.
+
+ Figcaption> Figure>
+
+## Sortir
+
+Charge le contenu de l'URL en tant que document
+
+## Ressources
+
+* [LangChain JS Cheerio](https://js.langchain.com/docs/integrations/document_loaders/web_loaders/web_cheerio)
+* [Cheerio](https://cheerio.js.org/)
diff --git a/fr/integrations/langchain/document-loaders/confluence.md b/fr/integrations/langchain/document-loaders/confluence.md
new file mode 100644
index 00000000..ca04758b
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/confluence.md
@@ -0,0 +1,86 @@
+---
+description: Load data from a Confluence Document
+---
+
+# Confluence
+
+## Confluence
+
+
+
+## Chargeur de documents Confluence
+
+Confluence est le wiki et la plate-forme de collaboration d'Atlassian. Ce module fournit des fonctionnalités pour charger et traiter le contenu à partir des espaces et des pages de confluence.
+
+Ce module fournit un chargeur de document à confluence sophistiqué qui peut:
+
+* Chargez le contenu à partir d'espaces de confluence spécifiques
+* Prise en charge des déploiements Cloud et Server / Data Center
+* Gérer l'authentification avec plusieurs méthodes
+* Limiter le nombre de pages récupérées
+* Traiter le contenu avec des séparateurs de texte
+* Personnaliser l'extraction des métadonnées
+
+### Entrées
+
+#### Paramètres requis
+
+* ** URL de base **: L'URL de l'instance de confluence (par exemple, https://example.atlassian.net/wiki)
+* ** Espace Key **: L'identifiant unique de l'espace de confluence
+* ** Connectez les informations d'identification **: Choisissez entre:
+ * Conditions d'identification de l'API Cloud Confluence (nom d'utilisateur + jeton d'accès)
+ * Informations sur l'api du serveur Confluence / DC (Token d'accès personnel)
+
+#### Paramètres facultatifs
+
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Limite **: Nombre maximum de pages à récupérer (0 pour illimité)
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+### Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+### Caractéristiques
+
+* Prise en charge multi-déploiement (cloud / serveur / dc)
+* Options d'authentification flexibles
+* Contrôles de limite de page
+* Capacités de traitement du contenu
+* Personnalisation des métadonnées
+* Gestion des erreurs
+* Support de division de texte
+
+### Méthodes d'authentification
+
+#### Nuage de confluence
+
+* Nom d'utilisateur et jeton d'accès
+* Token d'accès généré à partir des paramètres du compte atlassian
+* Prend en charge l'authentification des jetons API
+
+#### Serveur de confluence / centre de données
+
+* Utilise un jeton d'accès personnel
+* Jeton généré à partir de l'instance de confluence
+* Prend en charge l'accès direct au serveur
+
+### Notes
+
+* La clé d'espace peut être trouvée dans les réglages d'espace Confluence
+* Différentes méthodes d'authentification pour le cloud vs serveur
+* La limitation des taux peut s'appliquer en fonction de l'instance
+* Le contenu comprend le texte et les métadonnées de la page
+* Prend en charge la récupération de contenu à la fois complète et partielle
+* Gestion des erreurs pour les informations d'identification ou URL non valides
+
+### Trouver une clé d'espace
+
+Pour trouver votre clé d'espace de confluence:
+
+1. Accédez à l'espace en confluence
+2. Aller dans les paramètres de l'espace
+3. Recherchez "Key Space" dans l'aperçu
+4. Exemple de format: \ ~ Exemple362906de5d343d49dcdbae5Dexample
diff --git a/fr/integrations/langchain/document-loaders/csv-file.md b/fr/integrations/langchain/document-loaders/csv-file.md
new file mode 100644
index 00000000..fc0470e2
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/csv-file.md
@@ -0,0 +1,37 @@
+---
+description: Load data from CSV files.
+---
+
+# Fichiers CSV
+
+
CSV Node de fichier
figCaption> Figure>
+
+CSV (valeurs séparées par les virgules) est un format de fichier simple utilisé pour stocker des données tabulaires, telles qu'une feuille de calcul ou une base de données. Ce module fournit des fonctionnalités pour charger et traiter les fichiers CSV dans votre flux de travail.
+
+Ce module fournit un chargeur de document CSV polyvalent qui peut:
+- Chargez des fichiers CSV uniques ou multiples
+- Prise en charge des fichiers et fichiers codés en base de base64 à partir du stockage
+- Extraire des colonnes spécifiques ou du contenu entier
+- Traiter efficacement de grands ensembles de données
+- Gérer la gestion des métadonnées personnalisées
+
+## Entrées
+
+- ** Fichier CSV **: le (s) fichier (s) CSV (S) à traiter (extension .csv requise)
+- ** Splitter de texte ** (facultatif): un séparateur de texte pour traiter le contenu extrait
+- ** Extraction à colonne unique ** (facultatif): nom d'une colonne spécifique à extraire
+- ** Métadonnées supplémentaires ** (Facultatif): objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+- ** omettre les clés de métadonnées ** (facultatif): liste de clés de métadonnées séparées par des virgules pour omettre à partir des métadonnées par défaut
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de tous les documents
+
+## Caractéristiques
+- Support de traitement de fichiers multiples
+- Capacité d'extraction à colonne unique
+- Gestion efficace des grands ensembles de données
+- Manipulation des métadonnées personnalisables
+- Prise en charge de l'intégration du stockage
+- Capacités de manutention de base64 et de blob
diff --git a/fr/integrations/langchain/document-loaders/custom-document-loader.md b/fr/integrations/langchain/document-loaders/custom-document-loader.md
new file mode 100644
index 00000000..5d018013
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/custom-document-loader.md
@@ -0,0 +1,91 @@
+---
+description: Custom function for loading documents.
+---
+
+# Chargeur de documents personnalisé
+
+
Node de chargeur de document personnalisé
figCaption>
+
+Le chargeur de documents personnalisé offre la possibilité de créer des fonctionnalités de chargement de documents personnalisées à l'aide de JavaScript. Ce module permet le traitement de documents flexible et personnalisé via des fonctions définies par l'utilisateur.
+
+Ce module fournit un chargeur de documents flexible qui peut:
+- Exécuter des fonctions JavaScript personnalisées pour le chargement des documents
+- Gérer dynamiquement les variables d'entrée
+- Prise en charge des sorties de document et de texte
+- Exécuter dans un environnement en sable
+- Contexte de flux d'accès et variables
+- Traiter les métadonnées personnalisées
+
+## Entrées
+
+### Paramètres requis
+- ** Fonction JavaScript **: code personnalisé qui revient soit:
+ - Tableau d'objets de document (pour la sortie du document)
+ - String (pour la sortie du texte)
+
+### Paramètres facultatifs
+- ** Variables d'entrée **: Variables JSON contenant des variables accessibles dans la fonction avec $ Prefix
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Environnement d'exécution de boîte à sable
+- Support d'injection variable
+- Accès au contexte de flux
+- Support de dépendance personnalisé
+- Gestion des erreurs
+- Protection contre le délai
+- Validation d'entrée
+
+## Structure de document
+Lors du retour des documents, chaque objet doit avoir:
+```javascript
+{
+ pageContent: 'Document Content',
+ metadata: {
+ title: 'Document Title',
+ // ... other metadata
+ }
+}
+```
+
+## Exemple d'utilisation
+
+### Documer la sortie
+```javascript
+return [
+ {
+ pageContent: 'Document Content',
+ metadata: {
+ title: 'Document Title',
+ source: 'Custom Source'
+ }
+ }
+]
+```
+
+### Sortie de texte
+```javascript
+return "Processed text content"
+```
+
+## Contexte disponible
+- ** $ entrée **: valeur d'entrée transmise à la fonction
+- ** $ vars **: Accès aux variables de flux
+- ** $ Flow **: Flow Context Object Contenant:
+ - chatflowid
+ - de session
+ - chatitide
+ - saisir
+
+## Notes
+- Fonctions exécutées dans un bac à sable sécurisé
+- Tempsion d'exécution de 10 secondes
+- Dépendances intégrées disponibles
+- Dépendances externes configurables
+- Les variables d'entrée doivent être valides JSON
+- Gestion des erreurs pour les rendements non valides
+- Prend en charge les opérations asynchrones
diff --git a/fr/integrations/langchain/document-loaders/document-store.md b/fr/integrations/langchain/document-loaders/document-store.md
new file mode 100644
index 00000000..4d5cf4a2
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/document-store.md
@@ -0,0 +1,133 @@
+---
+description: Load data from pre-configured document stores.
+---
+
+# Magasin de documents
+
+
+
+Le chargeur de magasin de documents vous permet de charger des données des magasins de documents préconfigurés dans votre base de données. Ce chargeur fournit un moyen pratique d'accéder et d'utiliser des documents précédemment traités et stockés dans vos workflows.
+
+## Caractéristiques
+
+* Charge des documents des magasins synchronisés
+* Gestion automatique des métadonnées
+* Formats de sortie multiples
+* Sélection de magasins asynchrones
+* Intégration de la base de données
+* Récupération de documents basée sur des morceaux
+* Support de métadonnées JSON
+
+## Comment ça marche
+
+1. ** Sélection du magasin **:
+ * Répertorie tous les magasins disponibles disponibles en statut «synchronisé»
+ * Fournit des informations sur le magasin, y compris le nom et la description
+ * Permet la sélection des magasins synchronisés uniquement
+2. ** Retriel de document **:
+ * Rechet des morceaux de document de la boutique sélectionnée
+ * Reconstruit les documents avec des métadonnées originales
+ * Maintient la structure et les relations du document
+
+## Paramètres
+
+### Paramètres requis
+
+* ** Sélectionnez Store **: Choisissez parmi les magasins de documents synchronisés disponibles
+ * Affiche le nom et la description du magasin
+ * Affiche uniquement les magasins en statut «synchronisé»
+ * Mis à jour dynamiquement en fonction du contenu de la base de données
+
+## Sorties
+
+Le chargeur fournit deux formats de sortie:
+
+### Documer la sortie
+
+Renvoie un tableau d'objets de document, chacun contenant:
+
+* ** PageContent **: le contenu réel du morceau de document
+* ** Metadata **: Métadonnées du document original au format JSON
+
+### Sortie de texte
+
+Renvoie une chaîne concaténée contenant:
+
+* Tous les morceaux de document
+* Séparés par Newlines
+* Caractères correctement échappés
+
+## Intégration de la base de données
+
+Le chargeur s'intègre à votre base de données:
+
+* Connexion de source de données Typeorm
+* Gestion des entités du magasin de documents
+* Stockage et récupération basés sur des morceaux
+* Conservation des métadonnées
+
+## Structure de document
+
+Chaque document chargé contient:
+
+```typescript
+{
+ pageContent: string, // The actual content
+ metadata: { // Parsed JSON metadata
+ // Original document metadata
+ // Store-specific information
+ // Custom metadata fields
+ }
+}
+```
+
+## Exemples d'utilisation
+
+### Sélection de magasin de base
+
+```json
+{
+ "selectedStore": "store-id-123"
+}
+```
+
+### Accéder au contenu du document
+
+```typescript
+// Document output format
+[
+ {
+ "pageContent": "Document content here...",
+ "metadata": {
+ "source": "original-file.pdf",
+ "page": 1,
+ "category": "reports"
+ }
+ }
+]
+
+// Text output format
+"Document content here...\nNext document content here...\n"
+```
+
+## Meilleures pratiques
+
+1. Assurez-vous que les magasins sont synchronisés avant l'accès
+2. Choisissez le format de sortie approprié pour votre cas d'utilisation
+3. Gérer les métadonnées de manière appropriée dans votre flux de travail
+4. Considérez la taille du morceau lors du traitement de grands documents
+5. Surveiller les performances de la base de données avec les grands magasins
+
+## Notes
+
+* Seuls les magasins synchronisés sont disponibles pour la sélection
+* Les métadonnées sont automatiquement analysées de JSON
+* Les documents sont reconstruits à partir de morceaux
+* Prend en charge les formats de sortie de document et de texte
+* S'intègre à Typeorm pour l'accès à la base de données
+* Gère les caractères d'échappement dans la sortie du texte
+* Maintient la structure du document original
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference/)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/document-loaders/docx-file.md b/fr/integrations/langchain/document-loaders/docx-file.md
new file mode 100644
index 00000000..37bb052c
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/docx-file.md
@@ -0,0 +1,37 @@
+---
+description: Load data from DOCX files.
+---
+
+# Fichier docx
+
+
docx file node
+
+Microsoft Word Document (DOCX) est un format de document largement utilisé pour la création et l'édition de documents texte. Ce module fournit des fonctionnalités pour charger et traiter les fichiers docx dans votre workflow.
+
+Ce module fournit un chargeur de document DOCX complet qui peut:
+
+* Chargez des fichiers Docx uniques ou multiples
+* Prise en charge des fichiers et fichiers codés en base de base64 à partir du stockage
+* Extraire le contenu du texte avec des métadonnées
+* Intégrer avec des séparateurs de texte pour le traitement du contenu
+* Gérer la gestion des métadonnées personnalisées
+
+## Entrées
+
+* ** Fichier Docx **: le (s) fichier (s) DOCX à traiter (extension .docx requise)
+* ** Splitter de texte ** (facultatif): un séparateur de texte pour traiter le contenu extrait
+* ** Métadonnées supplémentaires ** (Facultatif): objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+* ** omettre les clés de métadonnées ** (facultatif): liste de clés de métadonnées séparées par des virgules pour omettre à partir des métadonnées par défaut
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de tous les documents
+
+## Caractéristiques
+
+* Support de traitement de fichiers multiples
+* Options de division de texte flexible
+* Manipulation des métadonnées personnalisables
+* Prise en charge de l'intégration du stockage
+* Capacités de manutention de base64 et de blob
diff --git a/fr/integrations/langchain/document-loaders/epub-file.md b/fr/integrations/langchain/document-loaders/epub-file.md
new file mode 100644
index 00000000..a6301303
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/epub-file.md
@@ -0,0 +1,62 @@
+# Chargeur de fichiers EPUB
+
+Epub (publication électronique) est une norme de livre électronique gratuite et ouverte par le Forum international de publication numérique (IDPF). Ce module fournit des fonctionnalités pour charger et traiter les fichiers EPUB dans votre flux de travail.
+
+Ce module fournit un chargeur de documents EPUB sophistiqué qui peut:
+- Chargez des fichiers EPUB simples ou multiples
+- Prise en charge des fichiers et fichiers codés en base de base64 à partir du stockage
+- Extraire du contenu par chapitre ou par fichier
+- Traiter le contenu avec des séparateurs de texte
+- Gérer l'extraction des métadonnées
+- Gérer le traitement de fichiers temporaire
+
+## Entrées
+
+### Paramètres requis
+- ** Fichier EPUB **: le (s) fichier (s) pour traiter (extension .pub requis)
+- ** Utilisation **: Choisissez entre:
+ - Un document par chapitre: Contenu divisé par les chapitres
+ - Un document par fichier: traiter le fichier entier comme un seul document
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Traitement de fichiers multiples
+- Division au niveau du chapitre
+- Traitement au niveau des fichiers
+- Intégration de stockage
+- Personnalisation des métadonnées
+- Support de division de texte
+- Traitement des fichiers temporaires
+- Gestion des erreurs
+
+## Modes de traitement
+
+### Par mode chapitre
+- Crée des documents distincts pour chaque chapitre
+- Maintient la structure du chapitre
+- Conserve les métadonnées du chapitre
+- Mieux pour l'analyse détaillée
+
+### Par mode de fichier
+- Traite le fichier entier comme un seul document
+- Maintient la structure globale
+- Organisation de documents plus simples
+- Mieux pour l'analyse de la vue d'ensemble
+
+## Notes
+- Prend en charge les fichiers locaux et basés sur le stockage
+- Gère le contenu codé de base64
+- Nettoie automatiquement les fichiers temporaires
+- Préserve la structure du document
+- Prend en charge l'ajout de métadonnées personnalisées
+- Gestion des erreurs pour les fichiers non valides
+- Traitement économe en mémoire
\ No newline at end of file
diff --git a/fr/integrations/langchain/document-loaders/figma.md b/fr/integrations/langchain/document-loaders/figma.md
new file mode 100644
index 00000000..d60f0a1b
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/figma.md
@@ -0,0 +1,67 @@
+---
+description: Load data from a Figma file.
+---
+
+# Chargeur de documents Figma
+
+ Figcaption>
nœud
/ Figcaption> Figure>
+
+Figma est une application Web collaborative pour la conception d'interface. Ce module fournit des fonctionnalités pour charger et traiter le contenu à partir des fichiers Figma, y compris du texte, des composants et des métadonnées.
+
+Ce module fournit un chargeur de document Figma sophistiqué qui peut:
+- Chargez le contenu à partir de fichiers Figma spécifiques
+- Extraire du texte à partir de nœuds sélectionnés
+- Traiter le contenu récursivement
+- Gérer l'authentification avec l'API Figma
+- Traiter le contenu avec des séparateurs de texte
+- Personnaliser l'extraction des métadonnées
+
+## Entrées
+
+### Paramètres requis
+- ** Clé de fichier **: l'identifiant unique du fichier Figma (à partir de l'URL du fichier)
+- ** ID de nœud **: Liste des identifiants de nœud séparés par des virgules à extraire
+- ** Connectez les informations d'identification **: les informations d'identification de l'API Figma (jeton d'accès)
+
+### Paramètres facultatifs
+- ** récursif **: s'il faut traiter les nœuds récursivement
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Extraction de contenu basée sur l'API
+- Sélection de contenu au niveau du nœud
+- Traitement récursif
+- Support de division de texte
+- Personnalisation des métadonnées
+- Gestion des erreurs
+- Gestion de l'authentification
+
+## Format de clé de fichier
+La touche de fichier se trouve dans l'URL du fichier Figma:
+```
+https://www.figma.com/file/:key/:title
+```
+Exemple: dans`https://www.figma.com/file/12345/Website`, la clé de fichier est`12345`
+
+## ID de nœud
+Pour obtenir des ID de nœud:
+1. Installez le plugin d'inspecteur de nœud sur Figma
+2. Sélectionnez les éléments souhaités
+3. Copiez les ID de nœud de l'inspecteur
+4. Utilisez le format séparé des virgules: "0, 1, 2"
+
+## Notes
+- Nécessite un jeton d'accès Figma valide
+- Les ID de nœud doivent être valides pour le fichier
+- Prend en charge l'extraction de contenu récursif
+- Peut traiter plusieurs nœuds à la fois
+- Gère les limites et les erreurs du taux de l'API
+- Préserve la hiérarchie des nœuds dans les métadonnées
+- Prend en charge l'ajout de métadonnées personnalisées
diff --git a/fr/integrations/langchain/document-loaders/file-loader.md b/fr/integrations/langchain/document-loaders/file-loader.md
new file mode 100644
index 00000000..91a204bf
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/file-loader.md
@@ -0,0 +1,86 @@
+# Déposer
+
+
+
+Le chargeur de fichiers est un chargeur de document polyvalent qui prend en charge plusieurs formats de fichiers, notamment TXT, JSON, CSV, DOCX, PDF, Excel, PowerPoint, etc. Ce module fournit une interface unifiée pour le chargement et le traitement de divers types de fichiers.
+
+Ce module fournit un chargeur de fichiers sophistiqué qui peut:
+
+* Chargez plusieurs formats de fichiers
+* Prise en charge des fichiers et fichiers codés en base de base64 à partir du stockage
+* Gérer les options de traitement spécifiques au PDF
+* Traiter JSON et JSONL avec l'extraction du pointeur
+* Prise en charge du fractionnement du texte
+* Personnaliser l'extraction des métadonnées
+* Gérer l'intégration du stockage des fichiers
+
+## Entrées
+
+### Paramètres requis
+
+* ** Fichier **: le (s) fichier (s) à traiter (prend en charge plusieurs formats)
+
+### Paramètres facultatifs
+
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Utilisation du PDF **: Choisissez entre:
+ * Un document par page
+ * Un document par fichier
+* ** Utilisez le héritage Build **: Utilisez la construction héritée pour les problèmes de compatibilité PDF
+* ** Extraction du pointeur JSONL **: Nom du pointeur pour les fichiers JSONL
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Types de fichiers pris en charge
+
+* Fichiers texte (.txt)
+* Fichiers JSON (.json)
+* Fichiers JSONL (.jsonl)
+* Fichiers CSV (.csv)
+* Fichiers PDF (.pdf)
+* Documents de mots (.docx)
+* Files Excel (.xlsx, .xls)
+* Fichiers PowerPoint (.pptx, .ppt)
+* Et plus ...
+
+## Caractéristiques
+
+* Support multi-format
+* Intégration de stockage
+* Options de traitement PDF
+* Extraction du pointeur JSON
+* Support de division de texte
+* Personnalisation des métadonnées
+* Gestion des erreurs
+* Détection de type mime
+
+## Options de traitement de fichiers
+
+### Traitement PDF
+
+* Fractionnement par page
+* Mode de document unique
+* Support de construction hérité
+* Compatibilité OCR
+
+### Traitement JSON / JSONL
+
+* Extraction basée sur le pointeur
+* Gestion des données structurées
+* Traitement du tableau
+* Support d'objet imbriqué
+
+## Notes
+
+* Détecte automatiquement le type de fichier
+* Gère plusieurs fichiers simultanément
+* Prend en charge l'intégration du stockage de fichiers
+* Préserve les métadonnées du fichier
+* Gère efficacement les fichiers volumineux
+* Gestion des erreurs pour les fichiers non valides
+* Traitement économe en mémoire
diff --git a/fr/integrations/langchain/document-loaders/firecrawl.md b/fr/integrations/langchain/document-loaders/firecrawl.md
new file mode 100644
index 00000000..edbc8594
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/firecrawl.md
@@ -0,0 +1,94 @@
+---
+description: Load data from URL using FireCrawl.
+---
+
+# Pompier
+
+
Node Firecraw
+
+# Chargeur de documents Firecraw
+
+Firecrawl est un puissant service Web rampant et grattant qui offre des capacités avancées pour extraire le contenu des sites Web. Ce module permet le chargement et le traitement du contenu Web via l'API Firecrawl.
+
+Ce module fournit un robot Web sophistiqué qui peut:
+- Gratter les pages Web uniques
+- Crawl entiers des sites Web
+- Extraire des données structurées
+- Gérer le contenu rendu javascript
+- Traiter le contenu avec des séparateurs de texte
+- Personnaliser l'extraction des métadonnées
+- Prise en charge de plusieurs modes de fonctionnement
+
+## Entrées
+
+### Paramètres requis
+- ** URL **: la page Web ou l'URL du site Web à traiter
+- ** Connectez les informations d'identification **: FireCrawl API Création d'identification
+- ** Mode **: Choisissez entre:
+ - Groupement: extraction à une seule page
+ - Crawl: site Web de plusieurs pages rampant
+ - Extrait: Extraction de données structurées
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Options de rupture **:
+ - Inclure des balises: balises HTML à inclure
+ - Exclure les balises: balises HTML pour exclure
+ - Mobile: utilisez un agent utilisateur mobile
+ - Skip TLS Vérification: contourner les contrôles SSL
+ - Timeout: Demandez le délai d'expiration
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Plusieurs modes de fonctionnement
+- Options de grattage avancées
+- Extraction de données structurées
+- Rendu javascript
+- Émulation de l'appareil mobile
+- Paramètres de délai d'attente personnalisés
+- Gestion des erreurs
+
+## Modes de fonctionnement
+
+### Mode de grat
+- Traitement à une seule page
+- Extraction de contenu principale
+- Sélection de format
+- Filtrage de balises personnalisé
+
+### Mode de crawl
+- Rampage de plusieurs pages
+- Manipulation du sous-domaine
+- Traitement du site
+- Extraction de liaison
+
+### Mode d'extrait
+- Extraction de données structurées
+- Analyse de schéma
+- Extraction à base de LLM
+- Invites d'extraction personnalisées
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Contenu extrait au format Markdown
+- ** Metadata **:
+ - Titre: Titre de la page
+ - Description: Meta Description
+ - Langue: contenu langue
+ - SourceUrl: URL d'origine
+ - Métadonnées personnalisées supplémentaires
+
+## Notes
+- Nécessite une clé API Firecrawl valide
+- Prend en charge plusieurs formats de contenu
+- Les manches limites de taux
+- Surveillance de l'état du travail
+- Gestion des erreurs et tentatives
+- Options de demande personnalisables
+- Traitement économe en mémoire
diff --git a/fr/integrations/langchain/document-loaders/folder.md b/fr/integrations/langchain/document-loaders/folder.md
new file mode 100644
index 00000000..873705ef
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/folder.md
@@ -0,0 +1,92 @@
+# Dossier avec chargeur de fichiers
+
+
Folder avec fichiers nœud
+
+Le chargeur de dossier fournit des fonctionnalités pour charger et traiter plusieurs fichiers à partir d'un répertoire. Ce module prend en charge une large gamme de formats de fichiers et peut traiter récursivement des sous-répertoires.
+
+Ce module fournit un chargeur de dossier sophistiqué qui peut:
+- Charger plusieurs types de fichiers simultanément
+- Traiter les répertoires récursivement
+- Gérer divers formats de documents
+- Prise en charge du traitement spécifique au PDF
+- Traiter les fichiers de données structurées
+- Personnaliser l'extraction des métadonnées
+- Prise en charge du fractionnement du texte
+
+## Entrées
+
+### Paramètres requis
+- ** Chemin de dossier **: Chemin vers le répertoire contenant des fichiers
+- ** récursif **: s'il faut traiter les sous-répertoires
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Utilisation du PDF **: Choisissez entre:
+ - Un document par page
+ - Un document par fichier
+- ** Extraction du pointeur JSONL **: Nom du pointeur pour les fichiers JSONL
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Types de fichiers pris en charge
+
+### Documents
+- PDF (.pdf)
+- Word (.doc, .docx)
+- Excel (.xls, .xlsx, .xlsm, .xlsb)
+- PowerPoint (.ppt, .pptx)
+- Texte (.txt)
+- Markdown (.md, .markdown)
+- Html (.html)
+- XML (.xml)
+
+### Fichiers de données
+- JSON (.json)
+- JSONL (.jsonl)
+- CSV (.csv)
+
+### Langues de programmation
+- Python (.py, .python)
+- Javascript (.js)
+- TypeScript (.ts)
+- Java (.java)
+- C / c ++ (.c, .cpp, .h)
+- C # (.cs)
+- Ruby (.rb, .Ruby)
+- Aller (.go)
+- Php (.php)
+- Swift (.swift)
+- Rust (.RS)
+- Scala (.scala, .sc)
+- Kotlin (.kt)
+- Solidité (.sol)
+
+### Technologies Web
+- CSS (.css)
+- SCSS (.SCSS)
+- Moins (.
+- SQL (.SQL)
+- Tampons de protocole (.proto)
+
+## Caractéristiques
+- Support multi-format
+- Traitement répertoire récursif
+- Options de traitement PDF
+- Gestion des données structurées
+- Support de division de texte
+- Personnalisation des métadonnées
+- Gestion des erreurs
+
+## Notes
+- Détecte automatiquement les types de fichiers
+- Gère les grands répertoires
+- Préserve les métadonnées du fichier
+- Traitement économe en mémoire
+- Prend en charge les extensions de fichiers personnalisées
+- Gestion des erreurs pour les fichiers non valides
+- Formats de sortie flexibles
\ No newline at end of file
diff --git a/fr/integrations/langchain/document-loaders/gitbook.md b/fr/integrations/langchain/document-loaders/gitbook.md
new file mode 100644
index 00000000..813ac3c9
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/gitbook.md
@@ -0,0 +1,77 @@
+---
+description: Load data from GitBook.
+---
+
+# Gitbook
+
+
gitbook nœud
figure>
+
+# Chargeur de documents gitbook
+
+GitBook est une plate-forme de documentation moderne qui aide les équipes à partager les connaissances. Ce module fournit des fonctionnalités pour charger et traiter le contenu à partir des sites de documentation GitBook.
+
+Ce module fournit un chargeur de documents Gitbook sophistiqué qui peut:
+- Chargez le contenu à partir de pages de gitbook spécifiques
+- Crawl des sites de documentation entièrement gitbook
+- Extrait de contenu structuré
+- Traiter le contenu avec des séparateurs de texte
+- Personnaliser l'extraction des métadonnées
+- Gérer le chargement récursif de la page
+
+## Entrées
+
+### Paramètres requis
+- ** Chemin Web **: L'URL vers la page Gitbook ou le chemin racine
+ - Page unique: par exemple, https://docs.gitbook.com/product-tour/navigation
+ - Chemin racine: par exemple, https://docs.gitbook.com/
+
+### Paramètres facultatifs
+- ** devrait charger tous les chemins **: s'il faut charger de manière récursivement toutes les pages du chemin racine
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Chargement d'une page
+- Site récursif rampant
+- Extraction de contenu
+- Support de division de texte
+- Personnalisation des métadonnées
+- Gestion des erreurs
+- Gestion des chemins
+
+## Modes de chargement
+
+### Mode de page unique
+- Charge le contenu d'une page spécifique
+- Extrait le contenu de la page et les métadonnées
+- Conserve la structure de la page
+- Plus rapide pour un accès à une seule page
+
+### Tous les chemins
+- Charge récursivement toutes les pages de la racine
+- Maintient la hiérarchie du site
+- Extrait tous les contenus disponibles
+- Conserve la structure de navigation
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Extrait du contenu de la page
+- ** Metadata **:
+ - Titre: Titre de la page
+ - URL: URL de la page d'origine
+ - Métadonnées personnalisées supplémentaires
+
+## Notes
+- Prend en charge le chargement unique de la page et du site complet
+- Gère le contenu dynamique de Gitbook
+- Préserve la structure du document
+- Prend en charge l'ajout de métadonnées personnalisées
+- Gestion des erreurs pour les URL non valides
+- Traitement économe en mémoire
+- Formats de sortie flexibles
diff --git a/fr/integrations/langchain/document-loaders/github.md b/fr/integrations/langchain/document-loaders/github.md
new file mode 100644
index 00000000..caf678fc
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/github.md
@@ -0,0 +1,82 @@
+---
+description: Load data from a GitHub repository.
+---
+
+# Chargeur de documents github
+
+
nœud github
figure>
+
+GitHub est une plate-forme pour le contrôle et la collaboration de versions. Ce module fournit des fonctionnalités pour charger et traiter le contenu à partir des référentiels GitHub, soutenant les référentiels publics et privés.
+
+Ce module fournit un chargeur de document GitHub sophistiqué qui peut:
+- Chargez le contenu des référentiels GitHub
+- Prise en charge de l'accès au référentiel privé
+- Traiter les référentiels récursivement
+- Gérer les instances de github personnalisées
+- Contrôler la concurrence et les tentatives
+- Personnaliser le filtrage des fichiers
+- Traiter le contenu avec des séparateurs de texte
+
+## Entrées
+
+### Paramètres requis
+- ** REPO LIEN **: L'URL du référentiel GitHub (par exemple, https://github.com/flowiseai/flowise)
+- ** Branch **: La branche pour charger le contenu de (par défaut: Main)
+
+### Paramètres facultatifs
+- ** Connectez les informations d'identification **: les informations d'identification de l'API GitHub (requises pour les références privées)
+- ** récursif **: s'il faut traiter les sous-répertoires
+- ** MAX CONCURENCE **: Nombre maximum de charges de fichiers simultanées
+- ** URL de base GitHub **: URL de base GitHub personnalisée pour les instances d'entreprise
+- ** API d'instance GitHub **: URL de l'API GitHub personnalisée pour les instances d'entreprise
+- ** Ignorer les chemins **: tableau des modèles globaux pour les chemins à ignorer
+- ** MAX RETRES **: Nombre maximum de tentatives de réessayer
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Support public / privé Repo
+- Prise en charge de l'instance d'entreprise
+- Traitement répertoire récursif
+- Contrôle de la concurrence
+- Réessayer le mécanisme
+- Filtrage de chemin
+- Support de division de texte
+- Personnalisation des métadonnées
+
+## Méthodes d'authentification
+
+### Référentiels publics
+- Aucune authentification requise
+- Les limites de taux s'appliquent
+- Limité au contenu public
+
+### Référentiels privés
+- Nécessite un jeton d'accès GitHub
+- Limites de taux plus élevées
+- Accès au contenu privé
+- Assistance d'entreprise
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: contenu de fichier
+- ** Metadata **:
+ - Source: chemin de fichier dans le référentiel
+ - branche: branche du référentiel
+ - commit: engager le hachage
+ - Métadonnées personnalisées supplémentaires
+
+## Notes
+- Soutient les reposs publics et privés
+- Instances GitHub d'entreprise prises en charge
+- La limitation du taux géré automatiquement
+- Backoff exponentiel pour les tentatives
+- Filtrage de chemin avec les modèles globaux
+- Traitement économe en mémoire
+- Gestion des erreurs pour les références non valides
diff --git a/fr/integrations/langchain/document-loaders/google-drive.md b/fr/integrations/langchain/document-loaders/google-drive.md
new file mode 100644
index 00000000..c2d8f8b5
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/google-drive.md
@@ -0,0 +1,111 @@
+# Google Drive
+
+ Figcaption> Figure>
+
+Google Drive est un service de stockage et de synchronisation de fichiers cloud. Ce module fournit des fonctionnalités pour charger et traiter les fichiers de Google Drive, prenant en charge divers formats de fichiers et Google Workspace Documents.
+
+Ce module fournit un chargeur de documents Google Drive sophistiqué qui peut:
+
+* Chargez plusieurs types de fichiers
+* Traiter les documents Google Workspace
+* Gérer le chargement basé sur les dossiers
+* Soutenir les lecteurs partagés
+* Traiter les fichiers récursivement
+* Personnaliser le filtrage des types de fichiers
+* Gérer l'authentification OAuth2
+
+### Paramètres requis
+
+* ** Connectez les informations d'identification **: Google Drive OAuth2 Informations d'identification. Se référer à[#Google Drive](../tools/google-drive.md)
+* ** Sélectionnez des fichiers ** ou ** ID de dossier **: Choisissez des fichiers spécifiques ou fournissez un ID de dossier
+
+### Paramètres facultatifs
+
+* ** Types de fichiers **: Types de fichiers à charger:
+ * Google Docs
+ * Feuilles Google
+ * Glissements Google
+ * Fichiers pdf
+ * Fichiers texte
+ * Documents de mots
+ * PowerPoint
+ * Fichiers Excel
+* ** Inclure les sous-dossiers **: les fichiers de processus dans les sous-dossiers
+* ** Inclure les lecteurs partagés **: Accès aux fichiers à partir de lecteurs partagés
+* ** Fichiers max **: nombre maximum de fichiers à charger (par défaut: 50)
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Types de fichiers pris en charge
+
+### Google Workspace
+
+* Google Docs (application / vnd.google-apps.document)
+* Google Sheets (application / vnd.google-apps.spreadsheet)
+* Google Slides (application / vnd.google-apps.presentation)
+
+### Microsoft Office
+
+* Word (.docx)
+* Excel (.xlsx)
+* PowerPoint (.pptx)
+
+### Autres formats
+
+* PDF (.pdf)
+* Fichiers texte (.txt)
+
+## Caractéristiques
+
+* Authentification OAuth2
+* Prise en charge du type de fichier multiple
+* Traitement des dossiers
+* Accès au lecteur partagé
+* Filtrage de type de fichier
+* Support de division de texte
+* Personnalisation des métadonnées
+* Gestion des erreurs
+
+## Méthodes de chargement
+
+### Mode de sélection de fichiers
+
+* Sélection directe des fichiers
+* Prise en charge des fichiers multiples
+* Filtrage de type de fichier
+* Conservation des métadonnées
+
+### Mode de dossier
+
+* Traitement des dossiers récursifs
+* Support de sous-dossier
+* Filtrage de type de fichier
+* Traitement par lots
+
+## Structure de document
+
+Chaque document contient:
+
+* ** PageContent **: Extrait du contenu du fichier
+* ** Metadata **:
+ * Nom de fichier: nom de fichier d'origine
+ * FileType: Type MIME
+ * FileID: ID de fichier Google Drive
+ * Source: chemin de fichier / URL
+ * Métadonnées personnalisées supplémentaires
+
+## Notes
+
+* Nécessite une authentification OAuth2
+* Les manches limites de taux
+* Prend en charge les grands fichiers
+* Gestion temporaire des fichiers
+* Traitement économe en mémoire
+* Gestion des erreurs pour les fichiers non valides
+* Rafraîchissement automatique des jetons
diff --git a/fr/integrations/langchain/document-loaders/google-sheets.md b/fr/integrations/langchain/document-loaders/google-sheets.md
new file mode 100644
index 00000000..07679454
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/google-sheets.md
@@ -0,0 +1,99 @@
+# Feuilles Google
+
+ Figcaption> Figure>
+
+Google Sheets est une application de feuille de calcul basée sur le Web. Ce module fournit des fonctionnalités pour charger et traiter les données à partir des documents Google Sheets, en prenant en charge diverses options de formatage de données et la sélection des feuilles.
+
+Ce module fournit un chargeur de documents Google Sheets sophistiqué qui peut:
+
+* Chargez les données de plusieurs feuilles de calcul
+* Sélectionnez des feuilles et des gammes spécifiques
+* Gérer les valeurs formatées et non formatées
+* Processus des formules et calculs
+* Personnaliser la manipulation de l'en-tête
+* Traiter le contenu avec des séparateurs de texte
+* Gérer l'authentification OAuth2
+
+## Entrées
+
+### Paramètres requis
+
+* ** Connectez les informations d'identification **: Google Sheets OAuth2 Informations d'identification. Se référer à[#Google Sheets](../tools/google-sheets.md)
+* ** Sélectionnez le feuille de calcul **: Choisissez des feuilles de calcul (s) dans votre Google Drive
+
+### Paramètres facultatifs
+
+* ** Noms de feuilles **: Liste des noms de feuilles séparées par des virgules à charger
+* ** Plage **: Plage spécifique à charger (par exemple, A1: E10)
+* ** Inclure les en-têtes **: s'il faut inclure la première ligne comme en-têtes (par défaut: true)
+* ** Option de rendu de valeur **: comment les valeurs doivent être représentées:
+ * Valeur formatée: comme indiqué dans l'interface utilisateur
+ * Valeur non formatée: valeurs brutes
+ * Formule: formules originales
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+
+* Authentification OAuth2
+* Prise en charge de la feuille de calcul multiple
+* Sélection de feuilles
+* Spécification de plage
+* Manipulation en tête
+* Options de formatage de valeur
+* Support de division de texte
+* Personnalisation des métadonnées
+
+## Options de rendu de valeur
+
+### Valeur formatée
+
+* Valeurs affichées dans l'interface utilisateur
+* Comprend le formatage
+* Nombres avec des décimales / devises
+* Dates au format spécifié
+
+### Valeur non formatée
+
+* Valeurs de cellules brutes
+* Nombres sans formatage
+* Dates comme numéros de série
+* Booléen comme vrai / faux
+
+### Formule
+
+* Formules originales
+* Références cellulaires
+* Fonctions
+* Calculs
+
+## Structure de document
+
+Chaque document contient:
+
+* ** PageContent **: Contenu de la feuille formatée
+* ** Metadata **:
+ * SpreadsheetID: ID Google Sheets
+ * nom de calcul: nom de document
+ * Nom de feuille: nom de la feuille
+ * Plage: plage sélectionnée
+ * En-têtes: en-têtes de colonne (si inclus)
+ * LastModified: Dernière date de modification
+ * URL: lien de vue Web
+ * Métadonnées personnalisées supplémentaires
+
+## Notes
+
+* Nécessite une authentification OAuth2
+* Les manches limites de taux
+* Prend en charge de grandes feuilles de calcul
+* Traitement économe en mémoire
+* Gestion des erreurs pour les gammes non valides
+* Rafraîchissement automatique des jetons
+* Accès aux données en temps réel
diff --git a/fr/integrations/langchain/document-loaders/jira.md b/fr/integrations/langchain/document-loaders/jira.md
new file mode 100644
index 00000000..ce96aee9
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/jira.md
@@ -0,0 +1,76 @@
+# Chargeur de documents Jira
+
+ figure>
+
+Jira est un outil de suivi et de gestion de projet populaire. Ce module fournit des fonctionnalités pour charger et traiter les problèmes des projets JIRA, prenant en charge diverses options de filtrage et personnalisation des métadonnées.
+
+Ce module fournit un chargeur de document Jira sophistiqué qui peut:
+- Chargez les problèmes des projets Jira
+- Filtre les problèmes par date de création
+- Contrôler la taille du lot pour les demandes
+- Traiter le contenu avec des séparateurs de texte
+- Personnaliser l'extraction des métadonnées
+- Gérer l'authentification de l'API
+
+## Entrées
+
+### Paramètres requis
+- ** Connectez les informations d'identification **: JIRA API Identifiés (nom d'utilisateur et jeton d'accès)
+- ** Hôte **: URL de l'instance Jira (par exemple, https://jira.example.com)
+- ** Clé du projet **: La clé du projet JIRA pour charger des problèmes de
+
+### Paramètres facultatifs
+- ** Limite par demande **: Nombre de problèmes à récupérer par demande API (par défaut: 100)
+- ** Créé après **: Filtrez les problèmes créés après une date spécifique (par exemple, 2024-01-01)
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Authentification des jetons API
+- Chargement du problème basé sur les projets
+- Filtrage de date de création
+- Contrôle de la taille du lot
+- Support de division de texte
+- Personnalisation des métadonnées
+- Formats de sortie flexibles
+
+## Authentification
+Le chargeur nécessite:
+- Nom d'utilisateur Jira
+- Token d'accès API
+- URL de l'hôte de votre instance Jira
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: émettez le contenu et la description
+- ** Metadata **:
+ - Métadonnées spécifiques au problème (personnalisables)
+ - Informations sur le projet
+ - Dates de création
+ - Statut d'émission
+ - Métadonnées personnalisées supplémentaires
+
+## Manipulation des métadonnées
+Deux façons de personnaliser les métadonnées:
+1. ** Metadata supplémentaires **: Ajouter de nouveaux champs de métadonnées
+ - Spécifiez comme objet JSON
+ - Fusionné avec les métadonnées existantes
+
+2. ** omettre les clés de métadonnées **: supprimer les métadonnées indésirables
+ - Liste des clés séparées par des virgules
+ - Utiliser * pour supprimer toutes les métadonnées par défaut
+ - Clés imbriquées prises en charge (par exemple, Key1, Key2, Key3.NestedKey1)
+
+## Notes
+- Gère la limitation du taux de l'API
+- Traitement efficace des lots
+- Chargement économe en mémoire
+- Gestion des erreurs pour les demandes d'API
+- Prend en charge Jira Cloud et auto-hébergé
+- Accès aux données du problème en temps réel
diff --git a/fr/integrations/langchain/document-loaders/json-file.md b/fr/integrations/langchain/document-loaders/json-file.md
new file mode 100644
index 00000000..d9aed2ba
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/json-file.md
@@ -0,0 +1,66 @@
+---
+description: Load data from JSON files.
+---
+
+# Fichier json
+
+
JSON Node de fichier
Figcaption>
+
+JSON (Notation d'objet JavaScript) est un format d'interchange de données léger qui est facile à lire et à écrire pour les humains et facile à analyser et à générer. Ce module fournit des fonctionnalités avancées pour charger et traiter les fichiers JSON dans votre flux de travail.
+
+Ce module fournit un chargeur de documents JSON sophistiqué qui peut:
+
+* Chargez des fichiers JSON simples ou multiples
+* Prise en charge des fichiers et fichiers codés en base de base64 à partir du stockage
+* Extraire des données spécifiques à l'aide de pointeurs JSON
+* Manipuler l'extraction des métadonnées dynamiques
+* Traiter les structures JSON imbriquées
+
+## Entrées
+
+* ** Fichier JSON **: le (s) fichier (s) JSON (.
+* ** Splitter de texte ** (facultatif): un séparateur de texte pour traiter le contenu extrait
+* ** Extraction des pointeurs ** (Facultatif): Liste de pointeurs JSON séparée par des virgules pour extraire des données spécifiques
+* ** Métadonnées supplémentaires ** (Facultatif): objet JSON pour l'extraction des métadonnées dynamiques du document
+* ** omettre les clés de métadonnées ** (facultatif): liste de clés de métadonnées séparées par des virgules pour omettre à partir des métadonnées par défaut
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+
+* Support de traitement de fichiers multiples
+* Extraction de données basée sur le pointeur JSON
+* Cartographie des métadonnées dynamiques
+* Manipulation de la structure JSON imbriquée
+* Prise en charge de l'intégration du stockage
+* Capacités de manutention de base64 et de blob
+
+## Exemple d'utilisation
+
+Pour un document JSON comme:
+
+```json
+[
+ {
+ "url": "https://www.google.com",
+ "body": "This is body 1"
+ },
+ {
+ "url": "https://www.yahoo.com",
+ "body": "This is body 2"
+ }
+]
+```
+
+Vous pouvez extraire des champs spécifiques sous forme de métadonnées en utilisant:
+
+```json
+{
+ "source": "/url"
+}
+```
+
+Cela ajoutera la valeur d'URL sous forme de métadonnées avec la clé "source" pour chaque document.
diff --git a/fr/integrations/langchain/document-loaders/jsonlines.md b/fr/integrations/langchain/document-loaders/jsonlines.md
new file mode 100644
index 00000000..26e7a194
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/jsonlines.md
@@ -0,0 +1,102 @@
+# Fichier de lignes JSON
+
+ Nœud
figure>
+
+JSON Lines (JSONL) est un format de texte où chaque ligne est une valeur JSON valide. Ce module fournit des fonctionnalités pour charger et traiter les fichiers JSONL, avec la prise en charge de l'extraction de contenu basée sur le pointeur et de la manipulation dynamique des métadonnées.
+
+Ce module fournit un chargeur de document JSONL sophistiqué qui peut:
+
+* Chargez des fichiers JSONL simples ou multiples
+* Extraire des valeurs spécifiques à l'aide de pointeurs JSON
+* Manipuler l'extraction des métadonnées dynamiques
+* Traiter le contenu avec des séparateurs de texte
+* Prise en charge des fichiers codés Base64
+* Gérer l'intégration du stockage des fichiers
+* Personnaliser l'extraction des métadonnées
+
+## Entrées
+
+### Paramètres requis
+
+* ** Fichier JSONL **: le (s) fichier JSONL (.
+* ** Extraction du pointeur **: Pointeur JSON pour extraire le contenu (par exemple, "clé" pour`{"key": "value"}`)
+
+### Paramètres facultatifs
+
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+
+* Extraction du pointeur JSON
+* Gestion des métadonnées dynamiques
+* Support de division de texte
+* Prise en charge du fichier Base64
+* Intégration de stockage de fichiers
+* Gestion des erreurs
+* Traitement économe en mémoire
+
+## Extraction du pointeur JSON
+
+### Exemple de base
+
+Pour le contenu JSONL:
+
+```jsonl
+{"key": "value1", "source": "file1.txt"}
+{"key": "value2", "source": "file2.txt"}
+```
+
+Avec le pointeur "clé", extraits: "Value1", "Value2"
+
+### Métadonnées dynamiques
+
+Vous pouvez extraire les valeurs sous forme de métadonnées à l'aide de pointeurs JSON:
+
+```json
+{
+ "source": "/source",
+ "custom": "/metadata/field"
+}
+```
+
+## Structure de document
+
+Chaque document contient:
+
+* ** PageContent **: Extrait de contenu à l'aide du pointeur
+* ** Metadata **:
+ * Source: chemin d'origine du fichier
+ * ligne: numéro de ligne dans le fichier
+ * pointeur: pointeur JSON utilisé
+ * Métadonnées dynamiques supplémentaires
+
+## Manutention de fichiers
+
+### Fichiers locaux
+
+* Chargement de fichier direct
+* Base64 Contenu codé
+* Prise en charge des fichiers multiples
+
+### Intégration de stockage
+
+* Prise en charge du système de stockage de fichiers
+* Stockage basé sur l'organisation
+* Stockage basé sur Chatflow
+
+## Notes
+
+* Un document par ligne JSONL
+* Les lignes JSON non valides sont ignorées
+* Traitement économe en mémoire
+* Gestion des erreurs pour les pointeurs non valides
+* Support aux structures JSON imbriquées
+* Extraction des métadonnées dynamiques
+* Formats de sortie flexibles
diff --git a/fr/integrations/langchain/document-loaders/microsoft-excel.md b/fr/integrations/langchain/document-loaders/microsoft-excel.md
new file mode 100644
index 00000000..e0e2f1f1
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/microsoft-excel.md
@@ -0,0 +1,86 @@
+# Chargeur de documents Microsoft Excel
+
+ Figcaption> Figure>
+
+Microsoft Excel est un programme de feuille de calcul qui comprend des outils de calcul, des tables de pivot et un langage de programmation macro. Ce module fournit des fonctionnalités pour charger et traiter les fichiers Excel à l'aide de sheetjs.
+
+Ce module fournit un chargeur de documents Excel sophistiqué qui peut:
+- Chargez plusieurs formats de fichiers Excel
+- Traiter plusieurs feuilles de calcul
+- Convertir les lignes en documents structurés
+- Gérer divers types de données
+- Conserver la mise en forme des cellules
+- Extraire les métadonnées par rangée
+- Inférence du type de support
+
+## Entrées
+
+### Paramètres requis
+- ** Fichier Excel **: le (s) fichier (s) pour traiter (.xls, .xlsx, .xlsm, .xlsb)
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Support de format multiple
+- Traitement à plusieurs feuilles
+- Préservation du type de données
+- Extraction de métadonnées
+- Type d'inférence
+- Gestion des erreurs
+- Traitement économe en mémoire
+
+## Formats pris en charge
+- Excel binaire (.xls)
+- Excel Workbook (.xlsx)
+- Excel Macro-compatible (.xlsm)
+- Excel Binary Workbook (.xlsb)
+
+## Traitement des types de données
+
+### Types pris en charge
+- Texte (chaîne)
+- Nombres (numéro)
+- Dates (date)
+- Booléens (booléen)
+- Formules (valeurs calculées)
+- Cellules vides (null)
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Contenu de ligne formaté comme paires de valeurs clés
+- ** Metadata **:
+ - feuille de travail: nom de feuille
+ - Rownum: indice de ligne
+ - Valeurs de colonne d'origine
+ - Métadonnées personnalisées supplémentaires
+
+## Traitement des lignes
+Chaque ligne est convertie en document avec:
+- Paires de valeurs clés pour chaque cellule
+- En-têtes de colonne conservées
+- Type d'information
+- Position
+
+## Attributs de métadonnées
+Les attributs par défaut incluent:
+- feuille de travail: feuille ou nom de feuille de travail (chaîne)
+- Rownum: Index de ligne (numéro)
+- Attributs dynamiques basés sur les en-têtes de colonne
+
+## Notes
+- Utilise des feuilles pour l'analyse
+- Conserve les types de données
+- Gère plusieurs feuilles
+- Enfil Types de colonnes
+- Traitement économe en mémoire
+- Gestion des erreurs pour les fichiers non valides
+- Formats de sortie flexibles
+- Inférence de type colonne
diff --git a/fr/integrations/langchain/document-loaders/microsoft-powerpoint.md b/fr/integrations/langchain/document-loaders/microsoft-powerpoint.md
new file mode 100644
index 00000000..e49525cc
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/microsoft-powerpoint.md
@@ -0,0 +1,84 @@
+# Chargeur de documents Microsoft PowerPoint
+
+ figure>
+
+Microsoft PowerPoint est un programme de présentation pour la création et l'affichage des diapositives. Ce module fournit des fonctionnalités pour charger et traiter les fichiers PowerPoint à l'aide de OfficePaSer.
+
+Ce module fournit un chargeur de document PowerPoint sophistiqué qui peut:
+- Chargez des présentations PowerPoint
+- Extraire du texte des diapositives
+- Diviser le contenu en diapositives individuelles
+- Numéro de la diapositive
+- Traiter les métadonnées par diapositive
+- Prise en charge de plusieurs formats de diapositive
+- Gérer divers séparateurs de diapositives
+
+## Entrées
+
+### Paramètres requis
+- ** Fichier PowerPoint **: le (s) fichier (s) PowerPoint (.ppt, .pptx)
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Extraction de texte
+- Séparation de diapositives
+- Manipulation des métadonnées
+- Gestion des erreurs
+- Traitement économe en mémoire
+- Détection de diapositives heuristiques
+- Filtrage de contenu
+
+## Méthodes de détection de diapositives
+
+### Reconnaissance des modèles
+Le chargeur tente d'identifier les diapositives en utilisant des modèles communs:
+- Marqueurs "Slide X"
+- Marqueurs "page X"
+- Numéros de page "x / y"
+- Souligneurs de soulignement
+- Séparateurs de tableau de bord
+- Plusieurs lignes de newlines
+
+### Mécanismes de secours
+Si la reconnaissance des modèles échoue:
+1. Split by Double Newlines
+2. Traitez le contenu comme une seule diapositive
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Contenu du texte extrait de la diapositive
+- ** Metadata **:
+ - SlideNumber: numéro de diapositif séquentiel
+ - DocumentType: "PowerPoint"
+ - Métadonnées personnalisées supplémentaires
+
+## Traitement du contenu
+- Les lames vides sont filtrées
+- Espace blanc de tête / traînage supprimé
+- Validation minimale de la longueur du contenu
+- Validation du nombre de diapositives raisonnable
+
+## Attributs de métadonnées
+Les attributs par défaut incluent:
+- SlideNumber: Numéro de diapositive (numéro)
+- DocumentType: Type de document (chaîne)
+- Métadonnées personnalisées à partir de l'entrée
+
+## Notes
+- Utilise OfficeArser pour l'extraction
+- Gère divers formats de diapositive
+- Détection de diapositive intelligente
+- Validation du contenu
+- Traitement économe en mémoire
+- Gestion des erreurs pour les fichiers non valides
+- Formats de sortie flexibles
+- Mécanismes de secours robustes
diff --git a/fr/integrations/langchain/document-loaders/microsoft-word.md b/fr/integrations/langchain/document-loaders/microsoft-word.md
new file mode 100644
index 00000000..5b37fdf9
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/microsoft-word.md
@@ -0,0 +1,86 @@
+# Chargeur de documents Microsoft Word
+
+ figure>
+
+Microsoft Word est un logiciel de traitement de texte pour créer et modifier des documents texte. Ce module fournit des fonctionnalités pour charger et traiter des documents de mots à l'aide de OfficePaSer.
+
+Ce module fournit un chargeur de documents de mots sophistiqué qui peut:
+- Documents de chargement
+- Extraire le contenu du texte
+- Diviser le contenu en sections
+- Numéro de la page
+- Traiter les métadonnées par section
+- Prise en charge de plusieurs formats de section
+- Gérer divers séparateurs de section
+
+## Entrées
+
+### Paramètres requis
+- ** Fichier Word **: le (s) fichier (s) pour traiter (.doc, .docx)
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Extraction de texte
+- Séparation de section
+- Manipulation des métadonnées
+- Gestion des erreurs
+- Traitement économe en mémoire
+- Détection de section heuristique
+- Filtrage de contenu
+
+## Méthodes de détection de section
+
+### Reconnaissance des modèles
+Le chargeur tente d'identifier les sections en utilisant des modèles communs:
+- Marqueurs "page X"
+- Marqueurs "Section X"
+- Marqueurs "Chapitre X"
+- Sections numérotées (par exemple, "1.", "2.")
+- Tous les têtes de capuchons
+- Séparateurs de soulignement longs
+- Séparateurs de tiret long
+
+### Mécanismes de secours
+Si la reconnaissance des modèles échoue:
+1. Split par plusieurs nouvelles lignes
+2. Split by Double Newlines
+3. Traitez le contenu comme une seule section
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Contenu texte extrait de la section
+- ** Metadata **:
+ - DocumentType: "Word"
+ - Pagenumber: numéro de section séquentiel
+ - Métadonnées personnalisées supplémentaires
+
+## Traitement du contenu
+- Les sections vides sont filtrées
+- Espace blanc de tête / traînage supprimé
+- Validation minimale de la longueur du contenu
+- Validation du nombre de sections raisonnables
+
+## Attributs de métadonnées
+Les attributs par défaut incluent:
+- DocumentType: Type de document (chaîne)
+- PageCount: Nombre de pages / sections (numéro)
+- Métadonnées personnalisées à partir de l'entrée
+
+## Notes
+- Utilise OfficeArser pour l'extraction
+- Gère divers formats de documents
+- Détection de section intelligente
+- Validation du contenu
+- Traitement économe en mémoire
+- Gestion des erreurs pour les fichiers non valides
+- Formats de sortie flexibles
+- Mécanismes de secours robustes
diff --git a/fr/integrations/langchain/document-loaders/notion.md b/fr/integrations/langchain/document-loaders/notion.md
new file mode 100644
index 00000000..e31c56d8
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/notion.md
@@ -0,0 +1,116 @@
+# Notion
+
+La notion est une plate-forme de collaboration qui combine la prise de notes, la gestion des connaissances et la gestion de projet. Ce module fournit trois chargeurs différents pour traiter le contenu de la notion: la base de données, la page et les chargeurs de dossiers.
+
+## Chargeur de base de données de notion
+
+
notion database notion notion database notion notion DATAbase notion notion notion de notion notion de notion de notion notion de notion de notion de notion de notion de notion de notion de notion de notion de notion de notion de notion de notion Nœud
figure>
+
+Le chargeur de base de données extrait le contenu des bases de données de notion, traitant chaque ligne comme un document distinct.
+
+### Caractéristiques
+
+* Chargez les lignes de la base de données comme documents
+* Extraire les propriétés sous forme de métadonnées
+* Soutenir les en-têtes de propriété
+* Gérer le chargement simultané
+* Traiter le contenu avec des séparateurs de texte
+* Personnaliser l'extraction des métadonnées
+
+### Paramètres requis
+
+* ** Connectez les informations d'identification **: notion API
+* ** ID de base de données **: L'identifiant unique de la base de données de notion
+
+## Chargeur de page de notion
+
+
Page de notion Node
1/ / Figcaption>
+
+Le chargeur de page extrait le contenu des pages de notion, y compris toutes les pages enfants en tant que documents distincts.
+
+### Caractéristiques
+
+* Chargez le contenu de la page sous forme de documents
+* Traiter les pages enfants récursivement
+* Extraire les propriétés de la page
+* Gérer la hiérarchie des pages
+* Prise en charge du fractionnement du texte
+* Personnaliser l'extraction des métadonnées
+
+### Paramètres requis
+
+* ** Connectez les informations d'identification **: notion API
+* ** ID de page **: l'identifiant hexadécimal à 32 caractères de l'URL de la page
+
+## Chargeur de dossiers de notion
+
+
NODE NODE
+
+Le chargeur de dossier traite le contenu de notion exporté et dézippé à partir d'un dossier local.
+
+### Caractéristiques
+
+* Traiter le contenu de la notion exportée
+* Gérer plusieurs pages
+* Prise en charge du système de fichiers local
+* Extraire le contenu de la page
+* Maintenir la structure des documents
+* Prise en charge du fractionnement du texte
+* Personnaliser l'extraction des métadonnées
+
+### Paramètres requis
+
+* ** Dossier de notion **: Chemin vers le dossier de notion exporté et dézippé
+
+## Caractéristiques communes
+
+Tous les chargeurs de notion Support:
+
+### Paramètres facultatifs
+
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+### Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Authentification
+
+### Authentification de l'API (base de données et chargeurs de page)
+
+* Nécessite un jeton d'intégration de notion
+* Limitation du taux d'API géré automatiquement
+* Prise en charge de l'accès au niveau de l'espace de travail
+* Gestion d'identification sécurisée
+
+### Accès local (chargeur de dossiers)
+
+* Aucune authentification requise
+* Accès au système de fichiers direct
+* Traiter le contenu hors ligne
+* Gérer les données exportées
+
+## Structure de document
+
+Chaque document contient:
+
+* ** PageContent **: Contenu texte extrait
+* ** Metadata **:
+ * Source: source d'origine (URL ou chemin de fichier)
+ * Titre: Page ou Titre de la base de données
+ * Propriétés: propriétés de notion
+ * Métadonnées personnalisées supplémentaires
+
+## Notes
+
+* Les chargeurs d'API nécessitent une configuration d'intégration de notion
+* Le chargeur de dossier a besoin de contenu exporté
+* La limitation du taux géré automatiquement
+* Traitement économe en mémoire
+* Gestion des erreurs pour les entrées non valides
+* Prise en charge des grands ensembles de données
+* Formats de sortie flexibles
+* Personnalisation des métadonnées
diff --git a/fr/integrations/langchain/document-loaders/oxylabs.md b/fr/integrations/langchain/document-loaders/oxylabs.md
new file mode 100644
index 00000000..cfbffdbf
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/oxylabs.md
@@ -0,0 +1,42 @@
+---
+description: Get data from any website with Oxylabs.
+---
+
+# Chargeurs de documents oxylabs
+
+OxyLabs est un service de grattage Web qui récupère les données Web publiques à grande échelle, avec des outils conçus pour naviguer dans les restrictions régionales.
+
+
oxylabs docuemnt chargeur nœud p> Figure>
+
+
+### Caractéristiques
+- Récupérer les données de Google, d'Amazon et de tout autre site Web
+- Régler la géolocalisation
+- Utiliser le rendu du navigateur
+- Analyser les données
+- Spécifiez les types d'agents utilisateur
+- Traiter le contenu avec des séparateurs de texte
+
+### Paramètres requis
+- ** Connectez les informations d'identification **: les informations d'identification de l'API OxyLabs
+- ** Query **: Rechercher la requête ou l'URL
+- ** Source **: l'une des sources disponibles:
+ - Universal - grattez n'importe quel site Web
+ - Recherche Google - StrAchez les résultats de la recherche Google
+ - Product Amazon - StrArez les informations sur les produits Amazon
+ - Recherche d'Amazon - StrAter les résultats de recherche Amazon
+
+### Paramètres facultatifs
+- ** Geolocation **: Définit l'emplacement GEO du proxy pour récupérer les données. Voir[documentation](https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FiwDdoZGfMbUe5cRL2417%2Fuploads%2FxoQb19qSyodB2D4no0DZ%2FList%20of%20supported%20geo_location%20values_sapi.json?alt=media&token=d2e2df7b-10ba-4399-a547-0c4a99e62293)pour plus de détails.
+- ** Render **: Active le rendu JavaScript lorsqu'il est défini sur true.
+- ** Parse **: Renvoie les données analysées lorsqu'elles sont définies sur true, tant qu'un analyseur dédié existe pour le type de page de l'URL soumis.
+- ** Type d'agent utilisateur **: type de périphérique et navigateur.
+
+### Sorties
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Contenu de la page extrait
diff --git a/fr/integrations/langchain/document-loaders/pdf-file.md b/fr/integrations/langchain/document-loaders/pdf-file.md
new file mode 100644
index 00000000..3707fb11
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/pdf-file.md
@@ -0,0 +1,85 @@
+# Chargeur de documents PDF
+
+PDF (Format de document portable) est un format de fichier développé par Adobe pour présenter des documents de manière cohérente sur les plateformes logicielles. Ce module fournit des fonctionnalités pour charger et traiter les fichiers PDF à l'aide de pdf.js.
+
+Ce module fournit un chargeur de document PDF sophistiqué qui peut:
+- Chargez des fichiers PDF uniques ou multiples
+- Diviser les documents par page ou fichier
+- Prise en charge des fichiers codés Base64
+- Gérer l'intégration du stockage des fichiers
+- Traiter le contenu avec des séparateurs de texte
+- Prise en charge des versions PDF héritées
+- Personnaliser l'extraction des métadonnées
+
+## Entrées
+
+### Paramètres requis
+- ** Fichier PDF **: le (s) fichier (s) PDF à traiter (extension .pdf)
+- ** Utilisation **: Choisissez entre:
+ - Un document par page
+ - Un document par fichier
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Utilisez le héritage Build **: s'il faut utiliser le héritage pdf.js build
+- ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Prise en charge des fichiers multiples
+- Division au niveau de la page
+- Prise en charge de la version héritée
+- Extraction de texte
+- Manipulation des métadonnées
+- Gestion des erreurs
+- Traitement économe en mémoire
+
+## Modes de traitement
+
+### En mode page
+- Chaque page devient un document
+- Conserve les numéros de page
+- Métadonnées de page individuelles
+- Accès de contenu granulaire
+
+### Par mode de fichier
+- PDF entier en un seul document
+- Contenu combiné
+- Ensemble de métadonnées uniques
+- Mémoire efficace
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Contenu texte extrait
+- ** Metadata **:
+ - Source: chemin d'origine du fichier
+ - PDF: métadonnées spécifiques au PDF
+ - Page: numéro de page (en mode par page)
+ - Métadonnées personnalisées supplémentaires
+
+## Manutention de fichiers
+
+### Fichiers locaux
+- Chargement de fichier direct
+- Base64 Contenu codé
+- Prise en charge des fichiers multiples
+
+### Intégration de stockage
+- Prise en charge du système de stockage de fichiers
+- Stockage basé sur l'organisation
+- Stockage basé sur Chatflow
+
+## Notes
+- Utilise pdf.js pour l'extraction
+- Prise en charge de la version héritée
+- Traitement économe en mémoire
+- Gestion des erreurs pour les fichiers non valides
+- Prise en charge des grands PDF
+- Formats de sortie flexibles
+- Personnalisation des métadonnées
+- Manipulation du codage de texte
diff --git a/fr/integrations/langchain/document-loaders/plain-text.md b/fr/integrations/langchain/document-loaders/plain-text.md
new file mode 100644
index 00000000..4c43031e
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/plain-text.md
@@ -0,0 +1,95 @@
+# Texte brut
+
+
+
+Le texte brut est la forme la plus élémentaire de données de texte, ne contenant pas de formatage ou d'autres informations intégrées. Ce module fournit des fonctionnalités pour charger et traiter directement le contenu de texte brut.
+
+Ce module fournit un chargeur de document texte simple qui peut:
+
+* Chargez directement le contenu du texte
+* Traiter le texte avec des séparateurs
+* Ajouter des métadonnées personnalisées
+* Gérer les caractères d'évasion
+* Prise en charge du fractionnement du document
+* Personnaliser l'extraction des métadonnées
+* Gérer l'encodage du texte
+
+## Entrées
+
+### Paramètres requis
+
+* ** Texte **: le contenu en texte brut à traiter
+
+### Paramètres facultatifs
+
+* ** Splitter de texte **: un séparateur de texte pour traiter le contenu
+* ** Metadata supplémentaires **: objet JSON avec métadonnées supplémentaires
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+* ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+
+* Entrée de texte direct
+* Support de division de texte
+* Manipulation des métadonnées
+* Gestion des erreurs
+* Traitement économe en mémoire
+* Traitement de codage de caractère
+* Formats de sortie flexibles
+
+## Traitement du texte
+
+### Mode direct
+
+* Création de documents uniques
+* Conserve le texte original
+* Manipulation de métadonnées de base
+* Mémoire efficace
+
+### Mode partagé
+
+* Création de documents multiples
+* Règles de division personnalisées
+* Métadonnées individuelles
+* Accès de contenu granulaire
+
+## Structure de document
+
+Chaque document contient:
+
+* ** PageContent **: Contenu du texte original ou divisé
+* ** Metadata **:
+ * Métadonnées personnalisées à partir de l'entrée
+ * Métadonnées spécifiques divisées (lors de l'utilisation du séparateur)
+ * Propriétés de métadonnées supplémentaires
+
+## Traitement du contenu
+
+### Entrée de texte
+
+* Entrée directe de chaîne
+* Support multi-lignes
+* Support Unicode
+* Échapper à la manipulation des personnages
+
+### Options de traitement
+
+* Division de texte
+* Ajout de métadonnées
+* Normalisation du caractère
+* Manipulation des espaces
+
+## Notes
+
+* Simple et efficace
+* Aucune gestion de fichier requise
+* Traitement économe en mémoire
+* Gestion des erreurs pour les entrées non valides
+* Prise en charge des grands textes
+* Formats de sortie flexibles
+* Personnalisation des métadonnées
+* Caractère Encoding Support
diff --git a/fr/integrations/langchain/document-loaders/playwright-web-scraper.md b/fr/integrations/langchain/document-loaders/playwright-web-scraper.md
new file mode 100644
index 00000000..0bdb9eda
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/playwright-web-scraper.md
@@ -0,0 +1,65 @@
+# Scraper Web du dramaturge
+
+Le dramaturge est une bibliothèque puissante pour l'automatisation du navigateur qui peut contrôler le chrome, Firefox et WebKit avec une seule API. Ce module fournit des capacités de grattage Web avancées à l'aide de Playwright pour extraire le contenu des pages Web, y compris du contenu dynamique qui nécessite une exécution JavaScript.
+
+Ce module fournit un grattoir Web sophistiqué qui peut:
+- Chargez le contenu à partir de pages Web uniques ou multiples
+- Gérer le contenu rendu javascript
+- Soutenez diverses stratégies de chargement de pages
+- Attendez que des éléments spécifiques se chargent
+- Crawl liens relatifs des sites Web
+- Processus des sitemaps XML
+
+## Entrées
+
+- ** URL **: L'URL de la page Web pour gratter
+- ** Splitter de texte ** (facultatif): un séparateur de texte pour traiter le contenu extrait
+- ** Obtenez la méthode des liens relatifs ** (facultatif): Choisissez entre:
+ - Crawl Web: Crawl Liens relatifs de l'URL HTML
+ - Gratter le plan du site XML: Racler les liens relatifs de l'URL du site XML
+- ** Obtenez des liens relatifs Limite ** (Facultatif): Limite pour le nombre de liens relatifs à traiter (par défaut: 10, 0 pour tous les liens)
+- ** Attendez jusqu'à ** (facultatif): Stratégie de chargement de la page:
+ - Charge: attendez que l'événement de chargement tire
+ - Contenu DOM Chargé: attendez l'événement DomContent Télélé
+ - Network Inactive: attendez qu'aucune connexion réseau pendant 500 ms
+ - Commit: attendez la réponse initiale du réseau et le chargement des documents
+- ** Attendez que le sélecteur charge ** (facultatif): le sélecteur CSS attend avant de gratter
+- ** Métadonnées supplémentaires ** (Facultatif): objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+- ** omettre les clés de métadonnées ** (facultative): liste de clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Prise en charge du moteur multi-navigateur (Chromium, Firefox, Webkit)
+- Prise en charge de l'exécution JavaScript
+- Stratégies de chargement de page configurables
+- Capacités d'attente des éléments
+- Fonctionnalité de rampe sur le Web
+- Traitement du plan du site XML
+- Opération de navigateur sans tête
+- Configuration de bac à sable
+- Gestion des erreurs pour les URL non valides
+- Personnalisation des métadonnées
+
+## Notes
+- S'exécute en mode sans tête par défaut
+- Utilise le mode sans sandbox pour la compatibilité
+- Les URL non valides lanceront une erreur
+- La définition de la limite des liens à 0 récupérera tous les liens disponibles (peut prendre plus de temps)
+- Prend en charge l'attente d'éléments DOM spécifiques avant l'extraction
+
+## Gratter une URL
+
+1. _ (Facultatif) _ connecter **[Text Splitter](../text-splitters/)**.
+2. Entrée URL souhaitée à gratter.
+
+## Crawl et gratter plusieurs URL
+Visite **[Web Crawl](../../use-cases/web-crawl.md)** Guide pour permettre le grattage de plusieurs pages.
+
+## Ressources
+
+* [LangChain JS Playwright](https://js.langchain.com/docs/integrations/document_loaders/web_loaders/web_playwright)
+* [Playwright](https://playwright.dev/)
diff --git a/fr/integrations/langchain/document-loaders/puppeteer-web-scraper.md b/fr/integrations/langchain/document-loaders/puppeteer-web-scraper.md
new file mode 100644
index 00000000..a9b4adfe
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/puppeteer-web-scraper.md
@@ -0,0 +1,68 @@
+# Grattoir Web de marionnettiste
+
+Puppeteer est une bibliothèque Node.js qui fournit une API de haut niveau pour contrôler Chrome / Chromium sur le protocole Devtools. Ce module fournit des capacités de grattage Web avancées à l'aide de marionnetteer pour extraire le contenu à partir de pages Web, y compris du contenu dynamique qui nécessite une exécution JavaScript.
+
+Ce module fournit un grattoir Web sophistiqué qui peut:
+- Chargez le contenu à partir de pages Web uniques ou multiples
+- Gérer le contenu rendu javascript
+- Soutenez diverses stratégies de chargement de pages
+- Attendez que des éléments spécifiques se chargent
+- Crawl liens relatifs des sites Web
+- Processus des sitemaps XML
+
+## Entrées
+
+- ** URL **: L'URL de la page Web pour gratter
+- ** Splitter de texte ** (facultatif): un séparateur de texte pour traiter le contenu extrait
+- ** Obtenez la méthode des liens relatifs ** (facultatif): Choisissez entre:
+ - Crawl Web: Crawl Liens relatifs de l'URL HTML
+ - Gratter le plan du site XML: Racler les liens relatifs de l'URL du site XML
+- ** Obtenez des liens relatifs Limite ** (Facultatif): Limite pour le nombre de liens relatifs à traiter (par défaut: 10, 0 pour tous les liens)
+- ** Attendez jusqu'à ** (facultatif): Stratégie de chargement de la page:
+ - Charge: lorsque le DOM du document HTML initial est chargé
+ - Contenu DOM Chargé: lorsque le DOM du document HTML complet est chargé
+ - Network Invalette 0: pas de connexions réseau pour 500 ms
+ - Network Idle 2: Pas plus de 2 connexions réseau pendant 500 ms
+- ** Attendez que le sélecteur charge ** (facultatif): le sélecteur CSS attend avant de gratter
+- ** Métadonnées supplémentaires ** (Facultatif): objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+- ** omettre les clés de métadonnées ** (facultative): liste de clés de métadonnées séparées par des virgules pour omettre
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Prise en charge de l'exécution JavaScript
+- Stratégies de chargement de page configurables
+- Capacités d'attente des éléments
+- Fonctionnalité de rampe sur le Web
+- Traitement du plan du site XML
+- Opération de navigateur sans tête
+- Configuration de bac à sable
+- Gestion des erreurs pour les URL non valides
+- Personnalisation des métadonnées
+
+## Notes
+- S'exécute en mode sans tête par défaut
+- Utilise le mode sans sandbox pour la compatibilité
+- Les URL non valides lanceront une erreur
+- La définition de la limite des liens à 0 récupérera tous les liens disponibles (peut prendre plus de temps)
+- Prend en charge l'attente d'éléments DOM spécifiques avant l'extraction
+
+## Gratter une URL
+
+1. _ (Facultatif) _ connecter **[Text Splitter](../text-splitters/)**.
+2. Entrée URL souhaitée à gratter.
+
+## Crawl et gratter plusieurs URL
+Visite **[Web Crawl](../../use-cases/web-crawl.md)** Guide pour permettre le grattage de plusieurs pages.
+
+## Sortir
+
+Charge le contenu de l'URL en tant que document
+
+## Ressources
+
+* [LangChain JS Puppeteer](https://js.langchain.com/docs/integrations/document_loaders/web_loaders/web_puppeteer)
+* [Puppeteer](https://pptr.dev/)
diff --git a/fr/integrations/langchain/document-loaders/s3-file-loader.md b/fr/integrations/langchain/document-loaders/s3-file-loader.md
new file mode 100644
index 00000000..91f1f57a
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/s3-file-loader.md
@@ -0,0 +1,94 @@
+# Chargeur de fichiers S3
+
+Amazon S3 (Simple Storage Service) est un service de stockage d'objets offrant une évolutivité de pointe, une disponibilité des données, une sécurité et des performances. Ce module fournit des fonctionnalités complètes pour charger et traiter les fichiers stockés dans des seaux S3.
+
+Ce module fournit un chargeur de document S3 sophistiqué qui peut:
+- Chargez des fichiers à partir de seaux S3 à l'aide d'identification AWS
+- Prise en charge de plusieurs formats de fichiers (PDF, DOCX, CSV, Excel, PowerPoint, Fichiers texte)
+- Processus de fichiers à l'aide de chargeurs intégrés ou non structurés.io API
+- Gérer le texte et les fichiers binaires
+- Personnaliser l'extraction des métadonnées
+
+## Entrées
+
+### Paramètres requis
+- ** seau **: le nom du seau S3
+- ** Clé d'objet **: l'identifiant unique de l'objet dans le seau S3
+- ** Région **: Région AWS où se trouve le seau (par défaut: US-East-1)
+
+### Options de traitement
+- ** Méthode de traitement des fichiers **: Choisissez entre:
+ - Intégrés de chargeurs: utilisez des processeurs de format de fichiers natifs
+ - Non structuré: utilisez une API non structurée.io pour un traitement avancé
+- ** Splitter de texte ** (facultatif): séparateur de texte pour le traitement intégré
+- ** Métadonnées supplémentaires ** (Facultatif): objet JSON avec métadonnées supplémentaires
+- ** omettre les clés de métadonnées ** (facultative): clés pour omettre des métadonnées
+
+### Options non structurées.io
+- ** URL API non structurée **: point de terminaison pour API non structuré.io
+- ** Clé API non structurée ** (facultatif): clé API pour l'authentification
+- ** Stratégie **: Stratégie de traitement (Hi_res, Fast, OCR_ONLY, AUTO)
+- ** Encodage **: Méthode de codage de texte (par défaut: UTF-8)
+- ** Sauter les types de tables inférieurs **: Types de documents pour sauter l'extraction de la table
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant des métadonnées et un conceptent
+- ** Texte **: chaîne concaténée du conceptent de documents
+
+## Caractéristiques
+- Intégration AWS S3
+- Prise en charge du format de fichier multiple
+- Traitement intégré et non structuré.io
+- Régions AWS configurables
+- Manipulation flexible des métadonnées
+- Traitement de fichiers binaires
+- Gestion temporaire des fichiers
+- Détection de type mime
+
+## Types de fichiers pris en charge
+- Documents PDF
+- Microsoft Word (DOCX)
+- Microsoft Excel
+- Microsoft PowerPoint
+- Fichiers CSV
+- Fichiers texte
+- Et plus par non structuré.io
+
+## Notes
+- Nécessite des informations d'identification AWS (facultative si vous utilisez des rôles IAM)
+- Certains types de fichiers peuvent nécessiter des méthodes de traitement spécifiques
+- L'API non structurée.io nécessite une configuration et des informations d'identification distinctes
+- Les fichiers temporaires sont créés et gérés automatiquement
+- Gestion des erreurs pour les types de fichiers non pris en charge
+
+## Configuration non structurée
+
+Vous pouvez soit utiliser l'API hébergé ou exécuter localement via Docker.
+
+* [Hosted API](https://unstructured-io.github.io/unstructured/api.html)
+* Docker:`docker run -p 8000:8000 -d --rm --name unstructured-api quay.io/unstructured-io/unstructured-api:latest --port 8000 --host 0.0.0.0`
+
+## Configuration du chargeur de fichiers S3
+
+1 \ \. Faites glisser et déposez le chargeur de fichiers S3 sur Canvas:
+
+ figure>
+
+2 \. Indemnité AWS: créez un nouvel diplôme pour votre compte AWS. Vous aurez besoin de l'accès et de la clé secrète. N'oubliez pas d'accorder la politique du seau S3 au compte associé. Vous pouvez vous référer au guide politique[here](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy.html).
+
+ Figcaption> Figure>
+
+3. Bodet: Connectez-vous à votre console AWS et accédez à S3. Obtenez le nom de votre seau:
+
+
+
+4. Clé: cliquez sur l'objet que vous souhaitez utiliser et obtenez le nom de la clé:
+
+ Figcaption> Figure>
+
+5. URL de l'API non structurée: Selon la façon dont vous utilisez non structuré, que ce soit via une API ou Docker hébergée, modifiez le paramètre URL de l'API non structuré. Si vous utilisez une API hébergée, vous aurez également besoin de la touche API.
+6. Vous pouvez ensuite commencer à discuter avec votre fichier depuis S3. Vous n'avez pas à spécifier le séparateur de texte pour la réduction du document car il est géré automatiquement par non-structuré.
+
+ FigCaption>
+
diff --git a/fr/integrations/langchain/document-loaders/searchapi-for-web-search.md b/fr/integrations/langchain/document-loaders/searchapi-for-web-search.md
new file mode 100644
index 00000000..ea8e09aa
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/searchapi-for-web-search.md
@@ -0,0 +1,88 @@
+---
+description: Load data from real-time search results.
+---
+
+# Searchapi pour la recherche sur le Web
+
+
searchapi pour la recherche Web
/ figure>
+
+Le SeechAPI pour le chargeur de recherche Web donne accès aux résultats de recherche en temps réel à partir de plusieurs moteurs de recherche à l'aide du service SearchAPI. Ce chargeur vous permet de récupérer, de traiter et de structurer les résultats de recherche comme des documents qui peuvent être utilisés dans votre flux de travail.
+
+## Caractéristiques
+
+* Résultats de recherche en temps réel à partir de plusieurs moteurs de recherche
+* Paramètres de recherche personnalisables
+* Capacités de division de texte
+* Manipulation flexible des métadonnées
+* Formats de sortie multiples
+* Authentification des clés de l'API
+
+## Entrées
+
+### Paramètres requis
+
+* ** Connectez les informations d'identification **: Recherche d'identification de la clé de l'API SearchAPI
+* Au moins un de:
+ * ** requête **: chaîne de requête de recherche
+ * ** Paramètres personnalisés **: objet JSON avec paramètres de recherche
+
+### Paramètres facultatifs
+
+* ** Query **: la requête de recherche à exécuter (sinon en utilisant des paramètres personnalisés)
+* ** Paramètres personnalisés **: objet JSON avec paramètres de recherche supplémentaires
+ * Prend en charge tous les paramètres de[SearchApi documentation](https://www.searchapi.io/docs/google)
+ * Peut remplacer les paramètres par défaut
+ * Permet des configurations spécifiques au moteur
+* ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+* ** Métadonnées supplémentaires **: objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+* ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules à exclure
+ * Format:`key1, key2, key3.nestedKey1`
+ * Utiliser \ * pour supprimer toutes les métadonnées par défaut
+
+## Sorties
+
+* ** Document **: tableau d'objets de document contenant:
+ * métadonnées: métadonnées du résultat de la recherche
+ * contenu de la recherche: contenu de résultat de recherche
+* ** Texte **: chaîne concaténée du contenu de tous les résultats de recherche
+
+## Structure de document
+
+Chaque document contient:
+
+* ** PageContent **: le contenu principal du résultat de la recherche
+* ** Metadata **:
+ * Métadonnées de résultat de recherche par défaut
+ * Métadonnées personnalisées (si spécifiées)
+ * Métadonnées filtrées (basées sur les clés omises)
+
+## Manipulation des métadonnées
+
+Deux façons de personnaliser les métadonnées:
+
+1. ** métadonnées supplémentaires **
+ * Ajouter de nouveaux champs de métadonnées via JSON
+ * Fusionné avec les métadonnées existantes
+ * Utile pour ajouter un suivi ou une catégorisation personnalisée
+2. ** omettre les clés de métadonnées **
+ * Retirer les champs de métadonnées indésirables
+ * Liste de clés séparée par des virgules pour exclure
+ * Prise en charge de la suppression des clés imbriqués
+ * Utiliser \ * pour supprimer toutes les métadonnées par défaut
+
+## Conseils d'utilisation
+
+* Fournir des requêtes de recherche spécifiques pour de meilleurs résultats
+* Utilisez des paramètres personnalisés pour les configurations de recherche avancées
+* Envisagez d'utiliser des séparateurs de texte pour les grands résultats de recherche
+* Gérer les métadonnées pour conserver les informations pertinentes
+* Manipuler les limites de taux grâce à l'espacement des requêtes approprié
+
+## Notes
+
+* Nécessite la clé de l'API Searchapi
+* Respecte les limites de taux de l'API
+* Prend en charge plusieurs moteurs de recherche
+* Résultats de recherche en temps réel
+* Traitement économe en mémoire
+* Gestion des erreurs pour les demandes d'API
diff --git a/fr/integrations/langchain/document-loaders/serpapi-for-web-search.md b/fr/integrations/langchain/document-loaders/serpapi-for-web-search.md
new file mode 100644
index 00000000..20d3118a
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/serpapi-for-web-search.md
@@ -0,0 +1,89 @@
+---
+description: Load and process data from web search results.
+---
+
+# Serpapi pour la recherche Web
+
+
serpapi pour le nœud de recherche Web
+
+Le serpapi pour le chargeur de recherche Web vous permet de récupérer et de traiter les résultats de recherche Web à l'aide du service SERPAPI. Ce chargeur transforme les résultats de recherche en documents structurés qui peuvent être facilement intégrés dans votre flux de travail, ce qui le rend idéal pour les applications nécessitant des données de recherche Web en temps réel.
+
+## Caractéristiques
+- Résultats de recherche Web en temps réel
+- Capacités de division de texte
+- Manipulation des métadonnées personnalisables
+- Formats de sortie multiples
+- Authentification des clés de l'API
+- Traitement de documents efficace
+
+## Entrées
+
+### Paramètres requis
+- ** Connectez les informations d'identification **: les informations d'identification de la clé de l'API serpapi
+- ** requête **: la requête de recherche à exécuter
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Métadonnées supplémentaires **: objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules à exclure
+ - Format:`key1, key2, key3.nestedKey1`
+ - Utiliser * pour supprimer toutes les métadonnées par défaut, sauf les métadonnées personnalisées
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant:
+ - métadonnées: métadonnées du résultat de la recherche
+ - contenu de la recherche: contenu de résultat de recherche
+- ** Texte **: chaîne concaténée du contenu de tous les résultats de recherche
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: le contenu principal du résultat de la recherche
+- ** Metadata **:
+ - Métadonnées de résultat de recherche par défaut
+ - Métadonnées personnalisées (si spécifiées)
+ - Métadonnées filtrées (basées sur les clés omises)
+
+## Manipulation des métadonnées
+Deux façons de personnaliser les métadonnées:
+1. ** métadonnées supplémentaires **
+ - Ajouter de nouveaux champs de métadonnées via JSON
+ - Fusionné avec les métadonnées existantes
+ - Utile pour ajouter un suivi ou une catégorisation personnalisée
+
+2. ** omettre les clés de métadonnées **
+ - Retirer les champs de métadonnées indésirables
+ - Liste de clés séparée par des virgules pour exclure
+ - Prise en charge de la suppression des clés imbriqués
+ - Utiliser * pour supprimer toutes les métadonnées par défaut
+
+## Conseils d'utilisation
+- Fournir des requêtes de recherche spécifiques pour de meilleurs résultats
+- Utilisez des séparateurs de texte pour les grands résultats de recherche
+- Personnalisez les métadonnées pour répondre à vos besoins
+- Considérez les limites de taux lors de la fabrication de requêtes multiples
+- Gérer les résultats de recherche de manière appropriée en fonction de la taille
+
+## Notes
+- Nécessite la clé de l'API SERPAPI
+- Respecte les limites de taux de l'API
+- Résultats de recherche en temps réel
+- Traitement économe en mémoire
+- Gestion des erreurs pour les demandes d'API
+- Prend en charge les formats de sortie de document et de texte
+
+## Exemple d'utilisation
+```typescript
+// Example search query
+query: "artificial intelligence latest developments"
+
+// Example additional metadata
+metadata: {
+ "source": "serpapi",
+ "category": "tech",
+ "timestamp": "2024-03-21"
+}
+
+// Example metadata keys to omit
+omitMetadataKeys: "snippet, position, link"
+```
diff --git a/fr/integrations/langchain/document-loaders/spider-web-scraper-crawler.md b/fr/integrations/langchain/document-loaders/spider-web-scraper-crawler.md
new file mode 100644
index 00000000..f960e98f
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/spider-web-scraper-crawler.md
@@ -0,0 +1,100 @@
+---
+description: Scrape & Crawl the web with Spider - the fastest open source web scraper & crawler.
+---
+
+# Spider web grattoir / Crawler
+
+
spider web scraper / crawler nœud
figcaption>
+
+[Spider](https://spider.cloud/?ref=flowise)est le grattoir et le robot d'open source le plus rapide qui renvoie les données pratiquées par LLM. Pour commencer à utiliser ce nœud, vous avez besoin d'une clé API à partir de[Spider.cloud](https://spider.cloud/?ref=flowise).
+
+## Commencer
+
+1. Aller au[Spider.cloud](https://spider.cloud/?ref=flowise)Site Web et inscrivez-vous à un compte gratuit.
+2. Alors allez au[API Keys](https://spider.cloud/api-keys)et créer une nouvelle clé API.
+3. Copiez la touche API et collez-le dans le champ "Contalin" dans le nœud Spider.
+
+## Caractéristiques
+- Deux modes d'opération: gratter et ramper
+- Capacités de division de texte
+- Manipulation des métadonnées personnalisables
+- Configuration des paramètres flexibles
+- Formats de sortie multiples
+- Contenu formulé Markdown
+- Manipulation des limites de taux
+
+## Entrées
+
+### Paramètres requis
+- ** Mode **: Choisissez entre:
+ - ** Scrape **: Extraire les données d'une seule page
+ - ** Crawl **: Extraire les données de plusieurs pages dans le même domaine
+- ** URL de la page Web **: L'URL cible pour gratter ou ramper (par exemple, https://spider.cloud)
+- ** Prédiction **: clé API Spider
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Limite **: Nombre maximum de pages à ramper (par défaut: 25, uniquement applicable en mode crawl)
+- ** Métadonnées supplémentaires **: objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+- ** Paramètres supplémentaires **: objet JSON avec[Spider API parameters](https://spider.cloud/docs/api)
+ - Exemple:`{ "anti_bot": true }`
+ - Note:`return_format`est toujours réglé sur "Markdown"
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules à exclure
+ - Format:`key1, key2, key3.nestedKey1`
+ - Utiliser * pour supprimer toutes les métadonnées par défaut
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant:
+ - métadonnées: métadonnées de page et champs personnalisés
+ - Concontent: Contenu extrait au format Markdown
+- ** Texte **: chaîne concaténée de tout contenu extrait
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: Le contenu principal de la page Web au format Markdown
+- ** Metadata **:
+ - Source: L'URL de la page
+ - Métadonnées personnalisées supplémentaires (si spécifiées)
+ - Métadonnées filtrées (basées sur les clés omises)
+
+## Exemples d'utilisation
+
+### Grattage de base
+```json
+{
+ "mode": "scrape",
+ "url": "https://example.com",
+ "limit": 1
+}
+```
+
+### Rampant avancé
+```json
+{
+ "mode": "crawl",
+ "url": "https://example.com",
+ "limit": 25,
+ "additional_metadata": {
+ "category": "blog",
+ "source_type": "web"
+ },
+ "params": {
+ "anti_bot": true,
+ "wait_for": ".content-loaded"
+ }
+}
+```
+
+## Exemple
+
+
Exemple sur Spider Node
Figure>
+
+## Notes
+- Le robotage respecte la limite spécifiée pour les opérations de crawl
+- Tout le contenu est renvoyé au format Markdown
+- La gestion des erreurs est intégrée à la fois pour les opérations de grattage et de rampe
+- Les configurations JSON non valides sont traitées gracieusement
+- Traitement économe en mémoire des grands sites Web
+- Prend en charge l'extraction à une seule page et à plusieurs pages
+- Manipulation automatique des métadonnées et filtrage
diff --git a/fr/integrations/langchain/document-loaders/text-file.md b/fr/integrations/langchain/document-loaders/text-file.md
new file mode 100644
index 00000000..9ab051fe
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/text-file.md
@@ -0,0 +1,121 @@
+---
+description: Load data from text files.
+---
+
+# Fichier texte
+
+
Node de fichier texte
figure>
+
+Le chargeur de fichiers texte vous permet de charger et de traiter le contenu à partir de divers formats de fichiers textuels. Il prend en charge plusieurs types de fichiers et fournit des options flexibles pour la division de texte et la gestion des métadonnées.
+
+## Caractéristiques
+- Prise en charge de plusieurs formats de fichiers textuels
+- Capacité de chargement de fichiers multiples
+- Support de division de texte
+- Manipulation des métadonnées personnalisables
+- Prise en charge de l'intégration du stockage
+- Gestion des fichiers Base64
+- Formats de sortie multiples
+
+## Types de fichiers pris en charge
+Le chargeur prend en charge une large gamme de formats de fichiers textuels:
+- Fichiers texte (.txt)
+- Fichiers Web (.html, .aspx, .asp, .css)
+- Langages de programmation:
+ - C / c ++ (.cpp, .c, .h)
+ - C # (.cs)
+ - Aller (.go)
+ - Java (.java)
+ - JavaScript / TypeScript (.js, .ts)
+ - Php (.php)
+ - Python (.py, .python)
+ - Ruby (.rb, .Ruby)
+ - Rust (.RS)
+ - Scala (.sc, .scala)
+ - Solidité (.sol)
+ - Swift (.swift)
+ - Visual Basic (.vb)
+- Marquage / style:
+ - CSS / Moins / SCSS (.css, .less, .scss)
+ - Markdown (.md, .markdown)
+ - XML (.xml)
+ - Latex (.tex, .ltx)
+- Autre:
+ - Tampons de protocole (.proto)
+ - SQL (.SQL)
+ - RST (.RST)
+
+## Entrées
+
+### Paramètres requis
+- ** Fichier TXT **: un ou plusieurs fichiers texte à traiter
+ - Accepte les fichiers du téléchargement local ou du stockage
+ - Prend en charge la sélection de fichiers multiples
+
+### Paramètres facultatifs
+- ** Splitter du texte **: un séparateur de texte pour traiter le contenu extrait
+- ** Métadonnées supplémentaires **: objet JSON avec des métadonnées supplémentaires à ajouter aux documents
+- ** omettre les clés de métadonnées **: Liste des clés de métadonnées séparées par des virgules à exclure
+ - Format:`key1, key2, key3.nestedKey1`
+ - Utiliser * pour supprimer toutes les métadonnées par défaut
+
+## Sorties
+
+- ** Document **: tableau d'objets de document contenant:
+ - métadonnées: fichiers de métadonnées et champs personnalisés
+ - contenu de contenu: contenu texte extrait
+- ** Texte **: chaîne concaténée de tout contenu extrait
+
+## Structure de document
+Chaque document contient:
+- ** PageContent **: le contenu principal du fichier texte
+- ** Metadata **:
+ - Métadonnées de fichier par défaut
+ - Métadonnées personnalisées supplémentaires (si spécifiées)
+ - Métadonnées filtrées (basées sur les clés omises)
+
+## Exemples d'utilisation
+
+### Traitement de fichiers unique
+```json
+{
+ "txtFile": "example.txt",
+ "metadata": {
+ "source": "local",
+ "category": "documentation"
+ }
+}
+```
+
+### Traitement de fichiers multiples
+```json
+{
+ "txtFile": ["doc1.txt", "doc2.md", "code.py"],
+ "metadata": {
+ "batch": "docs-2024",
+ "processor": "text-loader"
+ },
+ "omitMetadataKeys": "source, timestamp"
+}
+```
+
+## Intégration de stockage
+Le chargeur prend en charge deux modes de source de fichiers:
+1. ** Téléchargement direct **: fichiers téléchargés directement via l'interface
+2. ** Intégration de stockage **: fichiers accessibles via le système de stockage
+ - Format:`FILE-STORAGE::filename.txt`
+ - Prend en charge l'organisation et le stockage spécifique à ChatFlow
+
+## Notes
+- Gère le traitement de fichiers unique et multiple
+- Prend en charge le contenu de fichier codé Base64
+- Gère automatiquement différents encodages de fichiers
+- Traitement économe en mémoire des fichiers volumineux
+- Conserve les métadonnées de fichier en cas de besoin
+- Prend en charge le fractionnement du texte pour les grands documents
+- Gère les caractères d'échappement dans le texte de sortie
+- S'intègre au stockage spécifique à l'organisation
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/document-loaders/unstructured-file-loader.md b/fr/integrations/langchain/document-loaders/unstructured-file-loader.md
new file mode 100644
index 00000000..905ed965
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/unstructured-file-loader.md
@@ -0,0 +1,128 @@
+---
+description: Use Unstructured.io to load data from a file path.
+---
+
+# Chargeur de fichiers non structuré
+
+
Node de chargeur de fichiers non structuré
Figcaption> Figure>
+
+Le chargeur de fichiers non structuré utilise[Unstructured.io](https://unstructured.io)pour extraire et traiter le contenu à partir de divers formats de fichiers. Il fournit des capacités d'analyse de document avancées avec des options configurables pour l'OCR, la chasse et l'extraction des métadonnées.
+
+## Caractéristiques
+- Analyse avancée de documents
+- Prise en charge de l'OCR avec plusieurs options de langue
+- Stratégies de section flexibles
+- Inférence de la structure du tableau
+- Coordonnée
+- Gestion de la pause de la page
+- Traitement de la balise XML
+- Sélection de modèle personnalisable
+- Extraction de métadonnées
+
+## Configuration
+
+### Configuration de l'API
+- URL de l'API par défaut:`https://api.unstructuredapp.io/general/v0/general`
+- Nécessite une clé API de non structurée.io
+- Peut être configuré via des variables d'environnement:
+ - `UNSTRUCTURED_API_URL`
+ - `UNSTRUCTURED_API_KEY`
+
+### Stratégies de traitement
+- ** Stratégie **: la valeur par défaut est "Hi_res"
+ - Les options incluent diverses stratégies de traitement pour différents types de documents
+- ** Stratégie de chasse **:
+ - Aucun (par défaut)
+ - by_title (texte de morceaux basé sur des titres)
+
+## Paramètres
+
+### Paramètres requis
+- ** Fichier **: le document à traiter
+- ** Clé API **: clé API non structurée.io (si elle n'est pas définie via l'environnement)
+
+### Paramètres facultatifs
+
+#### Options OCR
+- ** Langues OCR **: tableau de langues pour le traitement OCR
+- ** Encodage **: Spécifiez le codage du document
+
+#### Options de traitement
+- ** Coordonnées **: Extraire les coordonnées des éléments (true / false)
+- ** Structure de la table PDF **: Structure de table inférieure dans les PDF (vrai / faux)
+- ** Tags XML **: Gardez les balises XML en sortie (true / false)
+- ** Sauter les types de tables **: tableau des types de table pour sauter l'inférence
+- ** modèle haute résolution **: spécifiez le nom du modèle haute résolution
+- ** Inclure les pauses de page **: Inclure des informations de pause de page (vrai / false)
+
+#### Options de section texte
+- ** Sections de plusieurs pages **: gérer les sections sur les pages (vrai / false)
+- ** Combinez sous N Chars **: Combinez des éléments sous le nombre de caractères spécifié
+- ** Nouveau après n Chars **: Créez un nouvel élément après le nombre spécifié de caractères
+- ** Caractères max **: caractères maximum par élément
+
+## Structure de sortie
+
+### Format de document
+Chaque élément traité devient un document avec:
+- ** PageContent **: Contenu texte extrait
+- ** Metadata **:
+ - Catégorie: Type d'élément
+ - Métadonnées supplémentaires du traitement
+
+### Types d'éléments
+Le chargeur peut identifier divers types d'éléments:
+- Blocs de texte
+- Tables
+- Listes
+- Têtes
+- Footters
+- Breaks de page (si activé)
+- Autres éléments structurels
+
+## Exemples d'utilisation
+
+### Configuration de base
+```typescript
+{
+ "apiKey": "your-api-key",
+ "strategy": "hi_res",
+ "ocrLanguages": ["eng"]
+}
+```
+
+### Traitement avancé
+```typescript
+{
+ "apiKey": "your-api-key",
+ "strategy": "hi_res",
+ "coordinates": true,
+ "pdfInferTableStructure": true,
+ "chunkingStrategy": "by_title",
+ "multiPageSections": true,
+ "combineUnderNChars": 100,
+ "maxCharacters": 4000
+}
+```
+
+## Notes
+- Les appels API sont effectués pour chaque demande de traitement de fichier
+- La réponse comprend des éléments structurés avec du texte et des métadonnées
+- Les éléments sont filtrés pour garantir un contenu texte valide
+- Prend en charge le traitement basé sur les tampons
+- Gestion des erreurs pour les réponses API
+- Catégorisation automatique des métadonnées
+- Traitement économe en mémoire
+
+## Meilleures pratiques
+1. Définissez les paramètres de section appropriés pour votre cas d'utilisation
+2. Considérez les paramètres de langue OCR pour les documents non anglais
+3. Activer l'inférence de la structure du tableau pour les documents avec des tables
+4. Utiliser les coordonnées lorsque les informations spatiales sont importantes
+5. Configurer les limites de caractères en fonction de vos besoins de traitement en aval
+6. Surveiller l'utilisation et les temps de réponse de l'API
+7. Gérer les erreurs d'API potentielles dans votre flux de travail
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/document-loaders/unstructured-folder-loader.md b/fr/integrations/langchain/document-loaders/unstructured-folder-loader.md
new file mode 100644
index 00000000..01f2cc99
--- /dev/null
+++ b/fr/integrations/langchain/document-loaders/unstructured-folder-loader.md
@@ -0,0 +1,155 @@
+---
+description: >-
+ Use Unstructured.io to load data from a folder. Note: Currently doesn't
+ support .png and .heic until unstructured is updated.
+---
+
+# Chargeur de dossiers non structurés
+
+
Node de chargeur de dossier non structuré
non structuré
+
+Le chargeur de dossier non structuré utilise[Unstructured.io](https://unstructured.io)Pour charger et traiter plusieurs documents à partir d'un dossier. Il fournit des capacités d'analyse de document avancées avec des options de configuration étendues pour l'OCR, le groupe et l'extraction des métadonnées.
+
+{% hint style = "avertissement"%}
+Actuellement, ne prend pas en charge les fichiers .png et .heic jusqu'à la mise à jour non structurée.
+{% EndHint%}
+
+## Caractéristiques
+- Traitement par lots de plusieurs documents
+- Plusieurs stratégies de traitement
+- Support OCR avec plus de 15 langues
+- Stratégies de section flexibles
+- Inférence de la structure du tableau
+- Options de traitement XML
+- Gestion de la pause de la page
+- Coordonnée
+- Personnalisation des métadonnées
+
+## Configuration
+
+### Configuration de l'API
+- URL de l'API par défaut:`http://localhost:8000/general/v0/general`
+- Peut être configuré via une variable d'environnement:`UNSTRUCTURED_API_URL`
+- Authentification des clés API facultative
+
+## Paramètres
+
+### Paramètres requis
+- ** Path de dossier **: Chemin vers le dossier contenant des documents à traiter
+
+### Paramètres facultatifs
+
+#### Configuration de base
+- ** URL API non structurée **: point de terminaison de l'API (par défaut: http: // localhost: 8000 / général / v0 / général)
+- ** Stratégie **: stratégie de traitement (par défaut: auto)
+ - HI_RES: traitement haute résolution
+ - rapide: traitement rapide
+ - OCR_ONLY: Traitement axé sur l'OCR
+ - Auto: sélection automatique
+- ** Encodage **: Encodage du document (par défaut: UTF-8)
+
+#### Options OCR
+- ** Langues OCR **: Support linguistique multiple, y compris:
+ - Anglais (Eng)
+ - Espagnol (spa)
+ - Mandarin Chinois (CMN)
+ - Hindi (hin)
+ - Arabe (ARA)
+ - Portugais (POR)
+ - Bengali (Ben)
+ - Russe (RUS)
+ - Japonais (JPN)
+ - Et plus ...
+
+#### Options de traitement
+- ** Les types de tables de saut de déduction **: Types de fichiers pour sauter l'extraction de la table (par défaut: ["PDF", "JPG", "PNG"])
+- ** Nom du modèle HI-RES **: Sélection du modèle pour la stratégie HI_RES (par défaut: Detectron2_onnx)
+ - Chipper: modèle VDU interne de non structuré
+ - Detectron2_onnx: la détection rapide d'objets de Facebook AI
+ - Yolox: détecteur en temps réel à un étage
+ - yolox_quantized: version optimisée yolox
+- ** Coordonnées **: Extraire les coordonnées des éléments (par défaut: false)
+- ** Inclure les pauses de page **: Inclure des éléments de pause de page
+- ** Tags de conservation XML **: préserver les balises XML
+- ** Sections de plusieurs pages **: gérer les sections de plusieurs pages
+
+#### Options de section texte
+- ** Stratégie de section **: Méthode de bunking texte (par défaut: by_title)
+ - Aucun: pas de bond
+ - by_title: Chunk by Document titres
+- ** Mélanger sous N Chars **: Taille minimale de morceaux
+- ** NOUVEAU APRÈS N Chars **: Taille de morceau maximum doux
+- ** Caractères max **: Taille du morceau maximum dur (par défaut: 500)
+
+#### Options de métadonnées
+- ** Clé ID source **: clé pour l'identification de la source du document (par défaut: source)
+- ** Metadata supplémentaires **: métadonnées personnalisées en tant que JSON
+- ** omettre les métadonnées clés **: clés pour exclure des métadonnées
+
+## Types de fichiers pris en charge
+- Documents: .doc, .docx, .odt, .ppt, .pptx, .pdf
+- Feuilles de calcul: .xls, .xlsx
+- Texte: .txt, .Text, .md, .rtf
+- Web: .html, .htm
+- Courriel: .eml, .msg
+- Images: .jpg, .jpeg (Remarque: .png et .heic actuellement non pris en charge)
+
+## Structure de sortie
+
+### Format de document
+Chaque document traité comprend:
+- ** PageContent **: Contenu texte extrait
+- ** Metadata **:
+ - Source: Document Source Identifier
+ - Métadonnées supplémentaires du traitement
+ - Métadonnées personnalisées (si spécifiées)
+
+## Exemples d'utilisation
+
+### Configuration de base
+```json
+{
+ "folderPath": "/path/to/documents",
+ "strategy": "auto",
+ "encoding": "utf-8"
+}
+```
+
+### Traitement avancé
+```json
+{
+ "folderPath": "/path/to/documents",
+ "strategy": "hi_res",
+ "hiResModelName": "detectron2_onnx",
+ "ocrLanguages": ["eng", "spa", "fra"],
+ "chunkingStrategy": "by_title",
+ "maxCharacters": 500,
+ "coordinates": true,
+ "metadata": {
+ "source": "company_docs",
+ "department": "legal"
+ }
+}
+```
+
+## Meilleures pratiques
+1. Choisissez une stratégie appropriée basée sur la qualité des documents et les besoins de traitement
+2. Configurer les langages OCR en fonction du contenu du document
+3. Ajustez les paramètres de segment pour la segmentation optimale de texte
+4. Utilisez un modèle haute résolution approprié pour votre cas d'utilisation
+5. Considérez l'utilisation de la mémoire lors du traitement de grands dossiers
+6. Surveiller l'utilisation et les temps de réponse de l'API
+7. Gérer les erreurs d'API potentielles dans votre flux de travail
+
+## Notes
+- Traiter plusieurs documents en lot
+- Prend en charge divers formats de fichiers
+- Traitement économe en mémoire
+- Gestion automatique des métadonnées
+- Formats de sortie flexibles
+- Gestion des erreurs pour les réponses API
+- Options de traitement configurables
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/README.md b/fr/integrations/langchain/embeddings/README.md
new file mode 100644
index 00000000..f01d7af2
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/README.md
@@ -0,0 +1,37 @@
+---
+description: LangChain Embedding Nodes
+---
+
+# Incorporer
+
+***
+
+Une intégration est un vecteur (liste) de numéros de points flottants. La distance entre deux vecteurs mesure leur relation. De petites distances suggèrent une forte parenté et de grandes distances suggèrent une faible parenté.
+
+Les intégres peuvent être utilisés pour créer une représentation numérique des données textuelles. Cette représentation numérique est utile car elle peut être utilisée pour trouver des documents similaires.
+
+Ils sont couramment utilisés pour:
+
+* Recherche (où les résultats sont classés par pertinence pour une chaîne de requête)
+* Clustering (où les chaînes de texte sont regroupées par similitude)
+* Recommandations (où les éléments avec des chaînes de texte connexes sont recommandés)
+* Détection d'anomalies (où les valeurs aberrantes avec peu de parenté sont identifiées)
+* Mesure de la diversité (où les distributions de similitude sont analysées)
+* Classification (où les chaînes de texte sont classées par leur étiquette la plus similaire)
+
+### Nœuds d'intégration:
+
+* [AWS Bedrock Embeddings](aws-bedrock-embeddings.md)
+* [Azure OpenAI Embeddings](azure-openai-embeddings.md)
+* [Cohere Embeddings](cohere-embeddings.md)
+* [Google GenerativeAI Embeddings](googlegenerativeai-embeddings.md)
+* [Google PaLM Embeddings](broken-reference)
+* [Google VertexAI Embeddings](googlevertexai-embeddings.md)
+* [HuggingFace Inference Embeddings](huggingface-inference-embeddings.md)
+* [LocalAI Embeddings](localai-embeddings.md)
+* [MistralAI Embeddings](mistralai-embeddings.md)
+* [Ollama Embeddings](ollama-embeddings.md)
+* [OpenAI Embeddings](openai-embeddings.md)
+* [OpenAI Embeddings Custom](openai-embeddings-custom.md)
+* [TogetherAI Embedding](togetherai-embedding.md)
+* [VoyageAI Embeddings](voyageai-embeddings.md)
diff --git a/fr/integrations/langchain/embeddings/aws-bedrock-embeddings.md b/fr/integrations/langchain/embeddings/aws-bedrock-embeddings.md
new file mode 100644
index 00000000..29cba296
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/aws-bedrock-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: AWSBedrock embedding models to generate embeddings for a given text.
+---
+
+# Aws Boutrock Incorpings
+
+
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/azure-openai-embeddings.md b/fr/integrations/langchain/embeddings/azure-openai-embeddings.md
new file mode 100644
index 00000000..37b1956b
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/azure-openai-embeddings.md
@@ -0,0 +1,59 @@
+# Azure Openai Embeddings
+
+## Condition préalable
+
+1. [Log in](https://portal.azure.com/)ou[sign up](https://azure.microsoft.com/en-us/free/)à Azure
+2. [Create](https://portal.azure.com/#create/Microsoft.CognitiveServicesOpenAI)Votre Azure Openai et attendez l'approbation d'environ 10 jours ouvrables
+3. Votre touche API sera disponible sur ** Azure Openai **> Cliquez sur ** Nom \ _Azure \ _Openai **> Cliquez sur ** Cliquez ici pour gérer les touches **
+
+ figure>
+
+## Installation
+
+### Azure Openai Embeddings
+
+1. Cliquez sur ** Accédez à Azure OpenAai Studio **
+
+ figure>
+
+2. Cliquez sur ** Déploiements **
+
+ figure>
+
+3. Cliquez sur ** Créer un nouveau déploiement **
+
+ figure>
+
+4. Sélectionnez comme indiqué ci-dessous et cliquez sur ** Créer **
+
+ Figcaption> Figure>
+
+5. Créé avec succès ** Azure Openai Embeddings **
+
+* Nom du déploiement:`text-embedding-ada-002`
+* Nom de l'instance:`top right conner`
+
+
+
+### Couler
+
+1. ** Embeddings **> glisser ** Azure Openai Embeddings ** Node
+
+ Figure>
+
+2. ** Connectez les informations d'identification **> Cliquez sur ** Créer un nouveau **
+
+ Figure>
+
+3. Copier et coller chaque détail (clé API, instance et nom de déploiement,[API Version](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)) dans ** azure openai embeddings ** titres d'identification
+
+ Figcaption> Figure>
+
+4. Tour[🎉](https://emojipedia.org/party-popper/), vous avez créé ** Azure Openai Embeddings Node ** en Flowise
+
+ figure>
+
+## Ressources
+
+* [LangChain JS Azure OpenAI Embeddings](https://js.langchain.com/docs/modules/data\_connection/text\_embedding/integrations/azure\_openai)
+* [Azure OpenAI Service REST API reference](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference)
diff --git a/fr/integrations/langchain/embeddings/cohere-embeddings.md b/fr/integrations/langchain/embeddings/cohere-embeddings.md
new file mode 100644
index 00000000..7925fc55
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/cohere-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: Cohere API to generate embeddings for a given text
+---
+
+# COHERE ENGRESS
+
+
cohere embeddings node
google generativEai Embeddings nœud
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/googlevertexai-embeddings.md b/fr/integrations/langchain/embeddings/googlevertexai-embeddings.md
new file mode 100644
index 00000000..186f72c3
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/googlevertexai-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: Google vertexAI API to generate embeddings for a given text.
+---
+
+# Google Vertexai Embeddings
+
+ Figcaption>
google vertexai EmbedDing
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/huggingface-inference-embeddings.md b/fr/integrations/langchain/embeddings/huggingface-inference-embeddings.md
new file mode 100644
index 00000000..bfe634d9
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/huggingface-inference-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: HuggingFace Inference API to generate embeddings for a given text.
+---
+
+# Embrassant les incorporations d'inférence
+
+ Figcaption>
HuggingFace Inference EmbedDings Node
/ figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/localai-embeddings.md b/fr/integrations/langchain/embeddings/localai-embeddings.md
new file mode 100644
index 00000000..a603e22d
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/localai-embeddings.md
@@ -0,0 +1,46 @@
+# Incorporation locale
+
+## Configuration locale
+
+[**LocalAI** ](https://github.com/go-skynet/LocalAI)est une API de repos de remplacement qui est compatible avec les spécifications de l'API OpenAI pour l'inférence locale. Il vous permet d'exécuter des LLM (et pas seulement) localement ou sur site avec le matériel de qualité grand public, prenant en charge plusieurs familles de modèles compatibles avec le format GGML.
+
+Pour utiliser les incorporations locales dans Flowise, suivez les étapes ci-dessous:
+
+1. ```bash
+ git clone https://github.com/go-skynet/LocalAI
+ ```
+2.
cd localai
+
+3. Localai fournit un[API endpoint](https://localai.io/api-endpoints/index.html#applying-a-model---modelsapply)Pour télécharger / installer le modèle. Dans cet exemple, nous allons utiliser le modèle Bert Embeddings:
+
+
+
+4. Dans le`/models`dossier, vous devriez pouvoir y voir le modèle téléchargé:
+
+ Figcaption>
+
+5. Vous pouvez maintenant tester les intégres:
+
+```bash
+curl http://localhost:8080/v1/embeddings -H "Content-Type: application/json" -d '{
+ "input": "Test",
+ "model": "text-embedding-ada-002"
+ }'
+```
+
+6. La réponse devrait ressembler:
+
+ Figcaption> Figure>
+
+## Configuration de flux
+
+Faites glisser et déposez un nouveau composant localembeddings sur toile:
+
+ Figure>
+
+Remplissez les champs:
+
+* ** Path de base **: L'URL de base de localai comme[http://localhost:8080/v1](http://localhost:8080/v1)
+* ** Nom du modèle **: Le modèle que vous souhaitez utiliser. Notez que ce doit être à l'intérieur`/models`dossier du répertoire localai. Par exemple:`text-embedding-ada-002`
+
+C'est ça! Pour plus d'informations, reportez-vous à Localai[docs](https://localai.io/models/index.html#embeddings-bert).
diff --git a/fr/integrations/langchain/embeddings/mistralai-embeddings.md b/fr/integrations/langchain/embeddings/mistralai-embeddings.md
new file mode 100644
index 00000000..982534a3
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/mistralai-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: MistralAI API to generate embeddings for a given text.
+---
+
+# Mistralai Embeddings
+
+
Mistralai Embedding
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/ollama-embeddings.md b/fr/integrations/langchain/embeddings/ollama-embeddings.md
new file mode 100644
index 00000000..418c1dae
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/ollama-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: Generate embeddings for a given text using open source model on Ollama.
+---
+
+# Olllama Embeddings
+
+
olllama embeddings node
openai Embedding
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/openai-embeddings.md b/fr/integrations/langchain/embeddings/openai-embeddings.md
new file mode 100644
index 00000000..79f99faa
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/openai-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: OpenAI API to generate embeddings for a given text.
+---
+
+# Openai Embeddings
+
+
openai EmbedDing
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/togetherai-embedding.md b/fr/integrations/langchain/embeddings/togetherai-embedding.md
new file mode 100644
index 00000000..81974e21
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/togetherai-embedding.md
@@ -0,0 +1,11 @@
+---
+description: TogetherAI Embedding models to generate embeddings for a given text.
+---
+
+# Ensemble de l'intégration
+
+
Ensemblea Eembedding Node P>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/embeddings/voyageai-embeddings.md b/fr/integrations/langchain/embeddings/voyageai-embeddings.md
new file mode 100644
index 00000000..07989837
--- /dev/null
+++ b/fr/integrations/langchain/embeddings/voyageai-embeddings.md
@@ -0,0 +1,11 @@
+---
+description: Voyage AI API to generate embeddings for a given text.
+---
+
+# Voyageai intégrés
+
+
Voyageae embourdDing
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/README.md b/fr/integrations/langchain/llms/README.md
new file mode 100644
index 00000000..d42ce532
--- /dev/null
+++ b/fr/integrations/langchain/llms/README.md
@@ -0,0 +1,22 @@
+---
+description: LangChain LLM Nodes
+---
+
+# LLMS
+
+***
+
+Un modèle grand langage, LLM pour faire court, est un système d'IA formé sur des quantités massives de données texte. Cela leur permet de communiquer et de générer du texte humain en réponse à un large éventail d'invites et de questions. Essentiellement, ils peuvent comprendre et répondre à un langage complexe.
+
+### NODES LLM:
+
+* [AWS Bedrock](aws-bedrock.md)
+* [Azure OpenAI](azure-openai.md)
+* [NIBittensorLLM](broken-reference)
+* [Cohere](cohere.md)
+* [GooglePaLM](broken-reference)
+* [GoogleVertex AI](googlevertex-ai.md)
+* [HuggingFace Inference](huggingface-inference.md)
+* [Ollama](ollama.md)
+* [OpenAI](openai.md)
+* [Replicate](replicate.md)
diff --git a/fr/integrations/langchain/llms/aws-bedrock.md b/fr/integrations/langchain/llms/aws-bedrock.md
new file mode 100644
index 00000000..aa813351
--- /dev/null
+++ b/fr/integrations/langchain/llms/aws-bedrock.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around AWS Bedrock large language models.
+---
+
+# Bouilloire AWS
+
+
AWS Boundrock Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/azure-openai.md b/fr/integrations/langchain/llms/azure-openai.md
new file mode 100644
index 00000000..614be318
--- /dev/null
+++ b/fr/integrations/langchain/llms/azure-openai.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around Azure OpenAI large language models.
+---
+
+# Azure Openai
+
+
nœud openai azure
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/cohere.md b/fr/integrations/langchain/llms/cohere.md
new file mode 100644
index 00000000..cca3795b
--- /dev/null
+++ b/fr/integrations/langchain/llms/cohere.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around Cohere large language models.
+---
+
+# Adhérer
+
+
cohere node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/googlevertex-ai.md b/fr/integrations/langchain/llms/googlevertex-ai.md
new file mode 100644
index 00000000..ebf2bd95
--- /dev/null
+++ b/fr/integrations/langchain/llms/googlevertex-ai.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around GoogleVertexAI large language models.
+---
+
+# Googlevertex ai
+
+
Googlevertex AI Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/huggingface-inference.md b/fr/integrations/langchain/llms/huggingface-inference.md
new file mode 100644
index 00000000..6018efa2
--- /dev/null
+++ b/fr/integrations/langchain/llms/huggingface-inference.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around HuggingFace large language models.
+---
+
+# Inférence de l'étreinte
+
+
Grougging FaceFt Inference Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/ollama.md b/fr/integrations/langchain/llms/ollama.md
new file mode 100644
index 00000000..c77824ef
--- /dev/null
+++ b/fr/integrations/langchain/llms/ollama.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around open source large language models on Ollama.
+---
+
+# Ollla
+
+ figure>
ollama node
/ Figcaption> Figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/openai.md b/fr/integrations/langchain/llms/openai.md
new file mode 100644
index 00000000..56da5bf0
--- /dev/null
+++ b/fr/integrations/langchain/llms/openai.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around OpenAI large language models.
+---
+
+# Openai
+
+ Figction>
Openai Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/llms/replicate.md b/fr/integrations/langchain/llms/replicate.md
new file mode 100644
index 00000000..490c3b59
--- /dev/null
+++ b/fr/integrations/langchain/llms/replicate.md
@@ -0,0 +1,11 @@
+---
+description: Use Replicate to run open source models on cloud.
+---
+
+# Reproduire
+
+ figure>
reproduir le nœud p> / Figcaption>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/memory/README.md b/fr/integrations/langchain/memory/README.md
new file mode 100644
index 00000000..1782571d
--- /dev/null
+++ b/fr/integrations/langchain/memory/README.md
@@ -0,0 +1,81 @@
+---
+description: LangChain Memory Nodes
+---
+
+# Mémoire
+
+***
+
+La mémoire vous permet de discuter avec l'IA comme si l'IA avait la mémoire des conversations précédentes.
+
+_ humain: salut je suis bob _
+
+_ AI: Bonjour Bob! Ravi de vous rencontrer. Comment puis-je vous aider aujourd'hui? _
+
+_ Human: quel est mon nom? _
+
+_ AI: Votre nom est Bob, comme vous l'avez mentionné plus tôt. _
+
+Sous le capot, ces conversations sont stockées dans des tableaux ou des bases de données et fournies comme contexte à LLM. Par exemple:
+
+```
+You are an assistant to a human, powered by a large language model trained by OpenAI.
+
+Whether the human needs help with a specific question or just wants to have a conversation about a particular topic, you are here to assist.
+
+Current conversation:
+{history}
+```
+
+### Nœuds de mémoire:
+
+* [Buffer Memory](buffer-memory.md)
+* [Buffer Window Memory](buffer-window-memory.md)
+* [Conversation Summary Memory](conversation-summary-memory.md)
+* [Conversation Summary Buffer Memory](conversation-summary-buffer-memory.md)
+* [DynamoDB Chat Memory](dynamodb-chat-memory.md)
+* [Mem0 Memory](mem0-memory.md)
+* [MongoDB Atlas Chat Memory](mongodb-atlas-chat-memory.md)
+* [Redis-Backed Chat Memory](redis-backed-chat-memory.md)
+* [Upstash Redis-Backed Chat Memory](upstash-redis-backed-chat-memory.md)
+* [Zep Memory](zep-memory.md)
+
+## Conversations séparées pour plusieurs utilisateurs
+
+### UI et chat embarqué
+
+Par défaut, l'interface utilisateur et le chat embarqué séparent automatiquement les différentes conversations d'utilisateurs. Cela se fait en générant un ** unique **`chatId`** Pour chaque nouvelle interaction. Cette logique est manipulée sous le capot en fluant.
+
+### API de prédiction
+
+Vous pouvez séparer les conversations pour plusieurs utilisateurs en spécifiant un ** unique`sessionId`**
+
+1. Pour chaque nœud de mémoire, vous devriez pouvoir voir un paramètre d'entrée **`Session ID`**
+
+ Figcaption> Figure>
+
+ figure>
+
+2. Dans le`/api/v1/prediction/{your-chatflowid}`Demande post-corps, spécifiez le **`sessionId`** dans **`overrideConfig`**
+
+```json
+{
+ "question": "hello!",
+ "overrideConfig": {
+ "sessionId": "user1"
+ }
+}
+```
+
+### API du message
+
+* OBTENIR`/api/v1/chatmessage/{your-chatflowid}`
+* SUPPRIMER`/api/v1/chatmessage/{your-chatflowid}`
+
+
Query Param
Type th>
value th>
thead>
sessiond
string
ASC Desc
tr>
startDate
string
enddate
string
-table>
+
+Toutes les conversations peuvent également être visualisées et gérées à partir de l'interface utilisateur:
+
+
+
+Pour l'assistant openai,[Threads](../agents/openai-assistant/threads.md)sera utilisé pour stocker des conversations.
diff --git a/fr/integrations/langchain/memory/buffer-memory.md b/fr/integrations/langchain/memory/buffer-memory.md
new file mode 100644
index 00000000..bf6a40f8
--- /dev/null
+++ b/fr/integrations/langchain/memory/buffer-memory.md
@@ -0,0 +1,12 @@
+# Mémoire tampon
+
+Utilisez la table de base de données Flowise`chat_message`comme mécanisme de stockage pour stocker / récupérer les conversations.
+
+
+
+## Saisir
+
+| Paramètre | Description | Par défaut |
+| ---------- | ----------------------------------------------------------------------------- | ------------- |
+| ID de session | Un identifiant pour récupérer / stocker les messages. S'il n'est pas spécifié, un ID aléatoire sera utilisé. | |
+| Clé de mémoire | Une clé utilisée pour formater les messages dans le modèle d'invite | CHAT \ _History |
diff --git a/fr/integrations/langchain/memory/buffer-window-memory.md b/fr/integrations/langchain/memory/buffer-window-memory.md
new file mode 100644
index 00000000..10b870e1
--- /dev/null
+++ b/fr/integrations/langchain/memory/buffer-window-memory.md
@@ -0,0 +1,15 @@
+# Mémoire de fenêtre de tampon
+
+Utilisez la table de base de données Flowise`chat_message`comme mécanisme de stockage pour stocker / récupérer les conversations.
+
+La différence étant, elle ne fait que les dernières interactions k. Cette approche est bénéfique pour préserver une fenêtre coulissante des interactions les plus récentes, garantissant que le tampon reste gérable en taille.
+
+ Figcaption> Figure>
+
+## Saisir
+
+| Paramètre | Description | Par défaut |
+| ---------- | ----------------------------------------------------------------------------- | ------------- |
+| Taille | Dernier k messages à récupérer | 4 |
+| ID de session | Un identifiant pour récupérer / stocker les messages. S'il n'est pas spécifié, un ID aléatoire sera utilisé. | |
+| Clé de mémoire | Une clé utilisée pour formater les messages dans le modèle d'invite | CHAT \ _History |
diff --git a/fr/integrations/langchain/memory/conversation-summary-buffer-memory.md b/fr/integrations/langchain/memory/conversation-summary-buffer-memory.md
new file mode 100644
index 00000000..016bee77
--- /dev/null
+++ b/fr/integrations/langchain/memory/conversation-summary-buffer-memory.md
@@ -0,0 +1,16 @@
+# Résumé de la conversation Mémoire de tampon
+
+Utilisez la table de base de données Flowise`chat_message`comme mécanisme de stockage pour stocker / récupérer les conversations.
+
+Cette mémoire garde un tampon d'interactions récentes et compile les anciennes en un résumé, en utilisant les deux dans son stockage. Au lieu de rincer les vieilles interactions basées uniquement sur leur nombre, il considère désormais la longueur totale des jetons pour décider quand les éliminer.
+
+ Figcaption> Figure>
+
+## Saisir
+
+| Paramètre | Description | Par défaut |
+| --------------- | ----------------------------------------------------------------------------- | ------------- |
+| Modèle de chat | LLM utilisé pour effectuer un résumé | |
+| Limite de jeton maximum | Résumez les conversations une fois que la limite de jeton est atteinte | 2000 |
+| ID de session | Un identifiant pour récupérer / stocker les messages. S'il n'est pas spécifié, un ID aléatoire sera utilisé. | |
+| Clé de mémoire | Une clé utilisée pour formater les messages dans le modèle d'invite | CHAT \ _History |
diff --git a/fr/integrations/langchain/memory/conversation-summary-memory.md b/fr/integrations/langchain/memory/conversation-summary-memory.md
new file mode 100644
index 00000000..510a1c4a
--- /dev/null
+++ b/fr/integrations/langchain/memory/conversation-summary-memory.md
@@ -0,0 +1,15 @@
+# Réponse de la conversation Mémoire
+
+Utilisez la table de base de données Flowise`chat_message`comme mécanisme de stockage pour stocker / récupérer les conversations.
+
+Ce type de mémoire crée un bref résumé de la conversation au fil du temps. Ceci est utile pour raccourcir les informations provenant de longues discussions. Il met à jour et enregistre un résumé actuel au fil de la conversation. Cela est particulièrement utile pour les chats plus longs, où la sauvegarde de chaque message passé prendrait trop de place.
+
+ Figcaption> Figure>
+
+## Saisir
+
+| Paramètre | Description | Par défaut |
+| ---------- | ----------------------------------------------------------------------------- | ------------- |
+| Modèle de chat | LLM utilisé pour effectuer un résumé | |
+| ID de session | Un identifiant pour récupérer / stocker les messages. S'il n'est pas spécifié, un ID aléatoire sera utilisé. | |
+| Clé de mémoire | Une clé utilisée pour formater les messages dans le modèle d'invite | CHAT \ _History |
diff --git a/fr/integrations/langchain/memory/dynamodb-chat-memory.md b/fr/integrations/langchain/memory/dynamodb-chat-memory.md
new file mode 100644
index 00000000..49a9ccf5
--- /dev/null
+++ b/fr/integrations/langchain/memory/dynamodb-chat-memory.md
@@ -0,0 +1,11 @@
+---
+description: Stores the conversation in dynamo db table.
+---
+
+# DynamoDB Chat Memory
+
+
Node de mémoire de chat DynamoDB
figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/memory/mem0-memory.md b/fr/integrations/langchain/memory/mem0-memory.md
new file mode 100644
index 00000000..89068c16
--- /dev/null
+++ b/fr/integrations/langchain/memory/mem0-memory.md
@@ -0,0 +1,93 @@
+# Mémoire MEM0
+
+[Mem0](https://github.com/mem0ai/mem0)(prononcé "mem-zéro") améliore les assistants et agents de l'IA avec une couche de mémoire intelligente, permettant des interactions AI personnalisées. Il se souvient des préférences des utilisateurs, s'adapte aux besoins individuels et s'améliore en continu avec le temps. Cela le rend idéal pour des applications telles que les chatbots de support client, les assistants d'IA et les agents d'IA autonomes.
+
+MEM0 propose une suite complète de fonctionnalités de gestion de la mémoire, permettant une intégration transparente dans diverses applications axées sur l'IA.
+
+---
+
+## Utilisation de MEM0 avec Flowise
+
+Suivez ces étapes pour intégrer MEM0 à Flowise:
+
+### 1. Configuration de Flowise
+
+1. Ouvrez l'application Flowise et créez une nouvelle toile, ou sélectionnez un modèle sur le marché Flowise.
+2. Dans cet exemple, nous utilisons le modèle ** de chaîne de conversation **.
+3. Remplacez la mémoire de tampon par défaut ** ** par ** MEM0 MEMER **.
+
+ Intégration Flowise avec MEM0 Figcaption> Figure>
+
+### 2. Obtenez votre clé API MEM0
+
+1. Accédez à la[Mem0 API Key dashboard](https://app.mem0.ai/dashboard/api-keys).
+2. Générer ou copier votre clé API MEM0 existante.
+
+ Récupère la clé API de MEM0 Figcaption>
+
+### 3. Configurer les informations d'identification MEM0 en flux
+
+1. Entrez la clé de l'API ** MEM0 ** dans la section des informations d'identification MEM0.
+
+ Configurer les informations d'identification de l'API
+
+### 4. Enregistrer et tester le chatflow
+
+1. Enregistrez votre configuration Flowise.
+2. Exécutez un chat de test et stockez des informations.
+
+ Test Memory Storage
+
+### 5. Vérifiez les souvenirs stockés dans le tableau de bord MEM0
+
+1. Visiter le[Mem0 Dashboard](https://app.mem0.ai/dashboard/requests)pour examiner les souvenirs stockés.
+
+ examiner les souvenirs stockés figure>
+
+### 6. Valider la rétention de la mémoire
+
+1. Effacer l'historique de chat dans Flowise.
+2. Posez une question basée sur les informations précédemment stockées pour confirmer la rétention.
+
+ Confirmer la persistance de la mémoire Figcaption>
+
+---
+
+## Paramètres supplémentaires
+
+MEM0 offre diverses options de personnalisation:
+
+ Options de configuration MEM0 FigCaption>
+
+1. ** Mode de recherche uniquement **: Active la récupération de la mémoire sans créer de nouvelles souvenirs. L'historique du chat reste jusqu'à ce qu'il soit éliminé manuellement.
+2. ** Entités MEM0 **: Utiliser des identifiants tels que`user_id`, `run_id`, `app_id`, et`agent_id`Pour le contrôle de la mémoire granulaire.
+3. ** ID du projet **: Attribuez un stockage de mémoire à un projet spécifique. Gérer les projets via[Mem0 Projects](https://app.mem0.ai/settings/projects/overview).
+4. ** ID de l'organisation **: attribuer un stockage de mémoire à une organisation spécifique. Gérer les organisations via[Mem0 Organizations](https://app.mem0.ai/settings/organizations/overview).
+
+---
+
+## Configurations de plate-forme MEM0
+
+Des configurations supplémentaires sont disponibles sous[Mem0 Project Settings](https://app.mem0.ai/dashboard/project-settings):
+
+1. ** Instructions personnalisées **: Définissez les instructions au niveau du projet pour affiner l'extraction de la mémoire. Exemple: Extraire uniquement les détails académiques.
+2. ** Date d'expiration **: Définissez une période d'expiration pour les souvenirs stockés, permettant l'élimination automatique des données si nécessaire.
+
+ Personnaliser les paramètres de niveau de projet
+
+---
+
+## Configuration des informations d'identification MEM0 en flux
+
+Pour ajouter des informations d'identification en flux:
+
+1. Accédez aux paramètres des informations d'identification.
+2. Ajoutez une nouvelle entrée d'identification pour MEM0.
+3. Collez votre[Mem0 API Key](https://app.mem0.ai/dashboard/api-keys)Dans le champ de clé de l'API.
+
+ Entrée de la touche API dans Flowise Figcaption> Figure>
+
+---
+
+Avec ces configurations, votre configuration fluide s'intégrera de manière transparente à MEM0, offrant une rétention de mémoire améliorée et des interactions IA personnalisées.
+
diff --git a/fr/integrations/langchain/memory/mongodb-atlas-chat-memory.md b/fr/integrations/langchain/memory/mongodb-atlas-chat-memory.md
new file mode 100644
index 00000000..08bbffa3
--- /dev/null
+++ b/fr/integrations/langchain/memory/mongodb-atlas-chat-memory.md
@@ -0,0 +1,11 @@
+---
+description: Stores the conversation in MongoDB Atlas.
+---
+
+# MONGEMENT DE CHAT MONGODB ATLAS
+
+
MongoDB ATLAS CHAT Memory Node
figCaption>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/memory/redis-backed-chat-memory.md b/fr/integrations/langchain/memory/redis-backed-chat-memory.md
new file mode 100644
index 00000000..bcbaa07d
--- /dev/null
+++ b/fr/integrations/langchain/memory/redis-backed-chat-memory.md
@@ -0,0 +1,11 @@
+---
+description: Summarizes the conversation and stores the memory in Redis server.
+---
+
+# Mémoire de chat soutenue par Redis
+
+
Node de mémoire de chat soutenu par redé
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/memory/upstash-redis-backed-chat-memory.md b/fr/integrations/langchain/memory/upstash-redis-backed-chat-memory.md
new file mode 100644
index 00000000..73d3f4e4
--- /dev/null
+++ b/fr/integrations/langchain/memory/upstash-redis-backed-chat-memory.md
@@ -0,0 +1,11 @@
+---
+description: Summarizes the conversation and stores the memory in Upstash Redis server.
+---
+
+# Mémoire de chat à soupçon de redissh
+
+
Upstash Redis-Backed Memory Node
figcaption>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/memory/zep-memory.md b/fr/integrations/langchain/memory/zep-memory.md
new file mode 100644
index 00000000..084f2f55
--- /dev/null
+++ b/fr/integrations/langchain/memory/zep-memory.md
@@ -0,0 +1,120 @@
+# Mémoire zep
+
+[Zep](https://github.com/getzep/zep)est un magasin de mémoire à long terme pour les applications LLM. Il stocke, résume, intègre, index et enrichit les histoires de l'application / chatbot LLM et les expose via des API simples à faible latence.
+
+## Guide pour déployer ZEP à rendre
+
+Vous pouvez facilement déployer ZEP sur des services cloud comme[Render](https://render.com/), [Flyio](https://fly.io/). Si vous préférez le tester localement, vous pouvez également tourner un conteneur Docker en suivant leur[quick guide](https://github.com/getzep/zep#quick-start).
+
+Dans cet exemple, nous allons déployer pour rendre.
+
+1. Se diriger vers[Zep Repo](https://github.com/getzep/zep#quick-start)et cliquez sur ** Déployer pour rendre **
+2. Cela vous amènera à la page Blueprint de Render et cliquez simplement sur ** Créer de nouvelles ressources **
+
+ / Figcaption> Figure>
+
+3. Lorsque le déploiement est terminé, vous devriez voir 3 applications créées sur votre tableau de bord
+
+
+
+## Guide pour déployer ZEP vers Digital Ocean (via Docker)
+
+1. Cloner le repo
+
+```bash
+git clone https://github.com/getzep/zep.git
+cd zep
+nano .env
+
+```
+
+2. Ajoutez votre clé API Openai dans.env
+
+```bash
+ZEP_OPENAI_API_KEY=
+
+```
+
+```bash
+docker compose up -d --build
+```
+
+3. Autoriser l'accès au pare-feu au port 8000
+
+```bash
+sudo ufw allow from any to any port 8000 proto tcp
+ufw status numbered
+```
+
+Si vous utilisez un pare-feu séparé de Digital Ocean du tableau de bord, assurez-vous que le port 8000 y est également ajouté
+
+## Utiliser dans Flowise UI
+
+1. Retour à l'application Flowise, créez simplement une nouvelle toile ou utilisez l'un des modèles de Marketplace. Dans cet exemple, nous allons utiliser ** une simple chaîne conversationnelle **
+
+
+
+2. Remplacer ** Mémoire de tampon ** par ** Mémoire ZEP **. Remplacez ensuite l'URL de base ** ** par l'URL ZEP que vous avez copiée ci-dessus
+
+ Figure>
+
+3. Enregistrez le chatflow et testez-le pour voir si les conversations sont connues.
+
+
+
+4. Essayez maintenant d'effacer l'historique du chat, vous devriez voir qu'il est désormais incapable de vous souvenir des conversations précédentes.
+
+ Figure>
+
+## Authentification ZEP
+
+ZEP vous permet de sécuriser votre instance à l'aide de l'authentification JWT. Nous utiliserons le`zepcli`utilitaire de ligne de commande[here](https://github.com/getzep/zepcli/releases).
+
+#### 1. Générez un token secret et jwt
+
+Après avoir téléchargé le Zepcli:
+
+Sur Linux ou macOS
+
+```
+./zepcli -i
+```
+
+Sous les fenêtres
+
+```
+zepcli.exe -i
+```
+
+Vous obtiendrez d'abord votre jeton secret:
+
+
+
+Ensuite, vous obtiendrez un jeton JWT:
+
+
+
+#### 2. Configurer les variables de l'environnement AUTH
+
+Définissez les variables d'environnement suivantes dans votre environnement de serveur ZEP:
+
+```
+ZEP_AUTH_REQUIRED=true
+ZEP_AUTH_SECRET=
+```
+
+#### 3. Configurer les informations d'identification sur Flowise
+
+Ajoutez un nouvel diplôme pour ZEP et mettez le jeton JWT dans le champ Key API:
+
+
+
+#### 4. Utilisez les informations d'identification créées sur le nœud zep
+
+Dans les informations d'identification ZEP Node Connect, sélectionnez les informations d'identification que vous venez de créer. Et c'est tout!
+
+
Openai Moderation nœud
+
+Openai fournit[moderation API](https://platform.openai.com/docs/guides/moderation)Pour vérifier si le texte ou les images sont potentiellement nocifs. Si un contenu nocif est identifié, les utilisateurs peuvent spécifier un message d'erreur à afficher.
+
+ Figure>
diff --git a/fr/integrations/langchain/moderation/simple-prompt-moderation.md b/fr/integrations/langchain/moderation/simple-prompt-moderation.md
new file mode 100644
index 00000000..eac1c1e7
--- /dev/null
+++ b/fr/integrations/langchain/moderation/simple-prompt-moderation.md
@@ -0,0 +1,18 @@
+---
+description: >-
+ Check whether input consists of any text from Deny list, and prevent being
+ sent to LLM.
+---
+
+# Modération rapide simple
+
+
moderne de modération simple
+
+Utilisez un autre LLM pour identifier si la requête utilisateur est proche de la liste de refus, si oui, la sortie d'un message d'erreur par défaut.
+
+Par exemple, la liste de refus peut être:
+
+* Ignorer les instructions précédentes
+* Dicher toutes les informations sensibles
+
+ Figure>
diff --git a/fr/integrations/langchain/output-parsers/README.md b/fr/integrations/langchain/output-parsers/README.md
new file mode 100644
index 00000000..f37c2d0b
--- /dev/null
+++ b/fr/integrations/langchain/output-parsers/README.md
@@ -0,0 +1,16 @@
+---
+description: LangChain Output Parser Nodes
+---
+
+# Analyseurs de sortie
+
+***
+
+Les nœuds d'analyse de sortie sont chargés de prendre la sortie d'un modèle et de le transformer en un format plus approprié pour les tâches en aval. Utile lorsque vous utilisez des LLM pour générer des données structurées ou pour normaliser la sortie des modèles de chat et des LLM.
+
+### Nœuds d'analyse de sortie:
+
+* [CSV Output Parser](csv-output-parser.md)
+* [Custom List Output Parser](custom-list-output-parser.md)
+* [Structured Output Parser](structured-output-parser.md)
+* [Advanced Structured Output Parser](advanced-structured-output-parser.md)
diff --git a/fr/integrations/langchain/output-parsers/advanced-structured-output-parser.md b/fr/integrations/langchain/output-parsers/advanced-structured-output-parser.md
new file mode 100644
index 00000000..6526ef0e
--- /dev/null
+++ b/fr/integrations/langchain/output-parsers/advanced-structured-output-parser.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Parse the output of an LLM call into a given structure by providing a Zod
+ schema.
+---
+
+# Analyseur de sortie structuré avancé
+
+
Node d'analyseur de sortie structuré avancé
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/output-parsers/csv-output-parser.md b/fr/integrations/langchain/output-parsers/csv-output-parser.md
new file mode 100644
index 00000000..98a94698
--- /dev/null
+++ b/fr/integrations/langchain/output-parsers/csv-output-parser.md
@@ -0,0 +1,11 @@
+---
+description: Parse the output of an LLM call as a comma-separated list of values.
+---
+
+# Analyseur de sortie CSV
+
+
CSV Output Parser Node
Figure> CSV
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/output-parsers/custom-list-output-parser.md b/fr/integrations/langchain/output-parsers/custom-list-output-parser.md
new file mode 100644
index 00000000..b2eaa3f0
--- /dev/null
+++ b/fr/integrations/langchain/output-parsers/custom-list-output-parser.md
@@ -0,0 +1,11 @@
+---
+description: Parse the output of an LLM call as a list of values.
+---
+
+# Analyseur de sortie de liste personnalisée
+
+
Node de l'analyse de sortie de liste de liste de liste
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/output-parsers/structured-output-parser.md b/fr/integrations/langchain/output-parsers/structured-output-parser.md
new file mode 100644
index 00000000..42a7921a
--- /dev/null
+++ b/fr/integrations/langchain/output-parsers/structured-output-parser.md
@@ -0,0 +1,11 @@
+---
+description: Parse the output of an LLM call into a given (JSON) structure.
+---
+
+# Analyseur de sortie structuré
+
+
Node de l'analyseur de sortie structuré
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/prompts/README.md b/fr/integrations/langchain/prompts/README.md
new file mode 100644
index 00000000..74df1f7a
--- /dev/null
+++ b/fr/integrations/langchain/prompts/README.md
@@ -0,0 +1,15 @@
+---
+description: LangChain Prompt Nodes
+---
+
+# Invite
+
+***
+
+Les nœuds de modèle d'invite aident à traduire l'entrée et les paramètres de l'utilisateur en instructions pour un modèle de langue. Cela peut être utilisé pour guider la réponse d'un modèle, l'aidant à comprendre le contexte et à générer une sortie pertinente et cohérente basée sur le langage.
+
+### Nœuds rapides:
+
+* [Chat Prompt Template](chat-prompt-template.md)
+* [Few Shot Prompt Template](few-shot-prompt-template.md)
+* [Prompt Template](prompt-template.md)
diff --git a/fr/integrations/langchain/prompts/chat-prompt-template.md b/fr/integrations/langchain/prompts/chat-prompt-template.md
new file mode 100644
index 00000000..e16344df
--- /dev/null
+++ b/fr/integrations/langchain/prompts/chat-prompt-template.md
@@ -0,0 +1,11 @@
+---
+description: Schema to represent a chat prompt.
+---
+
+# Modèle d'invite de chat
+
+
Node de modèle d'invite de chat
Figcaption>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/prompts/few-shot-prompt-template.md b/fr/integrations/langchain/prompts/few-shot-prompt-template.md
new file mode 100644
index 00000000..f0a2cd8a
--- /dev/null
+++ b/fr/integrations/langchain/prompts/few-shot-prompt-template.md
@@ -0,0 +1,11 @@
+---
+description: Prompt template you can build with examples.
+---
+
+# Peu de modèle d'invite de tir
+
+
peu de godet
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/prompts/prompt-template.md b/fr/integrations/langchain/prompts/prompt-template.md
new file mode 100644
index 00000000..d93f060c
--- /dev/null
+++ b/fr/integrations/langchain/prompts/prompt-template.md
@@ -0,0 +1,11 @@
+---
+description: Schema to represent a basic prompt for an LLM.
+---
+
+# Modèle invite
+
+
TEMPLEME Impuet
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/record-managers.md b/fr/integrations/langchain/record-managers.md
new file mode 100644
index 00000000..740b64fa
--- /dev/null
+++ b/fr/integrations/langchain/record-managers.md
@@ -0,0 +1,97 @@
+---
+description: LangChain Record Manager Nodes
+---
+
+# Gestionnaires de dossiers
+
+***
+
+Les gestionnaires d'enregistrement gardent une trace de vos documents indexés, empêchant les intégres du vecteur dupliqués dans[Vector Store](vector-stores/).
+
+Lorsque des morceaux de document augmentent, chaque morceau sera haché en utilisant[SHA-1](https://github.com/emn178/js-sha1)algorithme. Ces hachages seront stockés dans Record Manager. S'il y a un hachage existant, le processus d'incorporation et de mise en service sera ignoré.
+
+Dans certains cas, vous voudrez peut-être supprimer les documents existants dérivés des mêmes sources que les nouveaux documents indexés. Pour cela, il existe 3 modes de nettoyage pour le gestionnaire de disques:
+
+{% Tabs%}
+{% tab title = "incrémentiel"%}
+Lorsque vous augmentez plusieurs documents et que vous souhaitez empêcher la suppression des documents existants qui ne font pas partie du processus de mise en service actuel, utilisez le mode de nettoyage ** ** **.
+
+1. Ayons un gestionnaire de disques avec`Incremental`Nettoyage et`source`En tant que clé sourceid
+
+
+
+3. Après un upsert, nous verrons 2 documents qui sont mis en place:
+
+ Figcaption>
+
+* Le document original ** Cat ** est supprimé
+* Un nouveau document avec ** Cats ** est ajouté
+* ** Dog ** Le document est laissé intact
+* Les incorporations vectorielles restantes dans le magasin vectoriel sont ** chats ** et ** chien **
+
+ FigCaption> Figure>
+{% endtab%}
+
+{% tab title = "full"%}
+Lorsque vous augmentez plusieurs documents, ** le mode de nettoyage complet ** supprimera automatiquement tous les intérêts vectoriels qui ne font pas partie du processus de mise en service actuel.
+
+1. Ayons un gestionnaire de disques avec`Full`Nettoyage. Nous n'avons pas besoin d'avoir une clé sourceid pour le mode de nettoyage complet.
+
+
+
+2. Et avoir les 2 documents suivants:
+
+| Texte | Métadonnées |
+| ---- | ---------------- |
+| Cat |`{source:"cat"}` |
+| Chien |`{source:"dog"}` |
+
+
figure>
+
+
figcaption> Figure>
+
+3. Après un upsert, nous verrons 2 documents qui sont mis en place:
+
+ Figcaption> Figure>
+
+* Le document original ** Cat ** est supprimé
+* Un nouveau document avec ** Cats ** est ajouté
+* ** Dog ** Le document est supprimé
+* Les incorporations vectorielles restantes dans le magasin vectoriel sont juste ** Cats **
+
+ Figcaption> -
+ Cohere Rerank indexes the documents from most to least semantically relevant
+ to the query.
+---
+
+# Cohere Rerank Retriever
+
+
cohere rerank Retriever Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/custom-retriever.md b/fr/integrations/langchain/retrievers/custom-retriever.md
new file mode 100644
index 00000000..0ab38009
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/custom-retriever.md
@@ -0,0 +1,49 @@
+---
+description: Custom Retriever allows user to specify the format of the context to LLM
+---
+
+# Retriever personnalisé
+
+ Figcaption> Figure>
+
+Par défaut, lorsque le contexte est récupéré à partir du magasin Vector, ils sont dans le format suivant:
+
+```json
+[
+ {
+ "pageContent": "This is an example",
+ "metadata": {
+ "source": "example.pdf"
+ }
+ },
+ {
+ "pageContent": "This is example 2",
+ "metadata": {
+ "source": "example2.txt"
+ }
+ }
+]
+```
+
+** PageContent ** du tableau sera assemblé en tant que chaîne et renvoyé à LLM pour l'achèvement.
+
+Cependant, dans certains cas, vous voudrez peut-être inclure des informations provenant de métadonnées pour donner plus d'informations à LLM, telles que Source, Link, etc. C'est là que ** personnalisé Retriever ** entre en jeu. Nous pouvons spécifier le format pour revenir à LLM.
+
+Par exemple, en utilisant le format suivant:
+
+```javascript
+{{context}}
+Source: {{metadata.source}}
+```
+
+Entraînera la chaîne combinée comme ci-dessous:
+
+```
+This is an example
+Source: example.pdf
+
+This is example 2
+Source: example2.txt
+```
+
+Cela sera renvoyé à LLM. Étant donné que LLM possède désormais les sources des réponses, nous pouvons utiliser des invites pour instruire LLM de retourner des réponses suivies de citations.
diff --git a/fr/integrations/langchain/retrievers/embeddings-filter-retriever.md b/fr/integrations/langchain/retrievers/embeddings-filter-retriever.md
new file mode 100644
index 00000000..77dbb7f7
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/embeddings-filter-retriever.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ A document compressor that uses embeddings to drop documents unrelated to the
+ query.
+---
+
+# Filtre intégré Retriever
+
+
Embeddings Filter Retriever Node
Figcaption>
diff --git a/fr/integrations/langchain/retrievers/hyde-retriever.md b/fr/integrations/langchain/retrievers/hyde-retriever.md
new file mode 100644
index 00000000..4b8f5aa0
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/hyde-retriever.md
@@ -0,0 +1,11 @@
+---
+description: Use HyDE retriever to retrieve from a vector store.
+---
+
+# Hyde Retriever
+
+
Hyde Retriever Node
figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/llm-filter-retriever.md b/fr/integrations/langchain/retrievers/llm-filter-retriever.md
new file mode 100644
index 00000000..9a505950
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/llm-filter-retriever.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Iterate over the initially returned documents and extract, from each, only the
+ content that is relevant to the query.
+---
+
+# Filtre LLM Retriever
+
+
llm Filter Retriever Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/multi-query-retriever.md b/fr/integrations/langchain/retrievers/multi-query-retriever.md
new file mode 100644
index 00000000..36b734f4
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/multi-query-retriever.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Generate multiple queries from different perspectives for a given user input
+ query.
+---
+
+# Retriever multi-requêtes
+
+
Node de récupération multi-requête
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/page.md b/fr/integrations/langchain/retrievers/page.md
new file mode 100644
index 00000000..a7ce11bf
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/page.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Voyage AI Rerank indexes the documents from most to least semantically
+ relevant to the query.
+---
+
+# Voyage Ai Rerank Retriever
+
+
Voyage Ai RERANK Retriever Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/prompt-retriever.md b/fr/integrations/langchain/retrievers/prompt-retriever.md
new file mode 100644
index 00000000..b27536bd
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/prompt-retriever.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Store prompt template with name & description to be later queried by
+ MultiPromptChain.
+---
+
+# Retriever rapide
+
+
Invite Retriever Node
Figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/reciprocal-rank-fusion-retriever.md b/fr/integrations/langchain/retrievers/reciprocal-rank-fusion-retriever.md
new file mode 100644
index 00000000..1d0d75e7
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/reciprocal-rank-fusion-retriever.md
@@ -0,0 +1,11 @@
+---
+description: Reciprocal Rank Fusion to re-rank search results by multiple query generation.
+---
+
+# Ranqueur réciproque Fusion Retriever
+
+
Rank Rank Fusion Retriever Retriever Node
figcaption>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/similarity-score-threshold-retriever.md b/fr/integrations/langchain/retrievers/similarity-score-threshold-retriever.md
new file mode 100644
index 00000000..cf936439
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/similarity-score-threshold-retriever.md
@@ -0,0 +1,11 @@
+---
+description: Return results based on the minimum similarity percentage.
+---
+
+# Score de similitude Threshold Retriever
+
+
Score de similitude Score de récupération de seuil
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/retrievers/vector-store-retriever.md b/fr/integrations/langchain/retrievers/vector-store-retriever.md
new file mode 100644
index 00000000..20e56e08
--- /dev/null
+++ b/fr/integrations/langchain/retrievers/vector-store-retriever.md
@@ -0,0 +1,11 @@
+---
+description: Store vector store as retriever to be later queried by MultiRetrievalQAChain.
+---
+
+# Retriever du magasin vectoriel
+
+
Vector Store Retriever Node
figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/text-splitters/README.md b/fr/integrations/langchain/text-splitters/README.md
new file mode 100644
index 00000000..aba2770e
--- /dev/null
+++ b/fr/integrations/langchain/text-splitters/README.md
@@ -0,0 +1,30 @@
+---
+description: LangChain Text Splitter Nodes
+---
+
+# Séparateurs de texte
+
+***
+
+** Lorsque vous souhaitez faire face à de longs morceaux de texte, il est nécessaire de diviser ce texte en morceaux. ** \
+Aussi simple que cela puisse paraître, il y a beaucoup de complexité potentielle ici. Idéalement, vous voulez garder les morceaux de texte sémantiquement liés. Ce que signifie «sémantiquement lié» pourrait dépendre du type de texte. Ce cahier présente plusieurs façons de le faire.
+
+** À un niveau élevé, les séparateurs de texte fonctionnent comme suit: **
+
+1. Divisez le texte en petits morceaux sémantiquement significatifs (souvent des phrases).
+2. Commencez à combiner ces petits morceaux en un morceau plus grand jusqu'à ce que vous atteigniez une certaine taille (mesurée par une fonction).
+3. Une fois que vous avez atteint cette taille, faites de ce morceau son propre texte, puis commencez à créer un nouveau morceau de texte avec un peu de chevauchement (pour garder le contexte entre des morceaux).
+
+** Cela signifie qu'il y a deux axes différents le long desquels vous pouvez personnaliser votre séparateur de texte: **
+
+1. Comment le texte est divisé
+2. Comment la taille du morceau est mesurée
+
+### Nœuds de séparateur de texte:
+
+* [Character Text Splitter](character-text-splitter.md)
+* [Code Text Splitter](code-text-splitter.md)
+* [Html-To-Markdown Text Splitter](html-to-markdown-text-splitter.md)
+* [Markdown Text Splitter](markdown-text-splitter.md)
+* [Recursive Character Text Splitter](recursive-character-text-splitter.md)
+* [Token Text Splitter](token-text-splitter.md)
diff --git a/fr/integrations/langchain/text-splitters/character-text-splitter.md b/fr/integrations/langchain/text-splitters/character-text-splitter.md
new file mode 100644
index 00000000..ba516881
--- /dev/null
+++ b/fr/integrations/langchain/text-splitters/character-text-splitter.md
@@ -0,0 +1,11 @@
+---
+description: Splits only on one type of character (defaults to "\n\n").
+---
+
+# Splier de texte de caractère
+
+
Splitter de texte de caractères
figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/text-splitters/code-text-splitter.md b/fr/integrations/langchain/text-splitters/code-text-splitter.md
new file mode 100644
index 00000000..9bcf72aa
--- /dev/null
+++ b/fr/integrations/langchain/text-splitters/code-text-splitter.md
@@ -0,0 +1,11 @@
+---
+description: Split documents based on language-specific syntax.
+---
+
+# Code Splitter du texte
+
+
Code Node de séparateur de texte
-
+ Converts Html to Markdown and then split your content into documents based on
+ the Markdown headers.
+---
+
+# Splitter de texte HTML à markdown
+
+
html-to-markdown Text Splitter du séparateur
figcaption>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/text-splitters/markdown-text-splitter.md b/fr/integrations/langchain/text-splitters/markdown-text-splitter.md
new file mode 100644
index 00000000..95c94ad2
--- /dev/null
+++ b/fr/integrations/langchain/text-splitters/markdown-text-splitter.md
@@ -0,0 +1,11 @@
+---
+description: Split your content into documents based on the Markdown headers.
+---
+
+# SPIRTER DE TEXTE DE MARCHE
+
+
Markdown Text Splitter Node
Figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/text-splitters/recursive-character-text-splitter.md b/fr/integrations/langchain/text-splitters/recursive-character-text-splitter.md
new file mode 100644
index 00000000..d551fda4
--- /dev/null
+++ b/fr/integrations/langchain/text-splitters/recursive-character-text-splitter.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Split documents recursively by different characters - starting with "\n\n",
+ then "\n", then " ".
+---
+
+# Splitter de texte récursif du caractère
+
+
Recursive Character Text Splitter Node
figCaption> Figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/text-splitters/token-text-splitter.md b/fr/integrations/langchain/text-splitters/token-text-splitter.md
new file mode 100644
index 00000000..33a3c597
--- /dev/null
+++ b/fr/integrations/langchain/text-splitters/token-text-splitter.md
@@ -0,0 +1,14 @@
+---
+description: >-
+ Splits a raw text string by first converting the text into BPE tokens, then
+ split these tokens into chunks and convert the tokens within a single chunk
+ back into text.
+---
+
+# Séparateur de texte de jeton
+
+
Node de séparateur de texte de token
figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/tools/README.md b/fr/integrations/langchain/tools/README.md
new file mode 100644
index 00000000..9dc46260
--- /dev/null
+++ b/fr/integrations/langchain/tools/README.md
@@ -0,0 +1,31 @@
+---
+description: LangChain Tool Nodes
+---
+
+# Outils
+
+***
+
+Les outils sont des fonctions que les agents peuvent utiliser pour interagir avec le monde. Ces outils peuvent être des services publics génériques (par exemple, recherche), d'autres chaînes ou même d'autres agents.
+
+### Nœuds d'outil:
+
+* [BraveSearch API](bravesearch-api.md)
+* [Calculator](calculator.md)
+* [Chain Tool](chain-tool.md)
+* [Chatflow Tool](chatflow-tool.md)
+* [Custom Tool](custom-tool.md)
+* [Exa Search](exa-search.md)
+* [Google Custom Search](google-custom-search.md)
+* [OpenAPI Toolkit](openapi-toolkit.md)
+* [Python Interpreter](python-interpreter.md)
+* [Read File](read-file.md)
+* [Request Get](request-get.md)
+* [Request Post](request-post.md)
+* [Retriever Tool](retriever-tool.md)
+* [SearchApi](searchapi.md)
+* [SearXNG](searxng.md)
+* [Serp API](serp-api.md)
+* [Serper](serper.md)
+* [Web Browser](web-browser.md)
+* [Write File](write-file.md)
diff --git a/fr/integrations/langchain/tools/bravesearch-api.md b/fr/integrations/langchain/tools/bravesearch-api.md
new file mode 100644
index 00000000..da6f0794
--- /dev/null
+++ b/fr/integrations/langchain/tools/bravesearch-api.md
@@ -0,0 +1,13 @@
+---
+description: >-
+ Wrapper around BraveSearch API - a real-time API to access Brave search
+ results.
+---
+
+# API Bravesearch
+
+
Bravesearch API Node
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/tools/calculator.md b/fr/integrations/langchain/tools/calculator.md
new file mode 100644
index 00000000..7c3205d9
--- /dev/null
+++ b/fr/integrations/langchain/tools/calculator.md
@@ -0,0 +1,11 @@
+---
+description: Perform calculations on response.
+---
+
+# Calculatrice
+
+
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/tools/chain-tool.md b/fr/integrations/langchain/tools/chain-tool.md
new file mode 100644
index 00000000..30a3d504
--- /dev/null
+++ b/fr/integrations/langchain/tools/chain-tool.md
@@ -0,0 +1,11 @@
+---
+description: Use a chain as allowed tool for agent.
+---
+
+# Outil de chaîne
+
+
Node d'outil de chaîne
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/tools/chatflow-tool.md b/fr/integrations/langchain/tools/chatflow-tool.md
new file mode 100644
index 00000000..aaed2cf2
--- /dev/null
+++ b/fr/integrations/langchain/tools/chatflow-tool.md
@@ -0,0 +1,11 @@
+---
+description: Execute another chatflow and get the response.
+---
+
+# Outil Chatflow
+
+ Figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/tools/custom-tool.md b/fr/integrations/langchain/tools/custom-tool.md
new file mode 100644
index 00000000..7f4d1d93
--- /dev/null
+++ b/fr/integrations/langchain/tools/custom-tool.md
@@ -0,0 +1,598 @@
+# Outil personnalisé
+
+Regardez comment utiliser des outils personnalisés
+
+{% embed url = "https://youtu.be/hsp9lkktvy0"%}
+
+## Problème
+
+La fonction prend généralement des données d'entrée structurées. Disons que vous voulez que le LLM puisse appeler AirTable Create Record[API](https://airtable.com/developers/web/api/create-records), les paramètres du corps doivent être structurés de manière spécifique. Par exemple:
+
+```json
+"records": [
+ {
+ "fields": {
+ "Address": "some address",
+ "Name": "some name",
+ "Visited": true
+ }
+ }
+]
+```
+
+Idéalement, nous voulons que LLM renvoie des données structurées appropriées comme celle-ci:
+
+```json
+{
+ "Address": "some address",
+ "Name": "some name",
+ "Visited": true
+}
+```
+
+Nous pouvons donc extraire la valeur et l'analyser dans le corps nécessaire à l'API. Cependant, il est difficile de demander à LLM de produire le modèle exact.
+
+Avec le nouveau[OpenAI Function Calling](https://openai.com/blog/function-calling-and-other-api-updates)modèles, c'est maintenant possible.`gpt-4-0613`et`gpt-3.5-turbo-0613`sont spécifiquement formés pour retourner des données structurées. Le modèle choisira intelligemment de sortir un objet JSON contenant des arguments pour appeler ces fonctions.
+
+## Tutoriel
+
+** Objectif **: Demandez à l'agent d'obtenir automatiquement le mouvement du cours de l'action, de récupérer les actualités des actions connexes et d'ajouter un nouveau record à AirTable.
+
+Commençons[🚀](https://emojipedia.org/rocket/)
+
+### Créer des outils
+
+Nous avons besoin de 3 outils pour atteindre l'objectif:
+
+* Obtenez un mouvement du cours des actions
+* Obtenir des actualités
+* Ajouter un enregistrement Airtable
+
+#### Obtenez un mouvement du cours des actions
+
+Créez un nouvel outil avec les détails suivants (vous pouvez changer comme vous le souhaitez):
+
+* Nom: Get \ _Stock \ _Movers
+* Description: Obtenez les actions qui ont des mouvements de prix / volume les plus importants, par exemple actifs, gagnants, perdants, etc.
+
+La description est une pièce importante car Chatgpt s'appuie sur cela pour décider quand utiliser cet outil.
+
+
+
+* Fonction JavaScript: nous allons utiliser[Morning Star](https://rapidapi.com/apidojo/api/morning-star) `/market/v2/get-movers`API pour obtenir des données. Vous devez d'abord cliquer sur vous abonner au test si vous ne l'avez pas déjà fait, puis copiez le code et collez-le dans la fonction JavaScript.
+ * Ajouter`const fetch = require('node-fetch');`en haut pour importer la bibliothèque. Vous pouvez importer tous les nodejs intégrés[modules](https://www.w3schools.com/nodejs/ref_modules.asp)et[external libraries](https://github.com/FlowiseAI/Flowise/blob/main/packages/components/src/utils.ts#L289).
+ * Retourner le`result`à la fin.
+
+ Figcaption>
+
+Le code final doit être:
+
+```javascript
+const fetch = require('node-fetch');
+const url = 'https://morning-star.p.rapidapi.com/market/v2/get-movers';
+const options = {
+ method: 'GET',
+ headers: {
+ 'X-RapidAPI-Key': 'replace with your api key',
+ 'X-RapidAPI-Host': 'morning-star.p.rapidapi.com'
+ }
+};
+
+try {
+ const response = await fetch(url, options);
+ const result = await response.text();
+ console.log(result);
+ return result;
+} catch (error) {
+ console.error(error);
+ return '';
+}
+```
+
+Vous pouvez maintenant le sauver.
+
+#### Obtenir des actualités
+
+Créez un nouvel outil avec les détails suivants (vous pouvez changer comme vous le souhaitez):
+
+* Nom: get \ _stock \ _news
+* Description: Obtenez les dernières nouvelles pour un stock
+* Schéma d'entrée:
+ * Propriété: PerformanceID
+ * Type: chaîne
+ * Description: ID du stock, qui est appelé performanceid dans l'API
+ * Requis: vrai
+
+Le schéma d'entrée indique à LLM quoi retourner en tant qu'objet JSON. Dans ce cas, nous nous attendons à un objet JSON comme ci-dessous:
+
+
{"PerformanceId": "Some Ticker"}
+
+
+
+
+* Fonction JavaScript: nous allons utiliser[Morning Star](https://rapidapi.com/apidojo/api/morning-star) `/market/v2/get-movers`API pour obtenir des données. Vous devez d'abord cliquer sur vous abonner au test si vous ne l'avez pas déjà fait, puis copiez le code et collez-le dans la fonction JavaScript.
+ * Ajouter`const fetch = require('node-fetch');`en haut pour importer la bibliothèque. Vous pouvez importer tous les nodejs intégrés[modules](https://www.w3schools.com/nodejs/ref_modules.asp)et[external libraries](https://github.com/FlowiseAI/Flowise/blob/main/packages/components/src/utils.ts#L289).
+ * Retourner le`result`à la fin.
+
+ Figcaption>
+
+Le code final doit être:
+
+```javascript
+const fetch = require('node-fetch');
+const url = 'https://morning-star.p.rapidapi.com/market/v2/get-movers';
+const options = {
+ method: 'GET',
+ headers: {
+ 'X-RapidAPI-Key': 'replace with your api key',
+ 'X-RapidAPI-Host': 'morning-star.p.rapidapi.com'
+ }
+};
+
+try {
+ const response = await fetch(url, options);
+ const result = await response.text();
+ console.log(result);
+ return result;
+} catch (error) {
+ console.error(error);
+ return '';
+}
+```
+
+Vous pouvez maintenant le sauver.
+
+#### Obtenir des actualités
+
+Créez un nouvel outil avec les détails suivants (vous pouvez changer comme vous le souhaitez):
+
+* Nom: get \ _stock \ _news
+* Description: Obtenez les dernières nouvelles pour un stock
+* Schéma d'entrée:
+ * Propriété: PerformanceID
+ * Type: chaîne
+ * Description: ID du stock, qui est appelé performanceid dans l'API
+ * Requis: vrai
+
+Le schéma d'entrée indique à LLM quoi retourner en tant qu'objet JSON. Dans ce cas, nous nous attendons à un objet JSON comme ci-dessous:
+
+
{"PerformanceId": "Some Ticker"}
+
+
+
+
+Code final:
+
+```javascript
+const fetch = require('node-fetch');
+const url = 'https://morning-star.p.rapidapi.com/news/list?performanceId=' + $performanceId;
+const options = {
+ method: 'GET',
+ headers: {
+ 'X-RapidAPI-Key': 'replace with your api key',
+ 'X-RapidAPI-Host': 'morning-star.p.rapidapi.com'
+ }
+};
+
+try {
+ const response = await fetch(url, options);
+ const result = await response.text();
+ console.log(result);
+ return result;
+} catch (error) {
+ console.error(error);
+ return '';
+}
+```
+
+Vous pouvez maintenant le sauver.
+
+#### Ajouter un enregistrement Airtable
+
+Créez un nouvel outil avec les détails suivants (vous pouvez changer comme vous le souhaitez):
+
+* Nom: Add \ _airable
+* Description: Ajouter le stock, le résumé des nouvelles et le déménagement à AirTable
+* Schéma d'entrée:
+ * Propriété: stock
+ * Type: chaîne
+ * Description: Ticker d'origine
+ * Requis: vrai
+ * Propriété: déménager
+ * Type: chaîne
+ * Description: Déplacement des prix en%
+ * Requis: vrai
+ * Propriété: nouvelles \ _Summary
+ * Type: chaîne
+ * Description: Résumé des nouvelles du stock
+ * Requis: vrai
+
+Chatgpt renvoie un objet JSON comme ceci:
+
+```json
+{ "stock": "SOME TICKER", "move": "20%", "news_summary": "Some summary" }
+```
+
+
+
+* Fonction JavaScript: nous allons utiliser[Airtable Create Record API](https://airtable.com/developers/web/api/create-records)Pour créer un nouvel enregistrement dans une table existante. Vous pouvez trouver le TableId et BaseID à partir de[here](https://www.highviewapps.com/kb/where-can-i-find-the-airtable-base-id-and-table-id/). Vous devrez également créer un jeton d'accès personnel, trouvez comment le faire[here](https://www.highviewapps.com/kb/how-do-i-create-an-airtable-personal-access-token/).
+
+Le code final devrait ressembler ci-dessous. Notez comment nous passons`$stock`, `$move`et`$news_summary`Comme variables:
+
+```javascript
+const fetch = require('node-fetch');
+const baseId = 'your-base-id';
+const tableId = 'your-table-id';
+const token = 'your-token';
+
+const body = {
+ "records": [
+ {
+ "fields": {
+ "stock": $stock,
+ "move": $move,
+ "news_summary": $news_summary,
+ }
+ }
+ ]
+};
+
+const options = {
+ method: 'POST',
+ headers: {
+ 'Authorization': `Bearer ${token}`,
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(body)
+};
+
+const url = `https://api.airtable.com/v0/${baseId}/${tableId}`
+
+try {
+ const response = await fetch(url, options);
+ const text = await response.text();
+ return text;
+} catch (error) {
+ console.error(error);
+ return '';
+}
+```
+
+Vous pouvez maintenant le sauver.
+
+Vous devriez voir 3 outils créés:
+
+ / Figcaption> Figure>
+
+### Créer ChatFlow
+
+Vous pouvez utiliser le modèle ** Fonction Openai ** ** Agent ** à partir de Marketplace et remplacer les outils par ** outil personnalisé **. Sélectionnez l'outil que vous avez créé.
+
+Remarque: L'agent de fonction OpenAI prend uniquement en charge les modèles 0613 actuellement.
+
+ Quelle est l'action qui a le plus gros mouvement des prix aujourd'hui? _
+
+_ L'action qui a le plus grand mouvement de prix aujourd'hui est Overstock.com (OSTK) avec une décision de prix de 17,47%. _
+
+Vous pouvez ensuite suivre une autre question pour obtenir les nouvelles de ce stock particulier:
+
+_ Quelles sont les dernières nouvelles de ce stock qui pourraient provoquer le mouvement des prix? _
+
+_ Voici les dernières nouvelles sur Overstock.com (OSTK) qui auraient pu provoquer le mouvement des prix: _
+
+1. _ Titre: "Les actions de Overstock montent sur le succès de 21,5 millions d'offres pour le bain de lit et Beyond Actifs" Source: MarketWatch Publié Date: 22 juin 2023 Résumé: Les actions de OverStock.com ont connu une augmentation significative après avoir réussi à gagner une offre pour le bain de lit et au-delà des actifs d'une valeur de 21,5 millions.
+2. _ Titre: "Penser aux options de trading ou aux actions en plates-formes Meta, Overstock.com, Walmart, Home Depot ou United Parcel Service?" Source: PR Newswire Publié Date: 22 juin 2023 Résumé: Cet article d'actualité traite des options de négociation potentielles et des actions, y compris Overstock.com, que les investisseurs peuvent considérer. _
+
+_ Veuillez noter que ces articles de presse sont à des fins d'information uniquement et peuvent ne pas être la seule raison du mouvement des prix. Il est toujours recommandé de mener des recherches et des analyses approfondies avant de prendre des décisions d'investissement. _
+
+Enfin, vous pouvez demander à Chatgpt d'ajouter un nouvel enregistrement à AirTable:
+
+_ Pouvez-vous ajouter un enregistrement à AirTable avec le ticker d'origine, le mouvement des prix et le résumé des nouvelles? _
+
+_ J'ai ajouté un enregistrement à AirTable avec les détails suivants: _
+
+_ Stock Ticker: Ostk Price Move: 17,47% News Résumé: Les actions d'OverStock.com ont connu une augmentation significative après avoir réussi à remporter une offre pour Bed Bath & Beyond d'actifs d'une valeur de 21,5 millions de dollars. _
+
+[🎉](https://emojipedia.org/party-popper/)[🎉](https://emojipedia.org/party-popper/)** Voila! ** C'est ainsi que vous pouvez créer votre propre outil personnalisé et l'utiliser avec l'agent de fonction Openai!
+
+## Supplémentaire
+
+### Passer l'ID de session pour fonctionner
+
+Par défaut, la fonction dans l'outil personnalisé a accès aux configurations de flux suivantes:
+
+```json5
+$flow.sessionId
+$flow.chatId
+$flow.chatflowId
+$flow.input
+```
+
+Vous trouverez ci-dessous un exemple de l'envoi du SessionID à Discord WebHook:
+
+{% Tabs%}
+{% tab title = "javascript"%}
+```javascript
+const fetch = require('node-fetch');
+const webhookUrl = "https://discord.com/api/webhooks/1124783587267";
+const content = $content; // captured from input schema
+const sessionId = $flow.sessionId;
+
+const body = {
+ "content": `${mycontent} and the sessionid is ${sessionId}`
+};
+
+const options = {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify(body)
+};
+
+const url = `${webhookUrl}?wait=true`
+
+try {
+ const response = await fetch(url, options);
+ const text = await response.text();
+ return text;
+} catch (error) {
+ console.error(error);
+ return '';
+}
+```
+{% endtab%}
+{% endtabs%}
+
+### Passer les variables pour fonctionner
+
+Dans certains cas, vous souhaitez passer les variables à la fonction de l'outil personnalisé.
+
+Par exemple, vous créez un chatbot qui utilise un outil personnalisé. L'outil personnalisé exécute un appel post HTTP et une clé API est nécessaire pour une demande authentifiée réussie. Vous pouvez le passer comme variable.
+
+Par défaut, la fonction dans l'outil personnalisé a accès aux variables:
+
+```
+$vars.
+```
+
+Exemple de la façon de passer les variables en flux à l'aide de l'API et intégrée:
+
+{% Tabs%}
+{% tab title = "JavaScript api"%}
+```javascript
+async function query(data) {
+ const response = await fetch(
+ "http://localhost:3000/api/v1/prediction/",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify(data)
+ }
+ );
+ const result = await response.json();
+ return result;
+}
+
+query({
+ "question": "Hey, how are you?",
+ "overrideConfig": {
+ "vars": {
+ "apiKey": "abc"
+ }
+ }
+}).then((response) => {
+ console.log(response);
+});
+```
+{% endtab%}
+
+{% tab title = "embed"%}
+```html
+
+```
+{% endtab%}
+{% endtabs%}
+
+Exemple de la façon de recevoir les variables dans l'outil personnalisé:
+
+{% Tabs%}
+{% tab title = "javascript"%}
+```javascript
+const fetch = require('node-fetch');
+const webhookUrl = "https://discord.com/api/webhooks/1124783587267";
+const content = $content; // captured from input schema
+const sessionId = $flow.sessionId;
+const apiKey = $vars.apiKey;
+
+const body = {
+ "content": `${mycontent} and the sessionid is ${sessionId}`
+};
+
+const options = {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ 'Authorization': `Bearer ${apiKey}`
+ },
+ body: JSON.stringify(body)
+};
+
+const url = `${webhookUrl}?wait=true`
+
+try {
+ const response = await fetch(url, options);
+ const text = await response.text();
+ return text;
+} catch (error) {
+ console.error(error);
+ return '';
+}
+```
+{% endtab%}
+{% endtabs%}
+
+### Remplacer l'outil personnalisé
+
+Les paramètres ci-dessous peuvent être remplacés
+
+| Paramètre | Description |
+| ---------------- | ---------------- |
+| CustomToolName | Nom de l'outil |
+| CustomTooldeSC | Description de l'outil |
+| CustomToolSchema | Schéma d'outil |
+| CustomToolfunc | Fonction de l'outil |
+
+Exemple d'un appel API pour remplacer les paramètres d'outil personnalisés:
+
+{% Tabs%}
+{% tab title = "JavaScript api"%}
+```javascript
+async function query(data) {
+ const response = await fetch(
+ "http://localhost:3000/api/v1/prediction/",
+ {
+ method: "POST",
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify(data)
+ }
+ );
+ const result = await response.json();
+ return result;
+}
+
+query({
+ "question": "Hey, how are you?",
+ "overrideConfig": {
+ "customToolName": "example_tool",
+ "customToolSchema": "z.object({title: z.string()})"
+ }
+}).then((response) => {
+ console.log(response);
+});
+```
+{% endtab%}
+{% endtabs%}
+
+### Importer des dépendances externes
+
+Vous pouvez importer tous les nodejs intégrés[modules](https://www.w3schools.com/nodejs/ref_modules.asp)et soutenu[external libraries](https://github.com/FlowiseAI/Flowise/blob/main/packages/components/src/utils.ts#L289)en fonction.
+
+1. Pour importer toutes les bibliothèques non soutenues, vous pouvez facilement ajouter le nouveau package NPM à`package.json`dans`packages/components`dossier.
+
+```bash
+cd Flowise && cd packages && cd components
+pnpm add
+cd .. && cd ..
+pnpm install
+pnpm build
+```
+
+2. Ensuite, ajoutez les bibliothèques importées à`TOOL_FUNCTION_EXTERNAL_DEP`variable d'environnement. Référer[#builtin-and-external-dependencies](../../../configuration/environment-variables.md#builtin-and-external-dependencies "mention")pour plus de détails.
+3. Démarrer l'application
+
+```bash
+pnpm start
+```
+
+4. Vous pouvez ensuite utiliser la bibliothèque nouvellement ajoutée dans la fonction ** javascript ** comme ça:
+
+```javascript
+const axios = require('axios')
+```
+
+Regardez comment ajouter des dépendances supplémentaires et des bibliothèques d'importation
+
+{% embed url = "https://youtu.be/0h1rrisc0ok"%}
diff --git a/fr/integrations/langchain/tools/exa-search.md b/fr/integrations/langchain/tools/exa-search.md
new file mode 100644
index 00000000..595a33fb
--- /dev/null
+++ b/fr/integrations/langchain/tools/exa-search.md
@@ -0,0 +1,11 @@
+---
+description: Wrapper around Exa Search API - search engine fully designed for use by LLMs.
+---
+
+# Recherche exa
+
+
nœud de recherche exa
figure>
+
+{% hint style = "info"%}
+Cette section est un travail en cours. Nous apprécions toute aide que vous pouvez fournir pour terminer cette section. Veuillez vérifier notre[Contribution Guide](broken-reference)Pour commencer.
+{% EndHint%}
diff --git a/fr/integrations/langchain/tools/gmail.md b/fr/integrations/langchain/tools/gmail.md
new file mode 100644
index 00000000..308d2f6c
--- /dev/null
+++ b/fr/integrations/langchain/tools/gmail.md
@@ -0,0 +1,72 @@
+# Gmail
+
+## Créer des informations d'identification dans Flowise
+
+1. Ajouter un nouvel diplôme Gmail OAuth2
+2. Entrez un nom pour les informations d'identification.
+3. Copiez l'URL de redirection OAuth.
+4. Notez que les champs suivants doivent être remplis:
+ * ID client
+ * Secret client
+
+ Figcaption> Figure>
+
+## Créer / utiliser Google Project
+
+1. Connectez-vous à votre[**Google Cloud**](https://console.cloud.google.com/)compte.
+2. Se diriger vers[**Google Cloud Console > APIs & Services**](https://console.cloud.google.com/apis/credentials), et sélectionnez le projet que vous souhaitez utiliser dans la liste déroulante en haut à gauche (ou créez un nouveau projet et sélectionnez-le).
+3. Configurez l'écran de consentement ** OAuth ** Si vous n'en avez pas confiuré auparavant.
+
+ Figcaption> Figure>
+
+4. Accédez à ** des informations d'identification **, puis cliquez sur ** + Créer des informations d'identification> ID client OAuth **.
+
+