Skip to main content
Ctrl+K

Qualitative Feedback Analysis 2.5.0

  • Ubiquitous Language
  • Developer guide
  • Architecture
  • Operations
  • REST API
    • Python API reference
    • EspoCRM integration
    • Migration guide — 0.14.0 (ubiquitous-language alignment)
  • Ubiquitous Language
  • Developer guide
  • Architecture
  • Operations
  • REST API
  • Python API reference
  • EspoCRM integration
  • Migration guide — 0.14.0 (ubiquitous-language alignment)

Section Navigation

  • qfa
    • qfa.adapters
      • qfa.adapters.db
      • qfa.adapters.embedding
      • qfa.adapters.env_auth
      • qfa.adapters.llm_client
      • qfa.adapters.presidio_anonymizer
      • qfa.adapters.tracking_llm
      • qfa.adapters.usage_repository
    • qfa.api
      • qfa.api.app
      • qfa.api.composition
      • qfa.api.dependencies
      • qfa.api.routes
      • qfa.api.routes_admin
      • qfa.api.routes_usage
      • qfa.api.schemas
      • qfa.api.schemas_usage
    • qfa.cli
      • qfa.cli.migrate
    • qfa.domain
      • qfa.domain.chunk_models
      • qfa.domain.clustering_models
      • qfa.domain.errors
      • qfa.domain.models
      • qfa.domain.ports
      • qfa.domain.sensitivity_types
      • qfa.domain.usage_models
    • qfa.main
    • qfa.resources
    • qfa.services
      • qfa.services.analyze
      • qfa.services.auth_orchestrator
      • qfa.services.call_context
      • qfa.services.clustering
      • qfa.services.coding
      • qfa.services.coding_classifier
      • qfa.services.coding_trends
      • qfa.services.hierarchical_prompts
      • qfa.services.language
      • qfa.services.llm_call_executor
      • qfa.services.prompts
      • qfa.services.record_links
      • qfa.services.sensitivity
      • qfa.services.summarize
    • qfa.settings
    • qfa.utils
  • Python API reference
  • qfa
  • qfa.services
  • qfa.services.record_links

qfa.services.record_links#

Rewrite feedback-record mentions in LLM output as EspoCRM hyperlinks.

This is output post-processing, not prompt assembly: the LLM answers in prose that names records by their id, and this turns those mentions into links the analyst can click. It lives in its own module because more than one use case needs it — the analyse result and the aggregate summary both go back to EspoCRM — and neither of those services should have to import the other to reach it.

Functions

hyperlink_form_references(text, ...)

Rewrite feedback-record-id mentions in text as EspoCRM hyperlinks.

qfa.services.record_links.hyperlink_form_references(text: str, feedback_records: tuple[FeedbackRecordModel, ...], espo_feedback_base_url: str | None) → str[source]#

Rewrite feedback-record-id mentions in text as EspoCRM hyperlinks.

When the analysis/summary text names a feedback record by its id (e.g. Form-07762), rewrite that mention as [Form-07762](espo_feedback_base_url/url_id) so it renders as a clickable link back to the record in EspoCRM. No-op when espo_feedback_base_url is not provided; per-record no-op when that record has no url_id. Matches on word boundaries so one record’s id cannot match as a substring of another’s (e.g. Form-1 vs Form-10).

previous

qfa.services.prompts

next

qfa.services.sensitivity

On this page
  • hyperlink_form_references()
Show Source

© Copyright 2026, Marius Helf, Paul van Houtum.

Created using Sphinx 9.1.0.

Built with the PyData Sphinx Theme 0.17.1.