Files
wehub-resource-sync e768098d0e
tools_continuous_delivery / Private PyPI non-main branch release (push) Has been skipped
tools_continuous_delivery / Private PyPI main branch release (push) Failing after 2m42s
Publish Promptflow Doc / Build (push) Has been cancelled
Publish Promptflow Doc / Deploy (push) Has been cancelled
Flake8 Lint / flake8 (push) Has been cancelled
Spell check CI / Spell_Check (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:39:52 +08:00

266 lines
6.4 KiB
YAML

$schema: https://azuremlschemas.azureedge.net/promptflow/latest/Flow.schema.json
inputs:
question:
type: string
default: Which tent is the most waterproof?
is_chat_input: false
answer:
type: string
default: The Alpine Explorer Tent is the most waterproof.
is_chat_input: false
context:
type: string
default: From the our product list, the alpine explorer tent is the most
waterproof. The Adventure Dining Tabbe has higher weight.
is_chat_input: false
ground_truth:
type: string
default: The Alpine Explorer Tent has the highest rainfly waterproof rating at 3000m
is_chat_input: false
metrics:
type: string
default: gpt_groundedness,f1_score,ada_similarity,gpt_fluency,gpt_coherence,gpt_similarity,gpt_relevance
is_chat_input: false
outputs:
f1_score:
type: string
reference: ${concat_scores.output.f1_score}
gpt_coherence:
type: string
reference: ${concat_scores.output.gpt_coherence}
gpt_similarity:
type: string
reference: ${concat_scores.output.gpt_similarity}
gpt_fluency:
type: string
reference: ${concat_scores.output.gpt_fluency}
gpt_relevance:
type: string
reference: ${concat_scores.output.gpt_relevance}
gpt_groundedness:
type: string
reference: ${concat_scores.output.gpt_groundedness}
ada_similarity:
type: string
reference: ${concat_scores.output.ada_similarity}
nodes:
- name: gpt_coherence
type: llm
source:
type: code
path: gpt_coherence_prompt.jinja2
inputs:
deployment_name: gpt-4
temperature: 0
top_p: 1
stop: ""
max_tokens: 1
presence_penalty: 0
frequency_penalty: 0
logit_bias: ""
question: ${inputs.question}
answer: ${inputs.answer}
provider: AzureOpenAI
connection: open_ai_connection
api: chat
module: promptflow.tools.aoai
activate:
when: ${validate_input.output.gpt_coherence}
is: true
use_variants: false
- name: concat_scores
type: python
source:
type: code
path: concat_scores.py
inputs:
ada_cosine_similarity: ${ada_similarity.output}
f1_score: ${f1_score.output}
gpt_coherence_score: ${gpt_coherence.output}
gpt_fluency_score: ${gpt_fluency.output}
gpt_groundedness_score: ${gpt_groundedness.output}
gpt_relevance_score: ${gpt_relevance.output}
gpt_similarity_score: ${gpt_similarity.output}
use_variants: false
- name: gpt_similarity
type: llm
source:
type: code
path: gpt_similarity_prompt.jinja2
inputs:
deployment_name: gpt-4
temperature: 0
top_p: 1
stop: ""
max_tokens: 1
presence_penalty: 0
frequency_penalty: 0
logit_bias: ""
answer: ${inputs.answer}
ground_truth: ${inputs.ground_truth}
question: ${inputs.question}
provider: AzureOpenAI
connection: open_ai_connection
api: chat
module: promptflow.tools.aoai
activate:
when: ${validate_input.output.gpt_similarity}
is: true
use_variants: false
- name: gpt_relevance
type: llm
source:
type: code
path: gpt_relevance_prompt.jinja2
inputs:
deployment_name: gpt-4
temperature: 0
top_p: 1
stop: ""
max_tokens: 1
presence_penalty: 0
frequency_penalty: 0
logit_bias: ""
answer: ${inputs.answer}
context: ${inputs.context}
question: ${inputs.question}
provider: AzureOpenAI
connection: open_ai_connection
api: chat
module: promptflow.tools.aoai
activate:
when: ${validate_input.output.gpt_relevance}
is: true
use_variants: false
- name: gpt_fluency
type: llm
source:
type: code
path: gpt_fluency_prompt.jinja2
inputs:
deployment_name: gpt-4
temperature: 0
top_p: 1
stop: ""
max_tokens: 1
presence_penalty: 0
frequency_penalty: 0
logit_bias: ""
answer: ${inputs.answer}
question: ${inputs.question}
provider: AzureOpenAI
connection: open_ai_connection
api: chat
module: promptflow.tools.aoai
activate:
when: ${validate_input.output.gpt_fluency}
is: true
use_variants: false
- name: f1_score
type: python
source:
type: code
path: f1_score.py
inputs:
answer: ${inputs.answer}
ground_truth: ${inputs.ground_truth}
activate:
when: ${validate_input.output.f1_score}
is: true
use_variants: false
- name: gpt_groundedness
type: llm
source:
type: code
path: gpt_groundedness_prompt.jinja2
inputs:
deployment_name: gpt-4
temperature: 0
top_p: 1
stop: ""
max_tokens: 1
presence_penalty: 0
frequency_penalty: 0
logit_bias: ""
answer: ${inputs.answer}
context: ${inputs.context}
provider: AzureOpenAI
connection: open_ai_connection
api: chat
module: promptflow.tools.aoai
activate:
when: ${validate_input.output.gpt_groundedness}
is: true
use_variants: false
- name: aggregate_variants_results
type: python
source:
type: code
path: aggregate_variants_results.py
inputs:
metrics: ${inputs.metrics}
results: ${concat_scores.output}
aggregation: true
use_variants: false
- name: select_metrics
type: python
source:
type: code
path: select_metrics.py
inputs:
metrics: ${inputs.metrics}
use_variants: false
- name: embeded_ground_truth
type: python
source:
type: package
tool: promptflow.tools.embedding.embedding
inputs:
connection: open_ai_connection
deployment_name: text-embedding-ada-002
input: ${inputs.ground_truth}
activate:
when: ${validate_input.output.ada_similarity}
is: true
use_variants: false
- name: embeded_answer
type: python
source:
type: package
tool: promptflow.tools.embedding.embedding
inputs:
connection: open_ai_connection
deployment_name: text-embedding-ada-002
input: ${inputs.answer}
activate:
when: ${validate_input.output.ada_similarity}
is: true
use_variants: false
- name: ada_similarity
type: python
source:
type: code
path: ada_cosine_similarity_score.py
inputs:
a: ${embeded_ground_truth.output}
b: ${embeded_answer.output}
activate:
when: ${validate_input.output.ada_similarity}
is: true
use_variants: false
- name: validate_input
type: python
source:
type: code
path: validate_input.py
inputs:
answer: ${inputs.answer}
context: ${inputs.context}
ground_truth: ${inputs.ground_truth}
question: ${inputs.question}
selected_metrics: ${select_metrics.output}
use_variants: false
node_variants: {}
environment:
python_requirements_txt: requirements.txt